标题:
[原创文章]
木马免杀之免杀输入表篇
[打印本页]
作者:
1335csy
时间:
2009-3-31 11:30
标题:
木马免杀之免杀输入表篇
最近和一位木马免杀牛人交流,感觉新增进不少,
9 O! A/ b1 g& J" h/ I: [; l& s4 K
' A9 s- ^$ [, j0 O9 }4 |9 J
特拿来分享给大家。
' J- S2 m" u( G4 v9 S& ]+ E/ ?
2 N7 b+ B0 n: ]6 A) y) b( F
今天我们不提我们国产的那些杀软,真的垃圾的要死,
6 k: L2 A. N3 Y# }$ I! f1 \; I! f
7 l d# j" u3 o# h1 d: y
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
n' ?4 ^: p. T8 R, S
, U; Z, {2 I8 W, @6 T( U0 [: L
我简单的重建了输入表就把瑞星搞定了,
* u4 Y/ t. `9 T2 v+ l o7 n
+ p1 r6 \4 }% ~- O6 ?1 P% _* m
失去信心了。我曰
- s5 |9 X) m1 f' V9 Q' ?7 f8 n- @
' @1 h6 P: t+ w6 |0 S/ ~
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
`/ o5 A- d* k. o
0 f6 S- K* u: T7 y
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
/ e6 N* h# }2 o! q. R
5 l8 p- W- V0 i- \
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
- I! L' H% y4 |8 H) ~0 b
?' d6 x& i7 f( D
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
1 R( A& }& O# N/ `0 j$ V
. K/ i' F8 _! F- }6 S# |6 \
过了以后再调到最高,再做免杀。
0 X- k$ `. {+ C: A$ D Q8 B
! l! }2 K2 o; U3 \
以上是废话,
# d0 X4 N H' t4 ~/ t o, B
5 A# i, Z, x& P/ [
好了,下面我们来说下常见的免杀输入表方法。
4 w* [. N7 S1 u7 O$ h
7 E& o' d- U' c2 I+ e* b# f: J& l
一。移位法
! Z4 {+ Y/ v0 I w6 f+ f
( T1 X" X+ W! D. B% S* a d" T
这个已经过时了,我们的国产杀软及时的跟上了时代,
0 r* f4 a3 W! a/ P/ E
4 b: a$ E, n! v- f6 ?4 H; j4 s$ ]
移位法在去年过金山和瑞星,还有江民都是可以过的,
8 i% Y$ h& b" H3 c* d; t% |# E8 u
) D, m# g \9 `. ~, E% K. b1 N4 ]1 K# H
现在的杀软智能化了,移位么?呵呵 ,追杀你。
8 i) e5 c: v' E3 L) m1 W1 ~: _
( t4 |9 e2 N: H3 K; B1 U. V6 v
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
! b- }/ b+ A4 w' [; t
' |' F8 N" r6 ^ u8 `
二,重建输入表
+ N. C) l" I4 s
4 e% a# u, Y# ^- m, E" r% i ~) a" V/ c
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
, K+ Y: B( L7 t0 u9 L5 q' s1 ?9 n
* J9 T7 U8 D* C# \3 E N. E" h5 G& P
这里我介绍下,
" B0 ?5 T' l+ ] q. v5 [
" Z! i" _" U) f& w8 i
用到工具:
- F# o" M6 r- k" q6 w
importrec1.6
% Q7 h6 P2 w; r+ l
od
2 l _4 d9 \( M
c32asm
7 h: G2 f" i: F" F( O j" O' B) s
loaderpe
- J8 U& G/ G* \# l# z" J
这里我们简单的介绍下,如何重建输入表
4 }) s* q$ _0 r: Q+ P, |0 S
5 _4 I" _. E% y' ~1 o3 s
首先吧文件拖入od,打开inportrec1.6
1 ], O. o1 z8 Q( V/ z* a
. }9 p2 A- H7 y, M6 r) s
如图 选择拖入od的程序,
5 R& P% q# J* T3 T* [ Y! j& ]
7 P: W8 A8 ^4 L. @5 L) G
y; D% D) f1 c( i' q7 |
这个时候,我们打开loaderpe,
& `9 F r! B& n& \
( l7 H/ X8 y, d9 h0 i
拖入我们的木马
# ]. Q: e% Q3 E* @7 _+ I0 C ^1 f b
3 @' I$ Y& x% e* T
选择目录,
8 N6 _ q$ Z# f) s% I/ a
B" ^1 e9 r2 F% [: R/ g9 n
我们看到导入表这里。。。
/ m8 s* W w* r4 ]
: y3 ~+ e4 h3 X% F7 `8 [
如图:
) J2 L. _* R0 J3 H! A+ p' \
2 U b4 B. F* i' O' M$ _! ^$ i( W4 ]
' x! Q$ m* w# O% V3 F; E- _
RVA地址是0001D000 大小是0000154C
/ c2 }6 c X+ p) K
1 Z( r5 _ z" K/ V4 A0 t" ]
好的,我们把这两个输入到import1.6里去
& L- K5 c6 N2 y5 V0 `/ m
1 `+ O5 V4 k$ c/ a* U i( a
就是在“加载树文件”那上面一点
9 e- J" Z$ x! d# J
9 R5 R0 V' N5 H* e( U& ]& u0 O
输入RVA的地址和大小。
1 i5 f1 |9 A; r9 d
8 F& {6 J7 r6 r
点击“获得输入表”
. [% B/ z; o5 H I7 `( Y% Z
4 K5 s4 R) ^% H ]4 O8 V2 R, f5 E
然后点击“显示无效的”
. ?/ u) z4 L4 T S
+ C: D! ?3 C$ h! r
接着importrec会自动列出
* v) L: N/ U0 M$ ]; P L6 u; R3 ?
8 S" D2 ?7 b" q) ?8 f' @, x) N
我们把深蓝色的字体 右键 剪切无效的指针
8 ~8 I( ]% @- a# y8 H
) u/ |8 k6 P! f* _: j
# N. L: \8 U+ I- g# _( c( n: m
最后,我们点“修理dump”
1 Q6 c, D* B$ b3 J' B
: u$ V! a+ T, ]- ]& b
选中我们的木马就可以了
3 d0 _/ \+ d4 Y7 _
" ]+ o+ v- m6 m$ N( e# Z
最后我们要用到c32asm
8 C$ o/ M1 g, O6 Q7 |. _
1 t' g& t5 @2 V1 t% H! u p
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
7 n- q9 k! z, l4 E5 I( n
% k0 @: x$ C' O
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
9 k+ T) w3 i+ P) U: [% p
& m1 O$ k) N& q4 k, F
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
6 V' y7 Q+ r2 d: Y
8 A, L9 L; Y. D" [
我们把马子拖入od的以后,打开了importrec1.6
7 q* c- E# S0 u' K% ^
! Y p& f2 e6 k* @9 P6 G+ U& x
在选项那里,选择根据序数建造输入表和创建新的IAT
. U8 f8 w* I& h' q- C5 L3 c* y
$ z1 I6 s7 t) D# G( |8 G- t
如图
: F2 q2 ~* ^$ h- M! f1 d
. e# f5 j0 [" J
4 g* L+ [- L3 e/ k
以后的步骤照上面的方法继续就可以了
( t" s' @; T- N) N+ l9 e' c
5 X6 @! ?) ^( X% \, \( {
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
9 A. s' K" k) S4 R+ J: u: }! s
2 g" l) K6 E+ d/ w
因为kernel32.dll的大小不一样。
X* o! q& A) P7 @- v
( ]3 V1 u& M7 P% |# q7 a
3.修改originalfirstthunk
; ~, T: w/ N p
4 @3 C8 M, N# x5 X2 {$ d. Z7 Z) f
如图所示
* v% L+ e; W( l9 f0 z8 y6 Q# ]5 a
6 }6 ~' S- D5 G/ _; p
" T/ g2 ~4 G& Y" ]" U3 s6 ~
我们打开loaderpe,依次点 目录--导入表(后面那个横线)
! b- \/ T" ~3 L2 a
# A# x* l, n1 z$ f
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
" f& e! W) A1 G8 V7 [2 j. |
/ C; p* \# [; Q8 h/ ?
我们右键--编辑--把函数后两个00修改为FF
5 m' ~# s* h* D P# |) G
- `" u8 E+ n/ |0 ]5 S; j* p; l
这样可以过小红伞查杀。 虽然会出现错误提示
- T0 R: ~# x2 v8 L. c: L
; `; C6 j- \4 j/ d# Z
但是不影响木马的功能,不影响上线。
( {* r- t; L1 H6 N
6 j6 T2 M# t# d1 ?4 Q( `
4.dll后面加20 90法过卡巴查杀
+ m" E( L5 I ~4 {+ {. h
6 O4 l% C+ b/ j O, w7 c5 [. B0 Y
需要的只是一个c32asm而已,非常简单但却非常有效
$ M) s' V8 W$ @( E' T
/ d4 r T% p% Y4 q1 Z$ A
如图
8 C! m1 _5 i/ D# U& R$ j# A
9 c1 }4 O3 z( W4 k$ {& x ~5 `7 u
3 r2 L; {; F/ B; F5 T6 h5 Z" \
& R" j! ] r' g" L( [
我们可以看到,
; x) T" f. ?# \" w$ w, `) \( k
. d5 s0 G& K# S6 ~4 }
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90
5 e& N% X% X$ l
6 N5 x8 N8 ?5 g
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
' K6 h4 g; W# J0 w
: ~+ {& G* O1 f- L
我们只需要在他的所属dll后面加个20 90就可以了
$ i- u% L) C( s" c+ h( T W& N
2 E" U3 Y( h- M( h/ I5 p4 q; ~
卡巴目前还不查杀此免杀方法
/ J3 F5 c, K7 k
* \1 O: R+ U9 ]; h) a7 t: |! y
9 Y+ c! m9 J4 |6 e8 ?5 Z+ Z" O
唧唧歪歪这么多,打字有点累了
$ _% k9 m; F+ f; `+ {0 R5 V# q' @9 M3 I
' f8 y1 B$ p4 o5 R9 U: N
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
. `. L) f+ M8 t% g2 i4 z* ~; A
$ ~+ A+ ~5 r* ~: Z# P$ C
[
本帖最后由 1335csy 于 2009-3-31 11:35 编辑
]
欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com/)
Powered by Discuz! 7.2