返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,: x2 r) |( W9 b; y; ~, r( q% e
& E8 Z+ j# o% n0 ~2 k
特拿来分享给大家。
; v4 |+ U8 B& X- e
6 }2 t0 J, E! I* o/ Q+ B今天我们不提我们国产的那些杀软,真的垃圾的要死,8 _) E8 p. h' c9 H; H
' L, i6 {  k* D+ m3 Q. a/ s
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表7 r; u5 }) k' s8 F& O: u& A. \+ X
' O, F8 x6 E1 \3 O! {
我简单的重建了输入表就把瑞星搞定了,8 Q. `  U! v9 e# ~- B
2 B% @8 z; c/ L
失去信心了。我曰2 n) y+ |& P0 S  }/ z/ C: T

1 ^% s& Z. F5 x) \2 H" a今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
/ C) n+ E7 W0 _7 C8 Y
. t- M! V7 t% z6 k. J首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。! j! x1 L: X. F& @+ {' I( H$ u1 P

5 O* k! C" V/ x5 t外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
2 B. K* J/ {3 F+ ^
( Z6 A* Z1 V* \' ?) U高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低9 w  X/ }7 f& H
/ N( x2 @- `/ v( P( z
过了以后再调到最高,再做免杀。
7 K, _9 {- _0 O- \1 X9 ^9 _: M
- {/ _6 a' z" ^7 o以上是废话,
' a# v/ I7 O! D/ d3 m1 A- r. ~, Q" |. T# k, k3 {
好了,下面我们来说下常见的免杀输入表方法。1 L3 q- G7 l0 v& N
+ c( p( H) I6 F% z
一。移位法
8 M( w9 x5 Z1 k! Z: X6 E% w! b: y: q  n" c
这个已经过时了,我们的国产杀软及时的跟上了时代,0 K. ^' k; m( `1 l. q/ j3 [0 k* S

. |7 U; o+ a' q( V移位法在去年过金山和瑞星,还有江民都是可以过的,: i- E+ X; w0 E% D# Z: F
3 d# E7 }$ u9 `: `
现在的杀软智能化了,移位么?呵呵 ,追杀你。3 S" G' H! W* F! U0 c1 i
! O1 t  ^  Y1 L2 L' n# u9 A3 P
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。& M" e  ]- n" c9 O; T5 z
  z/ p% O3 K$ S4 }1 D! k& R
二,重建输入表5 l( b% [9 g3 u! M, n

. ~; X: ^0 X: O$ c0 K, e7 L+ m效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈  v& j2 L, t# ^) n, C
1 f1 ?" i9 K3 y9 }( g2 T" h$ W- I
这里我介绍下,
. Q' Y! A* o6 J( ?% L' T: s( _3 C7 v& x/ g0 ^. }+ n/ A; [& Z
用到工具:
7 L7 Q8 k& X6 n3 o5 D- ]$ Ximportrec1.6* ?4 Z- T2 X- n5 n
od
/ K( F9 ?7 u7 t# G+ u: z5 {$ h! sc32asm
3 m( }$ `3 G; R" m. n- T* x8 Aloaderpe2 o$ k6 ?' K- A$ j, b
这里我们简单的介绍下,如何重建输入表  Y# m  v; C  t2 O3 |# c2 k

& ]- K" K0 N2 o$ P$ V6 d0 W首先吧文件拖入od,打开inportrec1.6
  D8 k* w& E' ^( B; r7 }8 \- L- z- X
如图 选择拖入od的程序,
6 n4 f8 R& _, x/ t1 ?9 ?4 N5 n8 ~
; m) x( z+ c- D( f, I& V
3 \0 B2 B+ x% z1 v- V/ i1 W这个时候,我们打开loaderpe,0 d% f8 S3 u# x! v$ r
0 H) g" y& c; g& c) y
拖入我们的木马
1 O' m% w/ i1 [8 C3 \/ P! O/ h2 ~4 I7 b5 a# s7 _5 @* I$ C! g! x
选择目录,4 q; ]; Z* D6 ]8 L6 g+ C
5 m$ J& u& }- D" f3 ?. d
我们看到导入表这里。。。
0 d  }, |+ u( r7 h8 q. g8 \' ?0 D
6 _0 P, t0 Y- g% X5 z9 s9 y& m) I如图:
* r! C% F* K% V1 B  F2 l# T& J5 ]+ |# z; a! U

  \; o$ S: C7 g( [7 X& Q/ S; HRVA地址是0001D000  大小是0000154C* V! I" E; l( n* ?
- m/ E5 e0 t% X8 O5 [. v" i, i
好的,我们把这两个输入到import1.6里去, O. K  S. }: F5 ^, Q5 E* H. p  r

; c5 l. Q1 \& N- e9 ^就是在“加载树文件”那上面一点
; a+ u! A2 I1 P# ?' T( b( U; C1 z# z# E. {
输入RVA的地址和大小。
) ^1 c# E: X/ }  x. T* W, a- U! o
点击“获得输入表”
5 W+ v# i4 E5 N8 Q
+ z" G$ s3 O9 c9 `4 [然后点击“显示无效的”7 b7 R8 }* m: r) F
! E2 W; L% L2 x; N/ X7 L
接着importrec会自动列出0 r2 n+ a+ ~/ _3 E( P# x
5 F0 d: G2 H+ T8 m% f- E6 {
我们把深蓝色的字体  右键   剪切无效的指针
6 D1 M0 e. `. W( m, B1 a5 Z/ {8 g: r+ ]+ r$ a) N

9 Q+ ~$ @- y* W$ K0 W最后,我们点“修理dump”2 Y" o% e( ]1 }, r& d; {0 t
8 O5 x1 p+ z* B' U
选中我们的木马就可以了
; Q: C7 D8 i6 S5 T* K- L$ g8 e" \/ \
最后我们要用到c32asm
1 G5 i% p" e6 W
6 E$ N0 s& U9 y* i' q我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
8 e1 w5 D0 @8 F9 S7 r+ P( J
- `' X: _$ A$ @* R* G7 y这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
2 u0 Z! ]8 @3 ~$ P3 V* A# o0 X: B. e# ]( Y' s' r& m- T8 R
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,  D# u- b+ h8 Y' V' H7 h& h! Q
3 p# Y( O# G* r4 A; E% m4 s
我们把马子拖入od的以后,打开了importrec1.6
6 L* o% c' Q; Z5 L; o2 X; |- R" b6 V, B% z8 w$ B4 w$ W- v
在选项那里,选择根据序数建造输入表和创建新的IAT$ }* J# F: c* o& ^* u

( a# B3 _+ R4 Z4 `$ [3 s4 J& b如图4 D0 M) j1 W) X6 S- ~& K% j7 s

5 w4 B2 E0 m( j0 n9 e
% n1 }/ _9 V( j/ u' ^以后的步骤照上面的方法继续就可以了
5 b/ h6 N8 f0 m$ l0 t, N) s6 H5 X" w5 A2 f/ S# G2 f' t
不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
- p/ z. Z5 v3 g3 H
" _9 F. M4 Z* F因为kernel32.dll的大小不一样。3 \, E- U! K- G/ Q( g! ?

) ^! s- A8 i, I2 i* z6 p! }3.修改originalfirstthunk9 F* n  c' z0 u

  Y' A& }2 D5 U( R& `如图所示- N* i7 |" c: n. N
% S- h8 v1 Z; m! A: {) W0 A5 @" H

% }1 D% {$ f) `& I6 ^  K3 F( y! u8 Q我们打开loaderpe,依次点  目录--导入表(后面那个横线)" a! ?  h3 l" a3 \  _! M- m2 I

% C" |9 [+ \4 I/ @我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll7 l! _' k0 ?3 T/ S
/ Y$ I5 `5 m: ^8 _$ R
我们右键--编辑--把函数后两个00修改为FF3 u3 M8 O5 Y( R. y8 X

1 f8 o5 l; i* [5 E这样可以过小红伞查杀。  虽然会出现错误提示
) V7 o2 v1 F& |" a( ?8 W# n! S% |9 L, m- J' F5 O
但是不影响木马的功能,不影响上线。
3 v& g) A0 G) D) N% f1 L
7 x. \5 Z! E; ^8 G4.dll后面加20 90法过卡巴查杀
9 ^* J3 S' @8 n9 |/ s" Y2 b7 l) F# y1 K9 `- g- A. l1 _3 ]
需要的只是一个c32asm而已,非常简单但却非常有效
' h4 z6 I, c6 z* R6 I- b# Q: h. e, h) x* l3 f( _7 r
如图* d  A  O" a7 }3 i0 R5 i

: H8 M, j; J$ j
6 x8 m4 z8 V/ `8 ]- ]) f
" M" h$ P8 e" f1 b1 G' ^2 i我们可以看到,8 O6 i$ w  o( r

, _0 q8 O5 _+ ~$ v" R& k+ ~在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90- W3 c  @+ P$ R/ f1 O
4 {9 i; _, f) Z" q" e7 _/ B, b  t
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection5 P, U3 l9 n/ u% }8 \
- W, S+ H5 e0 [
我们只需要在他的所属dll后面加个20 90就可以了
- ]* f2 d3 Q" J- O, o+ H% U; f5 T1 y+ A9 S
卡巴目前还不查杀此免杀方法( z1 R4 x( @, g: G
7 @7 x# B, @$ Q8 V, D  V1 K4 o6 c$ i

: d1 A% n$ o- ?) A  ]唧唧歪歪这么多,打字有点累了
, {, g. D2 x7 y3 [; W5 w' I1 L
" i; k1 Q- y8 K6 I" W6 k* C# o3 P! A以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
$ e% i7 r' x) e& A# A9 G! @
3 h; f' L0 {  Q! i[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表