Board logo

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

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

最近和一位木马免杀牛人交流,感觉新增进不少,
4 p8 p& y1 }2 z  ~) ^! i: B" T$ c) y. x4 A8 H- }# s( z: u
特拿来分享给大家。
1 [4 c9 ]! H" L+ f, d7 `
/ }& t1 e- T5 Q今天我们不提我们国产的那些杀软,真的垃圾的要死,; J5 C  a; O8 ?/ R9 c* ]  j  O

7 Q* D/ r: ^9 [& C* u! W0 f# r, ?上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表# O5 ?0 U# A# {
/ f1 A3 V' u# h$ O2 ?8 v
我简单的重建了输入表就把瑞星搞定了,9 x; l! y3 _- ~

! w$ B9 o/ g! `" C. L$ h$ s& h失去信心了。我曰
$ w; ~) i' J' b: j! N" o, s) H3 P& t0 X+ r/ O+ b
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
8 I( @1 p. K) ~  D
2 F3 |& B$ w9 l1 o: d) [首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。5 e1 D- t$ W: `, C* f( K
, l4 B3 G. ^. H' q! @& s1 O
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
! _" n$ U7 Z6 }' K9 a' ^0 S7 {, c1 u& l5 s' S' x
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
$ t2 X6 J5 z% T
1 H0 \; q$ K$ j* k1 V" q/ ]7 z5 r过了以后再调到最高,再做免杀。
4 O. I  g4 _4 _! H# F/ V8 Y9 A5 M/ Z$ ^2 C4 d  M
以上是废话,; L$ q5 G4 \" S# x. Y% v7 A: _

% ^" a. e/ k" f' D# I' W0 d5 k好了,下面我们来说下常见的免杀输入表方法。
# i1 {* G6 Z+ m1 P
& O9 i) c/ E' g& d5 O一。移位法( ~$ s" b. S5 y) y. i. ~8 Z

, U) \) k+ N% ?$ |- J这个已经过时了,我们的国产杀软及时的跟上了时代,
5 X4 g% R7 m9 S- k: J# G
7 i  ?: ?: A* A. }, ]0 E( u移位法在去年过金山和瑞星,还有江民都是可以过的,
  ^2 P) L/ u6 [( D
8 s# f; Q2 y& g! ]4 S现在的杀软智能化了,移位么?呵呵 ,追杀你。
' p. m3 S% k  a
  z$ P  S7 b6 H如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。+ Z* ^3 X7 e  l6 ^- h  ?" a

, S2 e9 V( u( A% m% p二,重建输入表3 n- i/ Z4 q3 J

2 Y( P7 N" X3 ^: b9 C/ V/ X效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
8 R# I3 T* @7 j. T% k0 q0 W5 u4 R+ x! S* W! x9 w
这里我介绍下,
, }/ |3 k, s, o: d4 L/ \% W4 M5 [" _
用到工具:
0 g' w* i: P5 K& y, pimportrec1.6
% R: j8 }+ X& [6 [" aod
/ T( f( }: }' N! P. |c32asm
& I% H, ?8 O& C" N; R( \6 tloaderpe
4 g! T* |# d# s" N. s4 E# O( N这里我们简单的介绍下,如何重建输入表9 A7 k! ]( j, G+ ]$ y# n

- V; \/ q7 L) \- I首先吧文件拖入od,打开inportrec1.6$ \: F0 u" A/ R4 v/ B( q# A/ D, K7 a
7 ?- k% G+ v: I* a( k
如图 选择拖入od的程序,' L5 B) Y+ f! k

3 P( Y& V* O) n4 h9 e) `8 y9 {& p8 ^+ k
这个时候,我们打开loaderpe,
- r# ^  `7 K6 O1 W2 ?
$ k( m, _" H# @. V4 F拖入我们的木马
0 x; e4 \. r! @
9 o5 _( e$ c0 ]选择目录,. {# P1 @4 F, r6 P: c% D0 S
5 U7 w9 j4 E  X
我们看到导入表这里。。。
) e& y2 y- b! D7 Q8 [+ ~# B8 R4 M# l( d+ x3 o) G2 ]+ c# X9 g' @
如图:
8 U9 ^! y. K6 ~5 y( `  n- n% ^0 X! k
- o$ k8 I- Y; g. x- C3 {9 ?
RVA地址是0001D000  大小是0000154C
$ v  v6 X1 }% j: f% y, |8 J
' X6 N( \4 E  r) f. h0 |好的,我们把这两个输入到import1.6里去
( B( d, R  b( R3 M% B5 v8 q: ~4 f2 H$ d- v
就是在“加载树文件”那上面一点 # {- x: d1 o& o# L  B

7 ~7 Q6 x8 s' Z$ Y5 {( H0 U输入RVA的地址和大小。; c- j+ Q: a3 X0 K8 t3 i8 h
0 R3 C- F$ R) X
点击“获得输入表”
: E* `# E; j/ `  I7 n4 B
" {' V, J5 ~3 p- b1 [- P3 R% F5 ?然后点击“显示无效的”5 r+ O/ \! O( _  `; P

) @, ^" t; n9 [& ]接着importrec会自动列出% w3 w5 s/ Y0 ?* P3 M2 y* o; d
' a+ P3 ~4 @+ F: f7 M( G
我们把深蓝色的字体  右键   剪切无效的指针  n: J$ q* G# I
) |( {( ]% o: X% M2 P$ N$ P
# i) O5 p. _1 j' C
最后,我们点“修理dump”* ]$ l+ @' l- Y8 m7 s

& t! v. V% K5 L9 L$ e' x选中我们的木马就可以了
; h& p4 ^" }4 j9 o; e9 ~
; W9 V$ f1 X; x/ p( _- v最后我们要用到c32asm
+ g# |5 d+ x6 P+ \8 Z$ C# Z& A; j3 s2 L" O( }" E
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。, w. }" ^- i% `5 k
7 e5 W' q: }& g
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
+ ~0 l! ^% ^( A' p
) h7 n% m) b, e9 y这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,# ^3 _$ J- V' x

- C0 c, e: U0 ~) C我们把马子拖入od的以后,打开了importrec1.6$ E& Y/ Z& W* T% d4 v$ B; w

) A# ?3 m1 f: {0 |在选项那里,选择根据序数建造输入表和创建新的IAT. e$ `$ U! ?5 W' }" S( ^1 E
& [% M8 N0 M- i% U4 t3 }5 Z
如图5 i8 I( f, o5 F7 O- M* Z

+ g) G- Q1 N6 y) c3 v
" `0 v5 j% F0 y以后的步骤照上面的方法继续就可以了
4 E- `( _7 Q" p; ]& `# g
: r. S% P, Q+ N% u1 s" U' O. z不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了: _( i, z' k, n

7 N, E* `3 u  Z. i4 W因为kernel32.dll的大小不一样。) F; \; r  ?+ v; {. W$ t5 R! |
1 C: I, d/ r' \4 W* [
3.修改originalfirstthunk3 u. q2 @# q, D8 T7 M
0 A! k1 F/ S+ H. r/ M
如图所示
4 c, }( h$ W* z+ j7 J6 \% X+ @& L' ?" i

6 ^  n4 t3 S; l, A6 I5 `( _9 D我们打开loaderpe,依次点  目录--导入表(后面那个横线), @& b) O, J5 Z# o* y  n$ L

3 V% A0 h" I9 @$ a) ^+ Q! I4 v& \我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll# K, f. M& n( H# e8 M" g

* J, H1 I: ~& r8 P- ~9 N( }* y  W7 w' G我们右键--编辑--把函数后两个00修改为FF# ?& h/ q4 L) C% c* \, j( |6 O

! M( Y1 L+ z& j4 X这样可以过小红伞查杀。  虽然会出现错误提示% S" E% [, F" J, b5 r

" n! O. [! l$ T: {5 b$ X但是不影响木马的功能,不影响上线。  C) f* m, j8 a% G; E- u& M+ B
$ @5 `6 {' P& t& A3 L, s( X
4.dll后面加20 90法过卡巴查杀2 J3 ?  w; z. @! d& t
* \: {- e* u2 |2 F, ^7 _2 Z- x
需要的只是一个c32asm而已,非常简单但却非常有效
) z- P! G/ I5 P! H% w
! A. E  t4 i4 V9 H如图
' U4 ]; S1 h6 r& W3 t& o
- \' N! _3 {3 t0 Z* a+ i- ?9 z2 S0 q+ L& A$ ~1 k
  j, O2 H6 t0 ?' S' T4 W
我们可以看到,
# \, n7 z6 m0 l
# X( g- |  {. ~1 G- P4 j在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
5 S, @8 i& j* x( a
1 M3 |4 S* M( i2 ?这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
0 J! J. u3 n( @+ v$ Q7 z! Q7 N1 J1 g2 S% z1 \- [! r9 ]% C* {
我们只需要在他的所属dll后面加个20 90就可以了
) T# V6 E- f/ ]8 H9 F
, I+ W" j( ]6 R9 `8 T5 p卡巴目前还不查杀此免杀方法
1 _5 {# a/ R! K" [# ]6 F: G. I5 a( E3 p

' ^/ T0 i; n3 Y6 ]; f' P4 l唧唧歪歪这么多,打字有点累了& n, c  m3 w% j8 u

+ B7 n4 W: x. N6 {  C以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。7 }- J6 Z8 c: K

) X0 e- g( n  v0 T6 K/ p[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]




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