返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,
8 X2 W9 O8 P9 Q6 P  K
7 h2 H0 V/ ~9 C0 b/ K) {* B9 w特拿来分享给大家。
" I6 S) E2 ~2 @' ]- W) P# k; L' f+ x/ |  H
今天我们不提我们国产的那些杀软,真的垃圾的要死,
8 `2 H7 |8 `, W5 A( G
* n0 d4 z  y' W9 V& h" b4 J上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
* y) y8 A- j6 x, ^7 c( V8 ~4 l1 a. H! B* f
我简单的重建了输入表就把瑞星搞定了,% F6 t. h) X" y- b# ^& n& u/ R$ P
1 ]0 ~: h& {  W
失去信心了。我曰' J7 @/ o) r5 `1 d& |/ r$ k, [
0 s9 c( H9 _( U" o# f0 I
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。  f4 Z) Z  {( ^% Q

. @9 E2 ~. r# `0 l7 S* g7 d5 t首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
+ P2 u* L: e/ _+ |9 X) g, e+ s* ]* ?, ~1 j5 H$ h5 |
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。/ H" H/ A1 y6 y: z2 A1 s: R$ A

/ d! w) w  ^/ Q! g0 a  g高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
: m' G0 D0 @# p: _1 T! N" V* C5 w# p+ B2 z2 @, S5 X4 S
过了以后再调到最高,再做免杀。
; _/ b; u: r% G+ @0 z5 R; @
% z5 ]% ]" G( c以上是废话,( z8 g% z# ]6 L* a
* C) @* b: S8 d  Y3 O# k
好了,下面我们来说下常见的免杀输入表方法。
, t: Z' p+ h+ n; c/ I8 k, D
/ P% X4 |5 E) |4 r, x; {一。移位法
( P4 y% N" h8 _7 X
: l3 w# M) Z$ k/ S) _这个已经过时了,我们的国产杀软及时的跟上了时代,/ @0 @4 m  m8 Q. m

3 {% p3 V$ S3 t4 @4 ?; F1 K移位法在去年过金山和瑞星,还有江民都是可以过的,
- }' \" x6 `- n( d: ]' a$ p4 {( _5 X
现在的杀软智能化了,移位么?呵呵 ,追杀你。" S" l. V" {" y# z% D! l
; l; u! F2 W  o/ Y
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
& I, H' L& l* D* K, [- M+ Z% @
0 T- |7 d# h* e二,重建输入表
. D0 |5 {5 E9 l
0 b1 H2 }* W5 }& C效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈, O. V2 s0 p$ [: |1 L5 Z' Q7 B

7 B! {1 y7 k3 U* t8 |* ?+ |这里我介绍下,9 v2 v5 V) h2 }  e* Y* y9 t

( q3 z. h: x0 d. u/ C* g+ w/ }/ J用到工具:' L/ o: v" d; V% d* V
importrec1.6$ M! A: r- @% d9 c- V& \# y* T
od
) o" E9 U* ?' c8 w/ d! j; pc32asm7 @) y" i$ x( s( `
loaderpe% A( l' Z4 l1 C6 H0 O8 U2 N
这里我们简单的介绍下,如何重建输入表
  |) h0 A# N# g( K3 C* I; _. B% X! K  [6 c- @
首先吧文件拖入od,打开inportrec1.6- I) `9 A+ k% ?# ^% N1 Z" {5 `
! H$ s( t3 [. z. R* @: o
如图 选择拖入od的程序,6 y  F& G$ l! F9 v( b5 g
! K. U; D( l! ^
- P3 u6 T! Y2 f5 y5 S, G  E
这个时候,我们打开loaderpe,+ W7 }2 u7 O0 A# p! y4 o

7 n7 @  n  g. G; r拖入我们的木马3 o' e* J6 V9 D3 J( O6 t" }5 b

& K- \( o1 F$ \) e6 ~7 G选择目录,
6 c# O9 F) _/ p# I/ v2 |0 y5 ^7 @" X* J7 z5 q
我们看到导入表这里。。。
4 p9 z  ?. X% q* ]% K! D& O0 p/ E$ t) a6 W
如图:
$ [9 a3 _+ U0 a3 M
) Y( ~7 y- N* p) f; v2 p1 F' z" U
RVA地址是0001D000  大小是0000154C. A+ b3 y. c$ d5 N2 Z  E8 J
) U$ a0 c. _' b- U% |
好的,我们把这两个输入到import1.6里去9 ?, ?. ?* G2 L& n! M+ [8 L
% }" u3 X8 |; w( r
就是在“加载树文件”那上面一点 + E: e4 |9 \- l$ O+ p4 Y. a

) }7 }! U) C1 c# H: D0 [8 N5 y输入RVA的地址和大小。2 `, T& A4 x+ g8 V) h6 r/ \9 L
1 p) l8 V; G4 D; e1 C
点击“获得输入表”
8 h2 ~4 g4 _* @4 y" `- J. U; n, X, x( z( o2 w( g& l, g1 |  z0 A
然后点击“显示无效的”
) W6 `, K1 w# ]* d5 \! x4 G; `8 ~- w! Y2 N5 `- h: V: Q# b
接着importrec会自动列出
5 V) W, G9 K5 J$ \2 o1 v5 B# ]5 j# U* V
我们把深蓝色的字体  右键   剪切无效的指针4 X  G/ Z  v! F6 t; x# d$ |2 W

  g$ ^6 S1 }1 ~' W. K$ O. f! ^2 u! Y
最后,我们点“修理dump”; ~8 N7 F9 e9 O' E" ]& k

) s+ _7 E/ v, p9 s$ s. u$ v' t选中我们的木马就可以了. k$ M: f' Z( ~3 G
* i* k, a$ d" n# H3 F
最后我们要用到c32asm; Z; @& r" o( `. h2 I3 U9 h
. c! O" @: ], ^0 m0 Y; d6 h# c
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
" x2 \2 X) V) ~6 N. O. b# Q, ^. W# V- [5 |# H! @
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)0 g+ q% w. k4 E

