Board logo

标题: [原创文章] 木马免杀之免杀输入表篇 [打印本页]

作者: 1335csy    时间: 2009-3-31 11:30     标题: 木马免杀之免杀输入表篇

最近和一位木马免杀牛人交流,感觉新增进不少,/ }+ W% o  k/ X7 h, ^# v
) Q+ r: r" A& P; d9 ?" Y% y
特拿来分享给大家。9 t( R  U" E& V8 w; s

  X) M( L7 O; i" Y' ]今天我们不提我们国产的那些杀软,真的垃圾的要死,
; M( Q& O! ~+ e6 ?) _' _! x
( x% s' G1 R% z5 E( Q; a上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表# s; D8 ?" L4 T  b+ _

& j! F( ~. e& \/ H1 Q9 i/ y3 l我简单的重建了输入表就把瑞星搞定了,$ z$ S8 o) _: R* m' O- H9 z6 R9 H9 M7 s

. a2 r7 L6 t7 v9 ?. `9 ]- f9 c& I失去信心了。我曰
! V! Q5 a) W& o" j2 z, R( _: N
! T2 ]& p# w7 E) `, V今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。+ y2 g+ J- W; h0 _0 c

: I0 |" e. e) Q7 p& H% Y首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
* k& f( X8 Z4 F  D/ o; e: u5 V4 L- R
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。4 N6 t/ d( a4 ]! V9 u
' Y0 C/ F# m# z. z  G  t. h
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低- L# Z1 F2 V6 W7 b; o' v9 O& n
' o" L9 z4 F7 `3 ~- R
过了以后再调到最高,再做免杀。. b6 `4 D4 @' f+ o& R
3 ~$ R! e5 Z' ^4 ~  Y# u& W& L( e
以上是废话,9 u9 R4 B+ y& k, E2 U

4 p* u8 m4 L/ Y$ ~3 P: J- m* e3 G好了,下面我们来说下常见的免杀输入表方法。" J9 M* P; q, e8 J) ~

; U. ?2 l$ }9 j  e: s一。移位法
$ Z* q( O! Y4 Z
) [$ [/ l. G' M! _1 T! ~0 i这个已经过时了,我们的国产杀软及时的跟上了时代,' e+ Z! _2 k, c

, S* c6 X  y8 k2 @2 m移位法在去年过金山和瑞星,还有江民都是可以过的,, J8 A7 P  T) L

" w% k& W! k, H9 R1 X现在的杀软智能化了,移位么?呵呵 ,追杀你。7 L, r6 C5 G7 x8 U: v
* I- R9 p4 P+ m$ K  }2 [9 ?! |* W
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。' o& M* N& Y! l; o8 B+ X# T9 @

0 G; z2 _; Z: g0 A二,重建输入表% Z3 z( }7 [" c, M( w8 x% n* }

/ i, m' V5 R+ l( C* ~% N  [2 \效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
" K4 R& r2 }- L! N! P
! e2 n8 [0 \$ v1 x" z# i: a, k这里我介绍下,: z* U3 G: h& k7 }
/ K% y! i, u. m6 X9 Z
用到工具:# U8 N/ l+ G6 U
importrec1.6' F7 o% c7 C3 @3 |& v4 T2 ]2 `
od
8 J) f" r# _- f3 x- u$ T0 Uc32asm2 V+ F2 l% ], C2 P7 n
loaderpe# b( u; L% g/ J/ i6 H) x7 v
这里我们简单的介绍下,如何重建输入表
+ O0 l' C1 d/ c0 y' c* @7 {
% m  G4 K% n, d* Y0 j首先吧文件拖入od,打开inportrec1.6* e% z+ I* Z4 v9 z5 r2 p% O

; B2 }1 i' N' W9 F: N如图 选择拖入od的程序,9 x, |4 [- n0 G4 V

, M3 z* @$ w* o+ m6 S1 l' F# z) N! K7 {3 ^9 H+ P6 _. L
这个时候,我们打开loaderpe,
% a4 m$ }+ U2 K% n3 G+ E& V4 o, t2 ~. U2 i
拖入我们的木马
% n! s8 S9 u: q: L; W. @, Y, H- q& L+ m
选择目录,3 ?; I9 @( [8 k/ c( w
  n* `" ~4 M5 j0 m8 t4 ~3 {
我们看到导入表这里。。。
4 y% m6 m0 P6 |+ c5 _5 b5 _# A$ P/ I# x9 O0 @2 M- W
如图:) j! d/ D8 ~  B

* g8 o; U6 M( w; z
9 @; N2 Y7 L6 F. Q; FRVA地址是0001D000  大小是0000154C, G: t- l3 M9 r$ O  u3 V- @

3 \, f' V1 S$ p好的,我们把这两个输入到import1.6里去
$ Y0 v$ Z% V+ f, T- ]2 E+ o+ {% C; ^! k: ~) I8 ?5 k. f
就是在“加载树文件”那上面一点
* ]; m0 q3 U% j+ S4 ^+ R& D6 S3 Z9 p" a0 U# k; q5 I, f' ]& a" L
输入RVA的地址和大小。
5 f0 I; h8 Y5 j9 n* ?% ]" y! s* n4 e; h! m! G
点击“获得输入表”
; U" j! v4 e$ [! Z$ [8 C# P6 r! b7 K- m  ^
然后点击“显示无效的”
+ }4 ~: a* ~$ K' x4 W+ b7 n
6 F" q6 y0 p1 I$ I2 n接着importrec会自动列出
( B# U& @9 C7 u, `% o$ M9 M; @6 I( X$ Y
我们把深蓝色的字体  右键   剪切无效的指针
7 U, k: Z+ ^) U* R7 r/ D8 x# ?, W( B. i- }* n

4 L$ L! ~: `8 S) r最后,我们点“修理dump”5 S8 i7 |8 R" O- ~" l& H

: [/ G, _7 }, _3 U9 P0 g4 O选中我们的木马就可以了6 y4 Q0 x( u, E( k; m
. I* T: ?  D6 h# x! B  @
最后我们要用到c32asm
: R  e. _3 e' o, D; D% u* }) t1 W0 W+ }; y; g6 _) ?5 j! e
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
; T5 c$ U- \5 s. A! X4 ~0 D9 O3 ]  k$ B, N) |- {- D
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
. c5 }+ B5 ]9 X6 f: k; ]! N/ r7 U# m* w
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,% ^" ?* k4 i* z5 J

* A+ ?! n2 p" e8 z我们把马子拖入od的以后,打开了importrec1.68 g8 Y. t8 N" K) c
' x4 v, Y+ y# `: ^8 {& `0 Y
在选项那里,选择根据序数建造输入表和创建新的IAT
: |; A# T! v% ~' G
& m0 h' P7 B/ m3 F; o, V5 Z如图$ m8 ~! |" D1 s6 n5 a2 _, y/ @/ g+ i. G$ S
3 ?$ l4 a9 ~' G' K0 y
. q* Y8 l2 w. Q( a2 X" C3 i
以后的步骤照上面的方法继续就可以了5 P& l/ b$ a( ^

( P4 L8 J. l. J! I不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
2 H1 R7 Y7 l8 E8 ^; r" b8 Y2 A4 y* ~% [/ N% K, H
因为kernel32.dll的大小不一样。
; t+ g# h: \# U( ~- `( c2 T3 d5 d2 N4 q1 v8 {
3.修改originalfirstthunk
* n3 Z2 p4 i4 D, k! W  A! x3 K  w* @0 O
如图所示
! @  p4 q' W% I+ X: n* u7 Y& s
, t+ y1 l* @) J. Q! }
3 k3 U& ^6 A9 N7 x# b我们打开loaderpe,依次点  目录--导入表(后面那个横线)
1 b( J4 p4 k: E" |& F8 ~' V: J( m/ ?- `8 O' R/ z
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll$ g' e8 f' s% }0 x

% l8 Y/ i6 J7 q* A3 D( `8 C' ?我们右键--编辑--把函数后两个00修改为FF- J: n# p3 Z% e& k
- x3 l4 S5 P) o- u( F) c% n$ A) D
这样可以过小红伞查杀。  虽然会出现错误提示, Y2 q/ C  b! H

# w1 n8 c" i- l; b3 O( x但是不影响木马的功能,不影响上线。  X4 _1 O2 R5 k! P2 a; |/ }2 P

! G4 s) E  {" A9 j1 Q4.dll后面加20 90法过卡巴查杀% f) y; j0 F9 N4 E
. M( N, f7 i+ @1 j
需要的只是一个c32asm而已,非常简单但却非常有效4 a0 I( I* D; q& I) P% J0 a
( A5 {0 |! k- j0 H5 B2 K1 q
如图
2 q" U) R4 q8 z4 F5 T. u
* |- H/ M& ^  k- d9 ~
5 r0 [' `2 m& t+ ^' P- }; ~+ ]* t8 p& i2 n
我们可以看到,$ w8 `% C% \- z. }+ x4 k* a

( C3 {3 W1 K2 b" x7 e. u+ b1 J在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90( W/ o! P) X; V0 O' v
$ \! l/ s) @# p. N- v# |
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection# E0 B4 x2 U! s6 ^3 C
% w- z9 p* b; c& N; {8 e# k
我们只需要在他的所属dll后面加个20 90就可以了
0 C3 [5 |  x% k; N$ C
  g' @& [7 y; R5 o3 ?卡巴目前还不查杀此免杀方法8 k; p) u* l& w+ W" y3 w
: u. T: S9 x$ Z

; ?) m! X/ n8 S% E  t( ?" d# u唧唧歪歪这么多,打字有点累了! J9 Y: L, @, Y# h- K0 a

) [, H+ G: r  o: w6 @( d, e以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。% t, N% |% ~" z0 A

2 e6 U8 o; _) y6 o/ f8 B) J9 F6 X[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]




欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com./) Powered by Discuz! 7.2