返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,
, }' Q7 h" ~/ ?( D
5 R0 Y% A$ x( h* \特拿来分享给大家。
' _" y5 [3 n' ?4 ?8 D
. C& v1 |4 l# k" S今天我们不提我们国产的那些杀软,真的垃圾的要死,
: g/ d. m' B  _* h/ f8 s: Y  f+ Y0 ^3 s  b- G
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表7 O; i. E# w% @( _0 @, z

7 }! k- [" P7 }4 ]( k! c我简单的重建了输入表就把瑞星搞定了,
: `/ y2 J! t) n' n8 P0 O' r3 g0 C7 m
7 P( w$ w. P2 V  A4 _+ L失去信心了。我曰
; m! E9 D/ k$ I( j3 M
: ?5 b1 L8 T* ~8 W, s今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。0 V9 I3 \5 V/ c& }4 K
* Q2 l/ O# J9 I: e; h) z9 p
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。7 @+ h: z( M0 E: B, n( M( c2 E% Y

3 |3 D" d- [3 a$ v- @7 {! [5 W外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
/ \- j4 U" Q- o; H0 A! Q3 _
/ x  u" _( f" S+ _: m3 U! _) k高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
& ~4 |4 y2 q+ X6 o) o2 a0 B1 o3 @1 x) X% v; v# p1 h% M; W1 }) R
过了以后再调到最高,再做免杀。
7 P0 I. o; u. q: V& c* j1 o' H" j" [
以上是废话,
! @9 W  m) s# V, A4 W- ~7 a8 H9 r! j3 _# x3 d6 N& G6 P
好了,下面我们来说下常见的免杀输入表方法。3 l& `4 n) x9 g- Z1 x

: A: [0 T2 B$ g2 o$ d. c一。移位法; c& x: D. g9 P; F2 `, Q* \; X/ {' z

# Q; j4 b" c7 [这个已经过时了,我们的国产杀软及时的跟上了时代,. H' x. n( P+ z
- f; c. Q# I. |% F
移位法在去年过金山和瑞星,还有江民都是可以过的,
' V3 ]* K3 R3 J7 L! t4 t# p7 P0 c. c3 P- L0 P, F' y8 ^! k0 r
现在的杀软智能化了,移位么?呵呵 ,追杀你。
# B1 [! K1 W1 `. D! i  i) U, ~( ~4 `) I
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。9 ~" ^7 V0 g7 d- d& h$ C: b
2 ?! ]# P* a' B6 c& o; ]  E  J
二,重建输入表
- F- Z) ?% `; W: E1 V/ \5 ~$ P0 _, z/ a( ~9 j
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈1 p% D  G! t( N& c
7 g  x) z1 H8 ]2 P
这里我介绍下,
6 O0 x6 e9 }. }0 Q% X8 @- S( y8 j8 i8 z+ P# J: H9 E5 S
用到工具:
+ Q1 o, v, i0 q3 H3 h2 kimportrec1.6
8 H0 ]8 z2 Q+ K2 Yod$ {0 J2 h9 }6 z
c32asm
1 I: \$ X4 t3 f& V+ Kloaderpe$ y/ g, t9 C% d" h" O
这里我们简单的介绍下,如何重建输入表
9 Z( `$ W: Y% q+ [* e% C" x. `
% g$ `9 R% I8 }, k首先吧文件拖入od,打开inportrec1.6) r6 m$ D& M9 X2 Y7 n! D) k" ^
! u8 y8 y( k9 g
如图 选择拖入od的程序,
) q9 ~: N+ g$ y( j* ?* u$ v" i; F$ N
; n7 X( q$ r; c; ?
这个时候,我们打开loaderpe,
+ U: i: M9 B$ V  D3 N
0 q6 k0 V1 z7 L/ Z8 \4 W1 u拖入我们的木马( P3 N; T* T$ L" I$ ~$ B+ P+ ^5 W
: W" @. N' o, @& g5 K8 J
选择目录,' S# e  Z# {  U4 V, s, `! k: P  c+ C
5 k, u3 q( v$ m1 t( Q
我们看到导入表这里。。。) T, F' ^4 ?" v3 `

6 \6 J+ F6 d, V. ~$ ?如图:2 X  s4 W! I3 C! r4 h
, Z( H, ]) ^; Z, p9 l8 x0 D9 f$ ]

