返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,
: z& p7 T/ o* V: u% k9 t0 J4 U" U$ v8 r+ U0 @! V* A% R" s
特拿来分享给大家。0 t+ t4 T1 F! C8 ~  s
" L# v8 ^4 d/ O; q* T8 G' X& H
今天我们不提我们国产的那些杀软,真的垃圾的要死,7 m/ D7 h) s, v! ^) p0 x/ i

' }3 e# v, B% L$ @  W  ~上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表: f8 r. ~! N. A  ~% O* R6 V
8 B: D7 o6 ^  b3 k& X
我简单的重建了输入表就把瑞星搞定了,  _  P) {- X9 c8 L( t2 g

% w$ B3 }' ^/ e* p$ ^失去信心了。我曰
1 z- ?; \9 B2 c
/ {5 X$ J# T, q! x今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
5 Q& V/ p( f5 K. A1 B* y
2 V" A/ A0 d/ C/ Z* N5 t! ?& l首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。8 k  R- |( D! O2 v

7 U1 Z* G! I9 w  C( ^外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
% S; }# ?, Q/ p1 v! \+ \) r& m7 q- e" q- d: C* u4 l
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低3 N. ]9 B% ~& R  ?; o& t- d. R

' V/ }# k; c' J/ _" e过了以后再调到最高,再做免杀。  V8 u2 Z3 ^: L
) c7 k8 w# D) C0 K
以上是废话,
& K- }% }; ?! x1 |% ^" i  v; |
8 w' h7 g. K$ F% b6 H9 u7 x* J好了,下面我们来说下常见的免杀输入表方法。
8 a# q& n1 y) a) D) M! `* @* I+ r. x2 Q8 y2 J, o  k5 @3 i" y
一。移位法
8 y4 |" R9 e  l2 |* L8 j2 Z) q! w6 e% P0 ?/ r9 ?
这个已经过时了,我们的国产杀软及时的跟上了时代,/ l: }) X( m  v. W, p0 D0 h2 `! i

$ p, T& R" H: q2 B0 I移位法在去年过金山和瑞星,还有江民都是可以过的,9 O6 }( {$ K; J& f7 v
3 c! s; Q/ t: G! O6 y
现在的杀软智能化了,移位么?呵呵 ,追杀你。
( E1 b! d9 A& H. v# D" {4 y9 W# W
6 h* Q) j. L: q4 b, u如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。2 y7 X) K1 l8 M& M4 l

$ s( h8 U2 a4 d4 T( y+ X8 k二,重建输入表
' B' Y3 \1 Y$ Z( q) H# P  w' Z) t8 }6 S8 V  G. K7 b3 d
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈5 p+ h. [* M/ z( G' L# g4 B) K7 t

9 u7 Q( ~1 @, F3 E1 w这里我介绍下,
  }) F' y; p4 x/ {3 J2 N% [  @; D5 g8 i& X6 i6 O" k* t
用到工具:
' }- G! P, K+ E5 d/ ]- fimportrec1.6
+ m; w$ T$ w, Kod
0 A" V  z% Y4 h7 r# uc32asm1 A! Y- D9 C# q/ ?" X3 F
loaderpe8 |. d, w" q( p5 F
这里我们简单的介绍下,如何重建输入表' ?2 E( M  D' K) h
5 `. u# b7 P4 t3 [
首先吧文件拖入od,打开inportrec1.67 Y" ]/ n) F, K+ M  {
# b4 q. v4 `/ C( f4 [# x2 f8 W
如图 选择拖入od的程序,: c4 a0 S) s$ R  d, b4 t' ~/ T

& S, l! B3 P3 A% K% s+ u( I" S/ X* r' G: M
这个时候,我们打开loaderpe,
: j8 F+ V/ }/ {& O" i" d; k/ O  o% y1 i  c  |: d0 R! g% n
拖入我们的木马
  k' A% l8 _3 X7 w0 y
$ W; B& ], D1 t- X# Z, ^( T选择目录,
- J$ z( n& G( }4 U  b# M- ~( _- x- w* b
我们看到导入表这里。。。
( s/ j7 V/ e0 _+ S: ~5 I$ S4 W
/ l+ D0 R9 O5 A7 S+ t如图:
5 z, ~. K) n* E) g3 w- y$ D
$ d* Z; ?) p& s# [; b4 [5 b; f
. t+ E3 N( G' n5 [5 j  k) ~: W2 \RVA地址是0001D000  大小是0000154C; W. x" k1 a! {, D9 q8 q5 T

' X8 d+ G" b  Q$ m' r' a8 E好的,我们把这两个输入到import1.6里去
# [( L. `+ _; F- o$ l  Y* v
( R8 F0 I# k: B/ g就是在“加载树文件”那上面一点 : i" k) d5 k7 r, U8 I

. Z+ h9 r& p5 _6 \' E, ?6 _输入RVA的地址和大小。1 |4 x: u; u3 ]9 Z- h3 X0 P3 T) J

) s) ~% A1 J$ f: I% r7 z点击“获得输入表”
1 `% l5 t' E; N8 t) a9 o# z9 D5 u# k. J
然后点击“显示无效的”
% q, \( X/ ~+ R8 ~/ f
2 g6 Y/ G5 w* R6 S" t3 e接着importrec会自动列出9 G' x* G0 Y- N1 B# w

( f# }7 I, `" v# |! u: C我们把深蓝色的字体  右键   剪切无效的指针5 g: W+ o9 w, D. a0 z
" q1 B3 N1 N0 N* @; E/ c" ]

