返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,
2 s+ j/ t* O0 c  ~5 o
' ?4 x$ B3 n5 ]/ q$ ^! N特拿来分享给大家。( y! }5 o, {+ ]( A' {

, V# k+ y' @: o0 `/ b今天我们不提我们国产的那些杀软,真的垃圾的要死,
3 s  v, \6 q" |" V1 A6 @+ h% Q+ R* U3 r  Y7 V0 \
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表6 O  V# p: ~% G3 ~1 e) r) e

% F% g) P9 V' e2 ]  A, {$ |我简单的重建了输入表就把瑞星搞定了,
; b0 b; C! M6 G! X
/ C9 j# D: `# @5 P3 h/ B% a- [失去信心了。我曰
4 D$ c- b7 F7 \" ~% \6 d9 e& j7 M* Q4 e- D) u" R0 \
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。& {0 H; p/ r: V' ~5 K# y& f- q$ j

, P7 G2 A2 b/ ?$ y* J9 l2 v首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
! R; h4 f: P$ z) A( ]# ~$ C( g" |8 P6 L( j
; Y8 f& i' N: Z7 H. B外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。1 U* }7 W) x: ?" N, C* p4 @  T
2 i, Z/ a4 E" u" Q, f' h
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
& L9 D2 B; }% ~3 L1 a+ W/ U8 L& h6 o* q4 C- [  z
过了以后再调到最高,再做免杀。
6 i0 W( b( s# F1 p! C- H( G
+ {2 M- H+ a9 h# p以上是废话,4 h# x% ~' k  a) Y. T: L$ m  ^  n
& B# g2 m$ \5 d
好了,下面我们来说下常见的免杀输入表方法。
; _3 ?  o, W, C2 p
" m- v8 {/ O: i' n一。移位法+ k( _. L* w- }5 Y5 a/ j4 A% Z

$ y  V3 a; S. d, ~这个已经过时了,我们的国产杀软及时的跟上了时代,
0 {. `" w$ B2 J! t. r( u
3 T. n' [! z" [# R1 B移位法在去年过金山和瑞星,还有江民都是可以过的,1 |: ]2 |8 V1 C* z- s0 @

! o" U* ^+ P1 n# a现在的杀软智能化了,移位么?呵呵 ,追杀你。
/ Y3 S1 C4 K2 @. A) K+ y+ [: L( Q: d" G
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。2 C/ w: q. Y' w9 i/ J
) r% Q+ ^4 a. ?: B
二,重建输入表& U$ j* U* U6 L" e( W

3 o  B( J3 ~5 B效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈8 H; p5 v. w! N
8 L' I' O. ^' w# z
这里我介绍下,  P0 u" q: X! r0 N/ E# g
: E2 b- r: d  K, Q2 c
用到工具:1 b% H! |* o: S' b
importrec1.6
7 J" Z4 K7 G0 |od
7 b9 M2 F$ ~; f: ?" i, e, tc32asm' h2 r* h$ o% T2 i; P
loaderpe- N0 t; _  n5 I+ d7 E$ z) j3 F- o
这里我们简单的介绍下,如何重建输入表, G6 s2 [6 V& m& y# t5 [% N& o

9 u% [6 `; W6 ?5 J2 q6 m首先吧文件拖入od,打开inportrec1.6+ A- N! u( n) o, x' u* w' s

+ s9 M# k- h0 g: h1 @5 Z% ]0 c如图 选择拖入od的程序,
0 L) B" Q5 [$ X  w, h* V' d
8 N6 W1 Z" j  G! f: i6 c% m$ ]8 o
# i/ x4 f0 w8 w; Q2 F9 m1 m这个时候,我们打开loaderpe,' V/ c* u" {2 v) ?; f* r
) e! U/ P7 E; p
拖入我们的木马
5 _* s# V: W; F$ n' D7 @/ r
" C: k5 H( `3 c( ?/ M( D选择目录,9 s8 Q6 L0 e; c  r

! |3 U5 |+ M: \* T我们看到导入表这里。。。9 S- K9 B5 C1 P6 G1 G3 b' ?

- h8 r. q. k, P+ V6 i- l如图:
; I$ n1 n$ v2 [6 ^" x/ N/ X8 Z
% q0 h. {$ e+ h0 t: L$ J& o$ N) F! _  ~5 `
RVA地址是0001D000  大小是0000154C4 Y8 N6 C/ J+ f# i+ l$ j+ a% V2 c  b

+ C9 S+ {8 Q, k+ y! c好的,我们把这两个输入到import1.6里去! Q3 J+ x/ }+ W3 X; V
( t* ^+ v9 R) @0 a) O# E% W
就是在“加载树文件”那上面一点 4 L4 O2 Q. t: Z1 i+ t( F/ y
. S+ b0 e; d! [! a: Q% A$ E- f
输入RVA的地址和大小。
9 v9 K, n+ F  S
3 ~+ C$ _4 c% {( t; h$ A点击“获得输入表”* a& T5 A, c  X0 [! @7 ?

3 q9 V, C' ~8 g) G( H然后点击“显示无效的”
6 _& T% P' s3 P0 ]$ I2 J" x
4 E/ D( C$ A9 s- d1 R  c接着importrec会自动列出/ k1 v% W- h# `# q7 r4 u& W5 w
! e# p& e0 P9 p( z# g# F; |
我们把深蓝色的字体  右键   剪切无效的指针. }* q% q3 n6 \4 [4 z* s/ Y

5 c; }$ q, U/ X* J  J) i, `7 T- N/ k: R, j5 x7 j
最后,我们点“修理dump”/ ?1 q$ d: |  z! ^0 G. X

5 V  I2 C! @1 h: a. O% J6 J选中我们的木马就可以了
- a% U  V) D# [* I" I) F$ W1 R/ c3 C  K& E& H& N! _
最后我们要用到c32asm, v2 ~6 M' u& a+ Q
' M7 h! z; K7 J/ z/ u
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。* D: D1 O+ B; ?6 {

; x; n$ v% o/ V: X这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
+ C4 {, L6 `% }) q, B
" ~, _9 l6 v: R这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,- |; F3 {5 O6 E. n4 W* X8 K

