标题:
[原创文章]
木马免杀之免杀输入表篇
[打印本页]
作者:
1335csy
时间:
2009-3-31 11:30
标题:
木马免杀之免杀输入表篇
最近和一位木马免杀牛人交流,感觉新增进不少,
+ t: \6 C8 t; |) P' H, G
' F# ~7 y! f' ]$ W3 P9 t
特拿来分享给大家。
6 X4 c4 i+ g5 j/ R, S$ ]2 v
- _8 h* h6 t/ J$ H7 K
今天我们不提我们国产的那些杀软,真的垃圾的要死,
. N/ ^8 u: H) J9 v7 l6 D1 N
( H4 m) ~* e- j8 S4 ~7 E( g9 k& r
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
3 n% k$ u$ T- S* P0 t' T& G
) h3 n' X/ ]! @" N
我简单的重建了输入表就把瑞星搞定了,
. i+ x: |) j8 b- Z. o+ y t
% I& }5 T# M+ P
失去信心了。我曰
* o4 E: E9 G* `) G
# a' a% C2 V2 [; Y
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
# E$ M- X" E5 n5 o1 ]1 T
' f8 l- D4 ^, V. y' S
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
1 d( ?. u* m3 M" j/ g' ]
' H5 y0 w1 N5 T N) h: V
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
, k0 k1 q6 V& b* D: v' X1 s; q$ M$ ^
. E3 U( J) f6 R/ V, ?& M9 O
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
8 O9 i/ B: O9 J( N8 o( c
9 V/ C+ w F b$ b
过了以后再调到最高,再做免杀。
{+ w+ x: [, I6 B/ v h
& g. _- \: }" n9 C ^
以上是废话,
3 E2 `2 H4 t: d/ I8 E
4 t. i! c$ n% V5 w% c) N' k4 ^+ k* O
好了,下面我们来说下常见的免杀输入表方法。
* g( H$ u5 B7 x2 }( q9 ?: ]
7 \; l0 T' G0 r+ D% m9 \
一。移位法
: l; f# _: ?8 @' p
! d& Y& p0 D+ l9 c/ C( { k( M
这个已经过时了,我们的国产杀软及时的跟上了时代,
/ g/ C% k0 c6 `: `: n" j9 f
9 N9 \8 c" A$ i+ u& K
移位法在去年过金山和瑞星,还有江民都是可以过的,
( ]" i" S% S$ A; S9 B! F
$ w( B; u6 K7 O& V
现在的杀软智能化了,移位么?呵呵 ,追杀你。
2 M7 H& s8 C% ]/ ^
! S( o! A: k$ f8 G) C, @4 h: n
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
3 o& t+ G8 t4 C* z
& L$ o8 f+ `" J) `
二,重建输入表
! m G( [- u2 _1 k) S2 M
4 `% h' a& L3 X3 `
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
, U# j& l( y; Q0 T: w
o, L G6 ]( [+ Q7 v: P+ q
这里我介绍下,
4 l; V) a$ R+ N( v* C, c
. k N4 J r/ p9 G' C. M
用到工具:
. ?2 t9 l! ?& {" y- N: [' g
importrec1.6
( L6 u/ D# d0 d- V/ N6 d$ F
od
& A' [$ _3 N$ r9 ?/ M' y e
c32asm
6 Y% W* U1 ]) L" }0 [& J7 a3 U
loaderpe
% E, q0 y y4 H+ E. F! i7 t, Y
这里我们简单的介绍下,如何重建输入表
# A- |! \0 a+ Q6 I; A$ q
' L" t& F- y+ @! j
首先吧文件拖入od,打开inportrec1.6
8 a |) q, D5 ?. M% \( _6 n
. D0 y; N, V# Z
如图 选择拖入od的程序,
' ?8 h3 V5 y) _6 m7 f! ^
$ B; N- M; p$ _) f
* z" f. h4 l" \; g* F1 j: d
这个时候,我们打开loaderpe,
6 c$ L e) a" O: _/ \. G
- E' a' `! I6 |- u; W
拖入我们的木马
6 R' Q4 _2 z; g5 T6 e& k
) k$ ?+ |0 y8 z1 \8 Y
选择目录,
' j% w, a# W0 U6 D' X, a; N: r
8 t) U( T( N- X* I# c: X- W
我们看到导入表这里。。。
' v: H) n) e5 ^' R+ S& Z" h
2 o3 t7 e3 O3 X% Q& \* A( ]
如图:
1 W4 @6 G3 n( Z: J, n4 e2 d* b- y
: W. ~, r/ ~+ Y7 ^
& A3 s8 K a* ]$ {3 ]' ~
RVA地址是0001D000 大小是0000154C
$ F0 h7 @. U& `% g
* N0 x$ z8 @* i- r
好的,我们把这两个输入到import1.6里去
2 u. \: n) U, }# v
8 a N& y2 z: A$ `' ^
就是在“加载树文件”那上面一点
4 v& t8 ~& |, J0 m3 N- z
, C$ N' l' {2 g: c& U% m7 X
输入RVA的地址和大小。
. [; u: p) x& v! |( y
5 s7 x9 |+ u# t: h% w: {8 X
点击“获得输入表”
! A1 u" g! i4 U9 a9 D; x
; [% F8 l" U' S. q; D3 G9 q$ w
然后点击“显示无效的”
2 c! L. {! e7 A0 \% U5 ?1 c. ^2 K6 s
1 y; S- |8 p# D5 `3 g5 B, [
接着importrec会自动列出
9 I9 {% P% Y- X# W) C
4 v# w5 d+ p/ Z( I8 r" w0 r; e0 _
我们把深蓝色的字体 右键 剪切无效的指针
8 s$ I( g( P- `' l0 f! R
9 f! h6 H: l+ Z
) a2 s3 f$ P) i0 Y
最后,我们点“修理dump”
/ Y6 Q0 k' }& l
4 A% P+ }0 @$ j9 @! u# n7 n
选中我们的木马就可以了
D7 a( D$ z7 N0 k$ ?% e N
. f9 ^# T( w4 {+ q) L# O; `/ [
最后我们要用到c32asm
0 v* F" y) \" l+ E( m& ^) A; I
3 _1 A" G0 i q z7 b1 w
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
: N2 F( t ^! e( `# g: T
5 T* G$ c6 j! H0 B \8 T% Y) I
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
0 s4 l3 Q+ S( C( \+ U4 J: q1 Z
& s/ @ G) i. j3 U4 n7 M
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
7 [1 K1 g: _" f! C, D7 _
" R- o9 y8 l0 f0 i
我们把马子拖入od的以后,打开了importrec1.6
+ ?! |9 Q( y1 ~: }/ U/ X: x
0 _" ]* O; Y' c
在选项那里,选择根据序数建造输入表和创建新的IAT
( B: U3 K. \; x" g) T7 O
, H6 e2 n: D" M' q! j: r
如图
5 F& K" ^+ F+ h( m' M
; Y: I! V3 u J8 V
; Z" _* `7 W2 G% M! \+ H( R+ @2 `% b
以后的步骤照上面的方法继续就可以了
/ q: Z- a; E1 w7 ?4 V
# b/ y4 {8 X. H5 a" \1 t
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
( [0 ^3 w& r! O1 @
/ h; l- _( q- o* G+ l( V7 q: U
因为kernel32.dll的大小不一样。
r- n- z% }! w1 m
% X7 e: W# b! t
3.修改originalfirstthunk
& K9 b4 X h, J% w. m" v
6 W) k4 m: i0 c4 u% n% p8 h; ~
如图所示
* k4 v' {) I. M7 B
. F6 F" |5 i7 P! y: u: n
; i; S: \0 {7 W: b7 P
我们打开loaderpe,依次点 目录--导入表(后面那个横线)
: B: I( o% N* g# u) k' _
3 Y1 r4 u* t/ ^! e0 \8 V
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
1 f8 k+ }" s3 G, f$ h
; v6 I" i( f! ]: O v* ~
我们右键--编辑--把函数后两个00修改为FF
) t6 R- }* ]+ ^9 u! e4 G
) s! Y5 G( p: `# Q
这样可以过小红伞查杀。 虽然会出现错误提示
3 h, P6 S3 q$ z* V* f& J8 p; j
7 l# m" l9 S. u% {0 T
但是不影响木马的功能,不影响上线。
g& @- j& d& y9 v9 L* h8 s$ L
0 |$ C2 L7 Q; a
4.dll后面加20 90法过卡巴查杀
% \. ]3 l) Z. L. s( g) E
8 A: X/ s5 Y! W( F
需要的只是一个c32asm而已,非常简单但却非常有效
, |+ G1 x$ J* }) H1 T
3 `0 r' p, f7 q/ f' O
如图
/ H, L2 o% e, D6 n& ~, e! N
3 T7 K2 w6 t: f/ F3 [: q
. W9 c. a( E, t- U8 `& H
/ p0 D) A/ D# A7 U/ k% c* K
我们可以看到,
% {3 u; s( e8 w- N+ s
* p: g2 V- R$ r
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90
, M) E5 r) w/ x6 G* f9 g+ |) |
( \' a: J5 l6 z) T) w
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
% M! \8 A- M; m
3 _8 ^: b( S: i* H" i$ Q& a1 f. Z
我们只需要在他的所属dll后面加个20 90就可以了
: c2 }* I% Y5 {" d: m; ^ ]! w" s
7 q- S- P6 T9 T, d4 w6 v+ v
卡巴目前还不查杀此免杀方法
3 U: s4 U# c& ` ?: [# Y
' {6 A, I! q& J
( C' c9 j! c3 N$ }% t* U6 A; L4 ^
唧唧歪歪这么多,打字有点累了
# q( n5 E# R8 |3 K6 F
7 y+ X+ B% H: \5 N$ ]
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
; _$ P- P/ {/ J+ M
* z" {) d7 U" P( n8 n
[
本帖最后由 1335csy 于 2009-3-31 11:35 编辑
]
欢迎光临 【3.A.S.T】网络安全爱好者 (http://www.3ast.com/)
Powered by Discuz! 7.2