# J' n* Q: J+ O! [+ O. @最后,我们点“修理dump”
+ C. f5 B* J% m$ U9 S' q& Y9 n
- |. I. w' S( ?/ C( w& v# C+ w, J选中我们的木马就可以了
+ k" v6 N; z( M. }  L" D' C1 M& ]# A0 ^3 C
最后我们要用到c32asm
/ \- A7 j: p8 c  \
! \; w! u! T5 |( X0 C/ }3 X2 C我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。+ k: D2 b* \: t8 h

' d0 R# K- b7 H# V  U# w5 g, H这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
1 R0 o1 b+ g. ]' r; K. N' G; {9 i: i4 {5 {) {9 P
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
1 A6 V; U9 H, }. K6 j% ~; D$ P" ?5 @5 R
我们把马子拖入od的以后,打开了importrec1.6
' m4 E0 G# X: Y0 U# Y& A
/ E# k! u" `$ e8 C6 F# A在选项那里,选择根据序数建造输入表和创建新的IAT
! j/ L" `6 u+ e# A
* ?* {; {1 _3 B0 T: L; n/ k2 u7 M) C如图2 s0 e! v8 o- X4 F

) R* S6 F: y* Z7 k" z* I' t
6 b$ Q2 p+ u5 u! k- G8 e以后的步骤照上面的方法继续就可以了; p- t. }% C4 }7 h
% e* M# G+ o- P0 B  w6 i) u- m) y
不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了/ V' L1 v' v( t5 b  n

: f$ p6 V  R) P1 m因为kernel32.dll的大小不一样。
. k' `, R+ y* q8 _. f9 }
" P$ \0 t3 @* g' E8 C3.修改originalfirstthunk: G2 h; t" u7 ?% ~# |) b
8 y5 t: e3 O+ l, S9 J
如图所示" X" H7 U" q3 }+ }: O9 ^

2 ^% o$ r7 a+ l3 @
6 V4 A0 z" m% m' f7 c我们打开loaderpe,依次点  目录--导入表(后面那个横线)4 ], f0 N; F; g
2 l" i' F. `' l$ U7 A
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll* a+ z& q; i! K' i0 _
# x; M! ~1 W8 l* _: M7 i$ x/ y1 K- z
我们右键--编辑--把函数后两个00修改为FF
' ?% s# ~  V* M9 j, ?" `$ p; B2 K" ~- u. n; x4 t& N  F
这样可以过小红伞查杀。  虽然会出现错误提示
# ^- q- F' T. X3 q
* g9 k+ L. p2 W5 ^但是不影响木马的功能,不影响上线。
0 H* p' }/ s  ?9 C8 h$ W7 Y  v; K/ j9 M3 c) _+ n" ]% A
4.dll后面加20 90法过卡巴查杀5 i8 t9 I$ k: [
$ L' V5 O1 t) r) h7 h
需要的只是一个c32asm而已,非常简单但却非常有效
1 F7 d7 ~" i2 s! W: y/ f
. Z( r0 H* c; g1 v如图3 J" B6 t2 J! d0 q( u

: b7 T8 z& D2 M  |9 B, T( C
- Y, e) b: n/ _2 ]
9 Z5 ~' d7 H) P, m0 f& u5 Y我们可以看到,
  O6 K' d' e& }" c. l/ k0 \1 [: F$ V) e! v4 z" h" w. H
在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
8 t* y% D* {* g; j1 o# `- Y7 y1 w1 F
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
: A5 j% h9 e/ |& B
8 T+ F' j" |8 ~+ C( U9 i' R8 [" }我们只需要在他的所属dll后面加个20 90就可以了. J- R& v' u% _% t6 P
& h1 ^  s4 }2 U4 k0 q
卡巴目前还不查杀此免杀方法
. c( s4 b7 @9 ^+ S. Q$ H, l$ }; O/ m8 m6 ?& f. X
6 F7 n6 g' n+ ^' l3 D, s
唧唧歪歪这么多,打字有点累了
  y) \' [& [/ a& k1 E8 y# V) d2 {. r. ^4 T2 ?% ?; o- h
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。! `! C2 ~* a& N% b8 H

3 w9 G" Y. B4 Y[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表