* ?* W) t1 i* Y3 ]# c; rRVA地址是0001D000  大小是0000154C1 X9 O# j2 h; k! u: N% N# T! h
5 K6 E8 }1 o" [& j0 i2 e% \
好的,我们把这两个输入到import1.6里去: h; z8 p" Y( u; g2 S6 V  z1 ^

' L& k& T1 S! x% H' m就是在“加载树文件”那上面一点
  I2 q) m$ R  z9 `) m) c* K9 ^  {  q6 E; C, W
输入RVA的地址和大小。, z. O' f; m# ?; ]9 [7 _
9 a1 X2 s% c% h4 I8 F
点击“获得输入表”
' P3 ~0 D+ d, Q; z0 L+ o- \4 a3 n$ c& u
然后点击“显示无效的”
! M% c+ d; s. g& r3 ~# ]- p( `
! u2 D' S+ F1 d+ ?# X: o; ~接着importrec会自动列出" P6 I' o9 `9 J/ Q5 w

6 g- Y0 X% \; ?% x& l: g/ ]: o& y我们把深蓝色的字体  右键   剪切无效的指针
) C! ?9 T0 @  V8 `0 q* B
6 @' j( B- \0 ?4 ~0 G4 D8 y- w" v2 d
) D6 @& l) O, k' z! O最后,我们点“修理dump”# @! w( ?  _* \
, e$ B4 c: j* I5 O5 F
选中我们的木马就可以了
) K  @5 a& b% e- S% y0 e$ q; m: K8 S6 {9 e- H
最后我们要用到c32asm
) i( h9 S% }8 V6 D- r" V% y! N2 V
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。" }- R& I- L3 M( r" Z, ]0 ?7 ]
; v' V" n; m; O
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)6 e; F: N2 q5 C/ v4 w: q
  B( J# N2 v& ]4 |8 z
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,+ ?: i! Z2 D1 Z' p% q: c
& i" x+ ?& T0 X, l0 Q, e: P2 K' P
我们把马子拖入od的以后,打开了importrec1.6- Z9 W3 O6 s( y5 S# A2 b, ^% [4 R
' h: g6 I& s1 S6 B- h0 @
在选项那里,选择根据序数建造输入表和创建新的IAT
/ I8 B; x; ~9 z; G  |
5 j9 h8 \6 |% k如图
4 N& }( u; Q, o6 a! E* `9 J5 b, a! {7 q! w& t  b8 j7 a  S

# Z% A4 s( d  A# U以后的步骤照上面的方法继续就可以了
; E! @3 ]  J+ H  F
5 H; t" r$ [) W  t! `& X* ^* n6 f不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了" H: M6 q& y' v+ ~/ d

/ T( o! t0 H5 g2 G$ M因为kernel32.dll的大小不一样。' S& y/ v2 g0 T) m

. E! T3 t# ~3 O- w/ E3.修改originalfirstthunk
2 h* k, f3 d' B% |. N  H# `" s% k! x
如图所示& A0 p  H/ {8 W" Y1 c
# c+ d5 S: x: N
2 @! x" N# K: G3 T
我们打开loaderpe,依次点  目录--导入表(后面那个横线)- ~/ J+ K/ x4 d3 Y5 C3 j% h( A

- Z3 c% t* s( r0 m- z. K3 F( k我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
7 V% }% h- n( D/ Q2 W
1 [9 c/ F  x7 O8 J我们右键--编辑--把函数后两个00修改为FF
5 u; p  o4 i' _. K
* w, y( D" T. o7 d% k: |/ s9 n; s4 {这样可以过小红伞查杀。  虽然会出现错误提示- N3 c- H' i& o) }% V! B' M' `
3 n# N: G& `+ _, N' b* {4 d) w
但是不影响木马的功能,不影响上线。& ~& m# f" Q) w7 \$ V
# v$ F- S# F) _' x; d5 p! u9 v
4.dll后面加20 90法过卡巴查杀: S  G& i8 k6 [
) T: h) M) C5 g/ t; J  Y; g! L6 n
需要的只是一个c32asm而已,非常简单但却非常有效, N( s! l. e  J  O) A+ r
2 o/ v/ V3 O& }/ {! Q6 G+ H
如图
* d; y$ x4 D! b8 P0 P4 b$ Z8 w& a9 b- [# z0 g, S2 N4 W

1 s4 C1 Z- q- p% f9 U9 \8 \* u7 S" ^1 G, Q9 H# Y9 a  F
我们可以看到,. X% F: y( i. o* P
2 U  |( d- z; D3 j+ y* S5 s0 D
在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
. r) B& k- I% [! O3 @8 o; r6 [9 ^5 J
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
. |8 L/ V2 _' g8 l* V/ c3 T. v. S* _2 Z( \0 d  y
我们只需要在他的所属dll后面加个20 90就可以了
1 l2 F  f+ g& W( ~/ [+ U
0 W% r) O5 h" r5 t卡巴目前还不查杀此免杀方法0 S/ g# Z; q" r$ l  B- Z' V

+ j, }0 }- Q/ C' @; \( a3 W2 m$ P% |; o* h% E
唧唧歪歪这么多,打字有点累了
, W$ _( X$ ~/ h- ~' G- }* t. s/ \
3 w8 O- _/ b6 N2 ^1 H- m以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
% X0 B; R; Y$ ~+ _
4 e: l# @7 z, D6 o9 ~2 x; w/ b[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表