. x9 }! b) ~& O' V" u. ]8 V这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
' A3 \1 x3 w. K: q) ?" V6 P& a. p6 ^6 N2 {" q& {
我们把马子拖入od的以后,打开了importrec1.6
' o- H3 a7 F, \$ D7 i0 a, Z' }
3 d* X% p3 N( s0 q- H9 N在选项那里,选择根据序数建造输入表和创建新的IAT
/ R8 \& s0 _9 }7 g8 x" f
, l/ E! v0 f  [如图
% x5 \9 X# K+ v+ N0 R
3 U* f) h) c7 J  L) }, y
+ l3 B6 p. Q/ Y3 I& H8 z以后的步骤照上面的方法继续就可以了
" C6 l8 s) f3 d# H6 U# ^% |8 O/ X2 w: Z: H
不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
$ J1 x' o  M' Y6 L' ?
3 W( [# W  x& E6 r4 w因为kernel32.dll的大小不一样。
# P( j! P  N) y0 {5 I% k6 w) t) `. n1 u( A; F) b/ s6 E$ C
3.修改originalfirstthunk
  T, l' F2 O/ {- K1 O% F; ~) i+ s9 W- b# N
如图所示, i( {2 Z- S# y2 [' D

' H/ s6 l( U  r( Z$ U
; M2 _: p0 k* X2 X$ L我们打开loaderpe,依次点  目录--导入表(后面那个横线)  w, }. G0 H  Z" X+ t, j

7 I5 ~6 H9 w5 C1 u我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
. _. x9 N9 Q. i5 B
  I7 R- C- W7 v' V7 B; X+ X% X% K我们右键--编辑--把函数后两个00修改为FF
/ g  e- E7 E# j4 o5 O9 }. J& w8 b: H  q6 P; u; L
这样可以过小红伞查杀。  虽然会出现错误提示! @) `6 }* m8 |% o

. T; C$ W6 @6 P9 Q但是不影响木马的功能,不影响上线。
" X1 y" M% o; y6 q% m" E
6 r+ ?' j8 v) G! e  l" o, Z% x! `4.dll后面加20 90法过卡巴查杀
: t7 J' g4 _9 c# S7 b, X* `, K
9 B! G/ C9 A# p, C需要的只是一个c32asm而已,非常简单但却非常有效' r0 R* X7 s  R) ~/ d2 X5 z) z3 D

2 x' ]! S' i4 Q如图8 b1 Y4 B: h' f$ ?

: Z' }. R% @6 K. h& D. C$ x
% O8 Q: D, X. l  U* J: N8 q) l' j2 T8 h* P" }$ w/ D) L% K
我们可以看到,9 t' h3 I7 \: d! U. G% d

% g& w$ C7 p, l& t" A* n* Q在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
/ h0 A. h. Z0 D" X
* h& ?3 U, ^- ]- i8 f: \这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
7 S7 ^5 i" C* ]2 E: Q& q+ A+ H( y( K7 T; b) M
我们只需要在他的所属dll后面加个20 90就可以了
2 \( z3 C1 n; v5 g" r# M
0 V, y2 R- b- d6 ]卡巴目前还不查杀此免杀方法
5 f- o& }+ c! O5 A4 {+ l, C' ]& M# Y2 {- f5 u

* t( X$ L# C3 i$ y唧唧歪歪这么多,打字有点累了
0 `  V, X1 e& E& O0 {+ r, A" o1 s' O; u" `0 V4 \) |
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
: Z  ^2 ^' }/ @6 L8 l7 D8 s, _. U: @5 r& S4 U
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表