返回列表 发帖

[原创文章] 木马免杀之免杀输入表篇

最近和一位木马免杀牛人交流,感觉新增进不少,1 ?# g* [, H: Z9 M# o# d. M) ]& N
  m0 t' C9 a) B! {1 K# M/ ^' V  u2 B
特拿来分享给大家。+ s: S7 H5 @& }: Y' b$ ~7 \4 E
0 T) z: {+ {1 u/ @
今天我们不提我们国产的那些杀软,真的垃圾的要死,7 n0 M! {. m9 ?* t4 k6 F

% X5 ^: m; P# [. w1 n0 \7 C上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
0 d& M7 j+ k5 y+ ^7 V; J5 e; h1 R9 R) h8 e: u% z
我简单的重建了输入表就把瑞星搞定了,( \4 h( g: V" B6 U& g4 _. ?

  B! R! r4 U" h& L失去信心了。我曰
; {' T" R5 H* u9 N' s6 M
  T# z7 z  ~+ E2 t5 \2 M, A6 Y今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
8 `8 \( c/ I* t5 m1 x* Q1 Q) O0 N2 z5 d) t! U! {- q0 l
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
$ W9 r7 T, A# t; v1 E* D) L1 g3 O, N6 q7 d
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
' O: o8 l$ d0 A- J8 p; T3 Q% E( J1 c- A# j4 j8 M+ S9 w3 q
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低9 V+ O5 F# \8 ^4 Z
, O( m$ C2 ^% X0 t! R( r( x
过了以后再调到最高,再做免杀。: d( s1 z; F8 c9 g
) y  n4 e( R) ~8 X4 g8 z% |9 T
以上是废话,
! n! }$ {& C: `; W
8 C" {- O0 ?& Y& _! U  ]; b好了,下面我们来说下常见的免杀输入表方法。
& M/ ^& }  u, `
  ~. N* ]" O1 T" m( f一。移位法$ v7 ~  r) @' D, q
% E4 c# y, t! t) ~; J
这个已经过时了,我们的国产杀软及时的跟上了时代,
8 k/ y  H- p: V! x
1 v! t* o  n- Q% v% y7 r( ^移位法在去年过金山和瑞星,还有江民都是可以过的,* S$ S1 |% h8 J5 W+ [/ C0 k

2 {+ N! p; ?% \. ^6 X7 f  n' a现在的杀软智能化了,移位么?呵呵 ,追杀你。  u# z6 v! V) ~% S' A6 r

' D* K7 u1 t- k& b/ S% Y+ w( g$ d如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
: r. X4 h4 T: ^5 D! {2 }  a* l/ F! }
二,重建输入表
: g6 R8 d" g" u, P
4 g0 f* \" e2 \# \' r效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
0 }; P& S3 s1 q/ T
* w. D( k% S: g这里我介绍下,
  L: X  \" X- k! z/ P. \6 r5 ]" X. j2 I5 X
用到工具:
- \, r. d+ U( Y- B7 D7 Kimportrec1.6. \& v0 J; {9 G- C
od
0 z; S" q# S) I: S5 N; ?3 L1 }, ac32asm
# X  ]* k. `$ ploaderpe5 Z! @/ \9 b" Z6 i
这里我们简单的介绍下,如何重建输入表! ^* q7 Y- R0 h2 A1 V* O( Z
- m8 f& n4 u. T) I+ R1 p
首先吧文件拖入od,打开inportrec1.6* _+ ?! j9 f- p. h* W/ M7 _5 v

; O  J+ R# J* T/ K. L+ S9 S; a如图 选择拖入od的程序,; P- k- h4 X# U/ S% x
; M/ `* Q9 P+ {$ P& i

+ L5 p! O9 Z, |( A1 Z5 N. [* r这个时候,我们打开loaderpe,& q3 P, {% D2 A1 U: v% r7 x
0 |, ?$ |9 T% o' o9 i
拖入我们的木马" v1 n2 R) f9 U: r9 m$ O5 ]" \! ~+ \* h
5 ^6 U3 l# G8 Y; L
选择目录,
5 g$ ]. p. ~9 j& L  ^% }
2 [, ~1 f$ f8 j6 r8 r4 \+ y我们看到导入表这里。。。
; m6 m; t  L% i3 I5 A: X$ @
7 Z. |! W. I' c- v9 j如图:. L5 s9 V! J0 D& j0 s

% Q6 U! H. G" |0 _, F8 s1 M5 ^! c3 n- m9 n# c. J; n
RVA地址是0001D000  大小是0000154C
, }8 G# p! ?9 U; ]
! w, q! ~; V. f$ t/ A好的,我们把这两个输入到import1.6里去
; f0 T; C) W' F4 X- D
; y1 H" G( E# ]; u+ \8 {就是在“加载树文件”那上面一点
9 i  K+ \; B5 F  Q- C4 o. L
& [/ r9 Z' n+ K' Q0 U输入RVA的地址和大小。2 [% {( s- v! a& y
; U* }9 J2 q% g( K
点击“获得输入表”
; l: {' J# c$ G0 Y6 Y4 C3 P
& m7 {1 Z: }1 `; F然后点击“显示无效的”. N' F4 y* B* {9 `% q3 M6 Z3 C+ r
4 I0 w) I2 E' F' N1 N+ r
接着importrec会自动列出: I1 j, @+ t! p; u1 }+ a( H
$ w3 Q2 Y6 a  z; M
我们把深蓝色的字体  右键   剪切无效的指针5 Y  K- {# f, l" z3 S. W% _' ]
7 F9 a0 d. L3 L) K( a

. m0 T2 u4 {# b最后,我们点“修理dump”
5 V8 M- X) c0 q7 j. H7 u
8 h4 C5 o" B* n! W$ `4 g: n  p! b选中我们的木马就可以了8 c9 w% K, ?7 K& b6 ~
* c) B7 q. E0 S4 z) o
最后我们要用到c32asm' Y$ [. Q( Y* D- N4 T
5 q, J/ N; D: p# p! J3 }) I+ R
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
" d& g" F. c% v! ^  Y; F8 j
. k7 M' Y& i; B. A, Q这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)& E9 B" Z+ x# x2 W: T3 e

) ]2 u8 b6 W# ~# Z0 T这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,; e8 }. q* w! k( z
8 @6 F) @5 |( R! L
我们把马子拖入od的以后,打开了importrec1.6
( ?- K4 w; ~  ]4 U( E6 x( g6 P& l. i9 X6 O9 C, y5 n' V6 `
在选项那里,选择根据序数建造输入表和创建新的IAT3 j( o* f, B% ^  v1 J
1 R' }3 ]& D1 J% G
如图
( D& ]" y9 p1 e  b+ h) P3 _" S9 O* u9 d
$ Y- Y2 r8 D9 X  s
以后的步骤照上面的方法继续就可以了* L9 x/ T. c6 Z& ~& W7 ~. R! F
9 C& l4 d% O9 }& D# a
不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了) e/ Q* Z- q! E9 L1 t8 w

( I# M, U1 F. F7 ?9 K  e5 p+ f0 N因为kernel32.dll的大小不一样。/ Q% v7 ]9 ^5 V6 w4 Y+ N

$ B- I8 u) G  w3.修改originalfirstthunk
# z5 v( i4 F3 d$ k0 i0 b& E: T& y9 v4 F! d3 u2 b  n1 \5 q- q: K8 O
如图所示" j' T5 n, _: r! S" L+ x, w* m
& t# ]. Q- b8 O! _$ n; ]1 ?
/ K; P) H5 o2 V* u
我们打开loaderpe,依次点  目录--导入表(后面那个横线)
' r$ t" |! B1 j: {' S7 c: K; L$ {/ G1 W) ]
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll# ]" f2 A! w0 g* N