5 V3 V' P" D) J% h. G我们把马子拖入od的以后,打开了importrec1.6
& _2 P: I+ b& \6 Y% w# H! r8 ?3 q9 l" ^
在选项那里,选择根据序数建造输入表和创建新的IAT
5 z6 y" j. s. n+ R1 U! w0 g3 s! F; D0 i2 |2 G4 F
如图7 F7 x2 N9 D/ L$ J8 |0 ?* K8 S" {) o5 f

/ a/ J' H* h- d. o. D! D% G! y  H2 ^0 P  p
以后的步骤照上面的方法继续就可以了
3 J6 F% k1 Q) m1 M! X- H, x( X' R8 U
1 k; P6 g" z% s7 I, b( v) q- g不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了9 `9 |% y" `& s9 y) J/ z- x

! U$ M2 j2 ~7 I  B9 Q% G因为kernel32.dll的大小不一样。8 ~' s5 C/ [4 j- e* W0 R
- N/ |1 |/ F- `7 Z: r
3.修改originalfirstthunk
( @  X: J. W" V. P( H1 o4 c6 N. o2 `- ~: a5 k4 o! t4 Z& `
如图所示& E' [6 f- v: b7 m+ I3 g
# E* g1 A2 B: [2 c* M

5 C2 ^4 [2 b) @5 A, R: p我们打开loaderpe,依次点  目录--导入表(后面那个横线)
; `) J+ h0 \& @- l9 k& X3 Y
1 Q/ r9 f  j3 v5 F+ _我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
; k+ K! y$ r9 Y$ c+ e/ v, {' b) F, E, N
我们右键--编辑--把函数后两个00修改为FF3 u$ H7 u# i% d6 ?
. v4 ~( S( F$ K, H
这样可以过小红伞查杀。  虽然会出现错误提示& Y3 \% \& i4 K' r1 i: ]

$ {: U; Z0 o. e; h! \但是不影响木马的功能,不影响上线。9 C) v) A$ Y2 y
* k2 n* r% I( w, K! _, d
4.dll后面加20 90法过卡巴查杀5 K3 i8 c  }; J0 e. w' b' {# e
+ P3 c* S7 h) ?# x
需要的只是一个c32asm而已,非常简单但却非常有效
# |7 A2 J1 ^- w4 V
2 j5 z1 M8 r# T如图& D, B2 z! v5 u6 g+ L+ L) {

4 e. a# n: E' C9 y' Y: G0 v
& f) p2 u0 H/ ~8 ?( O* R5 ]: _5 \" w+ G/ v1 q8 ]
我们可以看到,
0 g) M. Y/ B& o2 S# _5 `; Y9 Y
% Y5 D& E! H) G% }在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90  N. |" y+ @- H- t# l! ^6 P

, ^' ]& ^7 H, U8 @& R这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
: C% a% R/ [5 P# G5 l1 M
( A- p$ W5 {6 w我们只需要在他的所属dll后面加个20 90就可以了  n% ^5 J4 q8 N( s3 p

4 U+ ?! Q; b" X# Z; X卡巴目前还不查杀此免杀方法
& c; G8 Y6 }  Z4 }* \/ n' @% O" J4 Y8 {9 n7 w
$ s+ R' j4 a4 w$ U% L, A
唧唧歪歪这么多,打字有点累了, D: }* c2 U% z7 ~3 _7 p; V
( n9 x2 E2 Q$ L% F, z5 [
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。) _* p2 ~; V' p! T. C7 W1 z

* s  C, t0 J4 ^# ^[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表