返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,
$ R7 a7 X3 `" }5 y* M8 G
' A* P' g' f, X: n特拿来分享给大家。
5 V  F5 N  `- F4 ^' C7 @5 j" O" O$ T. g: Y
今天我们不提我们国产的那些杀软,真的垃圾的要死,3 s8 Y/ _+ P2 l& T" m2 u' D6 i
/ ~$ c! D( p+ h% f* m2 I
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
" ^& ~: a# D4 Y5 z' q* }/ W: C1 j  C. k( }( y, X, p, K
我简单的重建了输入表就把瑞星搞定了,
( m& s2 t6 k/ Y; h: x( n
& d7 T$ Y8 W  K: N失去信心了。我曰
) B: ~. |! J, C" o/ w# R1 X- Z' R4 e( M1 O3 O$ Y' E2 |/ B$ I! f
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。, Z: X- Y9 m  E7 p3 q
0 c, s3 s) R# h) n5 c, I
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。6 g8 c2 c1 X( F9 ^6 `
! `& ]' Y/ t, d! ?( B  ?8 c
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。) Q8 F0 d! o& d

0 S" W, Z" ~5 w$ M; S高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低1 a4 L, V; T# U  @

5 F6 E+ E- ]0 z" v过了以后再调到最高,再做免杀。
+ Z" c* U% C4 E- o; J. W
- k( q# d3 @4 @2 V( C以上是废话,1 S' Z% ~+ H1 H) Y6 Y

- N6 R7 N6 h4 X" t& ~好了,下面我们来说下常见的免杀输入表方法。
+ X+ |. |# w& m2 b# @' @5 F5 O2 ^0 E8 s1 R' T5 p" s
一。移位法' S8 I4 e3 }# [/ n& ]

9 m' K3 C7 I% Q0 a$ v! t这个已经过时了,我们的国产杀软及时的跟上了时代,
. B0 p1 E9 m( W, Q; g8 L' c7 }9 C3 T; K  f; G( {2 G, t
移位法在去年过金山和瑞星,还有江民都是可以过的,
2 d  x5 C" m' I
- H2 h! V# E7 ]1 E& F0 U现在的杀软智能化了,移位么?呵呵 ,追杀你。+ j5 R5 k0 ]0 K5 w
! w3 b2 P2 u5 D6 {
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。" Q$ i, L) _! O2 Z0 W

& [$ h- s% P9 m/ b( N( p' ^二,重建输入表$ b8 a% l& Y7 z- }/ v
, s0 n8 K! G" A8 @' `
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈- h! a- K; N7 e- v2 @( P" t. P  E. t

6 i, D7 U* V$ i" b9 e0 K! C这里我介绍下,* |. B8 ]& w9 G# g% m% `
% v$ b; S3 E% S1 o; x; e( b
用到工具:
0 w# g( J* B5 g6 S' V9 g( J0 Timportrec1.6" m* t1 S- m, H( f+ i3 f; U# e
od8 S% H/ I- o0 x- @* B# ?7 m( }
c32asm1 |3 d  Q, g' i: A2 ~- M' c! i
loaderpe. T. t* D1 J7 g; C) `
这里我们简单的介绍下,如何重建输入表' X) L& U# j  C$ G
. W7 e% i0 {  O# J6 O! g9 A
首先吧文件拖入od,打开inportrec1.6  ~: [- E  t' \2 c9 e  d" A
7 X- A, j) ?. W: u# m. s2 X  Z
如图 选择拖入od的程序,
9 J* f( C5 M- r  u' a2 @' r% B+ `9 T  Y* G/ W( G
2 t8 z' r  W  q. \
这个时候,我们打开loaderpe,
* A7 I6 Y9 w- c; ]7 g4 Q: i+ g$ B1 ~- H- v5 F" z
拖入我们的木马
3 O3 I/ v2 h+ k! _. I# n2 k# s/ X- R7 u+ [, w0 S2 @
选择目录,. S, t& U7 A. ^% R8 j+ X) t

# X( l! t. J, I) W6 S% v我们看到导入表这里。。。$ L* z4 C" |" o! @5 w; c
3 M+ \1 `' A# [
如图:
8 E1 H" j. G# o! C3 E. f" f/ W, s% l% V

5 m1 X" Z7 Q3 d. f7 h7 R, eRVA地址是0001D000  大小是0000154C% _3 C" n: `1 `1 W2 K

% l& a% A# j, B好的,我们把这两个输入到import1.6里去/ i7 g6 U7 m9 I" W

5 I6 P8 s" k% I  A% N6 ~$ |就是在“加载树文件”那上面一点 0 w8 p9 u/ q. O. p

/ N2 a# ~: D5 i8 v输入RVA的地址和大小。
9 ^/ J. z. R* r  Y' ?8 h- s/ W- H: \" q5 U* A
点击“获得输入表”
8 F* J# X5 S, H$ X) C* Y+ ~3 h0 I0 v5 ^
然后点击“显示无效的”
! Q+ e4 B3 m* [5 k+ k
9 N0 ?" u8 J( |3 w接着importrec会自动列出  C+ E9 F. B( m8 o% E% C5 i. {4 Z9 O
% m" N/ ]4 T8 c- b2 Y
我们把深蓝色的字体  右键   剪切无效的指针
0 X. m2 F' J+ |" Q; d1 e; V
) y- V* D2 W# O! w& z' p! p5 K. k1 D  [( I9 A% U
最后,我们点“修理dump”
3 k- @/ g8 P% i$ o$ h1 z
. n: D  N9 ^& s7 g选中我们的木马就可以了
2 n9 j+ E9 o4 `+ s' ~* d
, W9 I, \' {9 [2 l8 ~  z8 \最后我们要用到c32asm8 M$ o8 g+ x9 g+ d9 A: i/ `# M" E5 p
4 }$ w- h. C0 U3 \; [5 g! L
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。) E$ A4 V" J+ s  d  ^) z4 w. X
5 `" Y" |0 p4 O
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
0 s+ z6 O; O) |
! l* N& I$ m2 {0 \这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
/ M# O: w0 R. P& J6 S2 i$ Q8 {! q6 Q, y) z. w4 c
我们把马子拖入od的以后,打开了importrec1.6
& a& b8 O  }/ z
5 C: b) D+ ^% W% ~# n9 l7 `在选项那里,选择根据序数建造输入表和创建新的IAT& \% C7 Z  I- e0 |0 J. [

. s, _- D; u5 x' M( c6 k如图
& h* X' H# ]$ _
5 O4 w0 w9 w, {! i' m: j" _3 ~" x5 D8 E0 I9 |/ M8 T
以后的步骤照上面的方法继续就可以了: j. l: g2 K  b5 Z% x  q

8 U% O1 B2 i0 d2 G$ _4 J不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了4 Z$ t9 L, f5 O( n& H
% E2 }- m7 `4 g
因为kernel32.dll的大小不一样。) q, a0 R% h9 j' e1 v

1 \* b2 k  q, g5 {2 G3.修改originalfirstthunk
3 {! g+ R& A& w" X) M
) D5 b  p  X# R' b0 C4 h如图所示
0 L+ E3 ?+ a* u/ [& _' D" r! M4 A
& ~5 p' m5 Y) h' v) F0 D
9 n8 r1 b( l8 {7 v% x3 ^" Q$ y我们打开loaderpe,依次点  目录--导入表(后面那个横线)+ l1 [4 N1 P% ~. T3 k. p, h
. F! k% N" |$ C; b
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
* ]& H) T" d# ~; X% P3 j6 x) A3 ?8 U4 x% M+ E
我们右键--编辑--把函数后两个00修改为FF
8 T; |2 }- `3 f! H- ]  t
2 y: T7 z. l2 b* h这样可以过小红伞查杀。  虽然会出现错误提示1 v* x, ^, t( c% A! h7 y1 R

8 z: ?( x" n: Z2 }5 C% d6 X, A. O但是不影响木马的功能,不影响上线。
: M. m! u" ~: ?5 B: K8 _2 ]- {, t3 z" a! [1 t* Y
4.dll后面加20 90法过卡巴查杀
( t7 y! q2 z% i4 p7 s
  G' C  ?5 |1 b需要的只是一个c32asm而已,非常简单但却非常有效4 y2 m2 z. O( g/ K3 l0 {
5 U" c9 H0 B) f* U5 k/ I6 t
如图
0 I: [( [1 f) |- Y
3 W! u, j" j6 n% p& U9 p, O! Z
% x2 ], I  o" @/ u0 d  k/ P2 Y' _' O9 h  p: L8 w
我们可以看到,5 I: T/ p; `' w9 ^

! V- j. B6 H0 a( T9 ~1 j在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90; b8 R$ }. t# h% }2 m5 @. }

$ i- F* X9 y2 M. _  |7 p这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection; y2 e# v. A/ k6 a$ u

' Q! Y: A! A9 j9 Z我们只需要在他的所属dll后面加个20 90就可以了
; ^* ]) W8 D/ S" }% u1 a5 [9 t4 y( H2 W) S4 e& z" N# c1 f8 z
卡巴目前还不查杀此免杀方法
$ x2 S6 E# Y; Q1 h
# b; K- K+ w& X' J  M) r: T
' u) y, w' `3 l" u唧唧歪歪这么多,打字有点累了
: I$ A4 m* S2 O* l: D5 E0 Z% M
1 F9 r, H2 a8 B; R& z. U7 f以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。/ n& Z1 S/ |. B- B
7 e7 \: ]9 {% B; G" m  X3 L: n2 m8 [
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表