/ q! ^- p: ]; G1 P我们右键--编辑--把函数后两个00修改为FF
0 j" P8 e2 f: x9 p. F( i( ]; r
5 W/ Z3 `# \  W5 W$ e这样可以过小红伞查杀。  虽然会出现错误提示
' B6 e5 ?3 ~1 Y, v( P, y8 S+ d. ~9 l4 x; \0 g
但是不影响木马的功能,不影响上线。' B; M" W$ ]' r* t8 _& u( y

8 d7 }& H1 [  Z1 X, Q4.dll后面加20 90法过卡巴查杀
- r; [0 F, W5 n1 O9 \. |- M2 s- t1 i6 {( K. B
需要的只是一个c32asm而已,非常简单但却非常有效) z6 K1 H; t- k9 E: F% x- }3 i
1 y* c3 w" z" d5 ^  Q
如图
4 ]7 ?# ?5 e6 O: t
3 ~$ \6 {, Z6 S4 T
, K3 H) H) M/ o0 V! ]
8 f5 Z' y& H- ?6 ?6 Y我们可以看到,
7 Y0 N- C+ O" ^8 H! F) X6 C1 K
! J$ i4 _2 H/ f在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
9 Z) ]6 s7 h$ [4 _: ]$ _! O6 ?9 h( n4 s5 r! f5 v0 A2 N: K7 e& ?) Q
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection9 Q8 u1 D* E, s
4 v6 U% o3 X% Y8 x! i
我们只需要在他的所属dll后面加个20 90就可以了! J. y8 e/ l9 a' F9 f

, J) R: z3 c* ~( C: ~卡巴目前还不查杀此免杀方法
! k" E7 ]# l! Q& ]
2 U( ?- C! e( s0 y: _( e0 d* f. x( i, r$ f. _5 W/ \. A* K" G
唧唧歪歪这么多,打字有点累了/ A7 m4 p* |! F2 e! ]2 }' }
" }0 S9 c& R1 z$ x5 {
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
* M5 j. I$ c7 h0 s
1 s6 Y1 N5 o2 i/ a! _) X5 V2 c[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表