标题:
[原创文章]
木马免杀之免杀输入表篇
[打印本页]
作者:
1335csy
时间:
2009-3-31 11:30
标题:
木马免杀之免杀输入表篇
最近和一位木马免杀牛人交流,感觉新增进不少,
9 Z- L4 J) ~- V3 M
% T# N: [) C. \: I+ m, o! x" r4 p1 c
特拿来分享给大家。
% y' {; g- n+ v' I+ T* F. P
; }0 l; V) d4 }
今天我们不提我们国产的那些杀软,真的垃圾的要死,
( Q. G" e7 {( }& C! ~( k
* z6 a7 s7 Y! a% c$ s' p/ K
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
9 M/ }, A$ b9 U8 c" h) A+ F+ M
4 [- S( _# z9 F0 l" h" b4 Y
我简单的重建了输入表就把瑞星搞定了,
" z1 @; {# V) Z
1 j1 m1 ~5 r: X
失去信心了。我曰
+ {0 ~$ O+ f" n: v% E
! q' n2 }: ]! M$ m6 R7 W8 P
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
) T3 d+ f+ p9 F- `/ I
: h4 A) `) L9 B0 i; K! x
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
; Z u, T8 M& J( f/ x% F& o
; H) m; p* a! b: C9 h7 t+ ?
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
& o7 p. A- e1 ]( D9 K
" M) j& D- o3 ~' `! W* n% e, O7 h
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
/ k8 ]9 \* q0 x+ Y( n
8 w3 c- U0 Z, m( s9 }" M
过了以后再调到最高,再做免杀。
/ j# ~4 j9 Z3 ]" H
" L0 x; Q5 g0 k) B
以上是废话,
( \1 F* B/ J" ~; Y0 ?' ^
) s# F& R# j' {9 j, @2 N$ }+ v
好了,下面我们来说下常见的免杀输入表方法。
9 A' q& @2 M' e/ |, {
& b3 ]5 G! R# y1 F/ B
一。移位法
' H3 v) n$ Q i" a. g0 f) b: H ]
( K- A) w. O0 B$ U3 H& S
这个已经过时了,我们的国产杀软及时的跟上了时代,
' f, A! |, p( H* U# F" h
5 j1 @; u; T% j: ^; r s8 g2 A
移位法在去年过金山和瑞星,还有江民都是可以过的,
B( o) i( e- ^
& `+ H* M$ C4 k9 z0 f$ ~ o
现在的杀软智能化了,移位么?呵呵 ,追杀你。
: |% {: P2 `7 Q8 a, k
5 ~$ Q* y0 P- V- i* Q5 n+ I
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
4 ~6 W' [( u: Q5 q5 O+ g; O$ V
4 F0 ]0 H5 B7 A6 q, T9 n: O5 h
二,重建输入表
f6 p4 Q/ y7 C9 _
' _* G- z p. ^7 k; r- o
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
( a& `2 U7 ` m5 U
: t: t, e" n6 h
这里我介绍下,
4 L. S9 B4 ?2 R
. B% P4 C/ |2 o- Z- V4 m
用到工具:
# g2 r! k8 M2 l5 O
importrec1.6
) n- }0 S4 i- N, x1 i3 }
od
( U4 Z+ B( M% t
c32asm
) _* M ?: n# I7 \
loaderpe
; O3 j& t& y! C
这里我们简单的介绍下,如何重建输入表
+ w% ^. x: ^! S- b5 n$ {; W3 y
/ O2 R- y' J* [. e. Q8 s/ v B6 e
首先吧文件拖入od,打开inportrec1.6
6 C8 X, [' ]8 F6 F4 l6 F. K
1 h* k- T( G4 n7 o0 I
如图 选择拖入od的程序,
( x8 E' {9 \: d' }4 @8 `. z6 z
- `% e$ t1 @& u# E
$ f0 `+ i9 j) `+ B( x3 F
这个时候,我们打开loaderpe,
2 I5 I& }& d9 M- X
. h2 n6 o! c3 _
拖入我们的木马
9 L6 B( k, o. ]. i
) Y6 T. H! { \/ U
选择目录,
8 a% K; [+ M4 I7 v1 ]' u* ?, ]
& n, `6 t9 ]0 h
我们看到导入表这里。。。
/ B4 t) u. n% c @" I
4 O$ i; O3 x" a
如图:
7 u# c% a" H) [& Q9 [
# C7 A% x( ?2 R$ @
2 W6 V Q4 K0 ]4 a- E8 _
RVA地址是0001D000 大小是0000154C
% O: c1 x9 K3 l8 Q
0 L1 w$ K, L; i0 z. i! U, a
好的,我们把这两个输入到import1.6里去
) w7 K/ l$ S- s
4 C8 [$ o/ G% |: R
就是在“加载树文件”那上面一点
% t# }4 m+ E! O) @! f3 Q* y g0 m
; Z1 [- t1 }5 _1 f7 m
输入RVA的地址和大小。
7 {2 f; A3 Y. S- _5 V
5 D. @9 [/ w# U% B2 f7 l
点击“获得输入表”
; X- r* J4 }; T2 l. w3 K& p1 F
& |) {- ^. k6 R* t( ]
然后点击“显示无效的”
% n$ T" u# r8 X/ X% h) v/ T: z
# S) D! {6 W: z$ v4 n# N# O, ^
接着importrec会自动列出
g. [5 N; n3 X L7 |
& v$ i# f0 c% y- O9 A
我们把深蓝色的字体 右键 剪切无效的指针
5 {$ h, K. i |) V
B w+ W; i% b
3 g9 x3 A9 Y% e0 K: G* q
最后,我们点“修理dump”
; \; v. y3 k0 u; {; J/ U
z7 P3 v9 Q3 Q& I7 p
选中我们的木马就可以了
$ Z/ K2 n# m+ [/ u( n/ t `
v% T5 C; _# Z! T/ s& K, n/ y
最后我们要用到c32asm
3 r; I) L% {; e. K6 t
6 F& v$ ]& f. Z! C( t* A: |
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
& {$ G% C* L. M6 U" N
- N. W* h6 D- w2 L/ }
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
/ j r5 B- m. W$ D/ l4 g
3 _" X: D& t2 x' u. n' G
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
2 u Y# d: a* t- K+ L, G
3 ~6 n- t, j! x7 H4 h6 V u: i
我们把马子拖入od的以后,打开了importrec1.6
2 y* \+ D( ?, O; ]
) M y8 F4 c t/ q/ D6 w
在选项那里,选择根据序数建造输入表和创建新的IAT
2 S( ?' @, e& [* P& s
* w% G- ?8 _8 h; }8 l9 K0 C7 I
如图
3 a7 ~7 u8 @ V+ b8 p1 G; d
$ z. J' v* R3 T7 k$ j4 F, K" p
) U$ n' ~6 `' T9 b* ^/ Y# r0 [! x
以后的步骤照上面的方法继续就可以了
( {& N( c" q0 w
' w0 V+ } b) J- F( ?, k4 }
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
4 v+ Y0 ~/ B' ] o! F6 K
0 H8 `) G1 q% J/ b6 N% k% I
因为kernel32.dll的大小不一样。
6 `3 K( _ Y3 a! w/ n6 K
' ]3 `& @ M; C8 M t
3.修改originalfirstthunk
" s7 n7 D$ Q ?9 O- G
. A# j) {3 u: V: q8 j! D
如图所示
+ z/ h( y4 e' ?0 M/ B
: R, Y# r A/ G1 J
" N3 n6 `' Z5 z. s0 C
我们打开loaderpe,依次点 目录--导入表(后面那个横线)
9 c8 M3 @- f# p7 Y
0 W5 i% Q+ f* c' ]9 h
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
, U, i, l3 U. L# \
$ v# G! A: }' O" L1 n
我们右键--编辑--把函数后两个00修改为FF
$ j" N8 J- i, o, t& T8 q
8 j; b5 Q$ |: ~0 L1 F2 B
这样可以过小红伞查杀。 虽然会出现错误提示
5 R4 y9 i$ j* K @; |: l* E
8 d: g$ \3 c# }/ l5 U. H9 O9 f6 K
但是不影响木马的功能,不影响上线。
! N# b" ?& O8 _5 w- b
+ u' ~& B3 G8 ?; Z% v
4.dll后面加20 90法过卡巴查杀
% N7 e+ \4 @" u, ^! Y
. v4 U: K( x: L
需要的只是一个c32asm而已,非常简单但却非常有效
# e: T+ F" z _4 E, d# h
8 N! {) ]$ X; u, y# O* y9 v1 z
如图
3 m7 O4 K! {4 n1 I/ Y3 _) k8 X9 D* Z% m
4 A6 p( E& ?& |3 Y
9 T- v0 |. p. ]/ J; \ Q- [
( P I# J7 Q- X' O- c) S
我们可以看到,
5 l+ }$ L& L4 ^& F- T! Y
5 X' T0 a+ k4 e* F. k0 l
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90
# R7 |+ d l5 v% n6 Q( e
( @9 D( s) ]& @* |
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
" s) @- V( u- F$ K
; T9 H( t- f9 f; Q* \ O
我们只需要在他的所属dll后面加个20 90就可以了
/ i8 `9 O5 a/ u8 E: S
; U& e( R* G: A, j
卡巴目前还不查杀此免杀方法
4 Y) a; o9 u# n% z& x
- a4 k( T' Q6 W- J+ `
1 [3 g/ Z7 h1 n7 f1 e. Y) p4 J% _
唧唧歪歪这么多,打字有点累了
7 I9 G5 m8 R6 U; ?7 {! E2 d- A
! @0 C3 r$ L( K
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
" b1 w% D7 ]- e" |; u, S: P
. _) }7 K' r" Y$ x" y1 ^. f& M
[
本帖最后由 1335csy 于 2009-3-31 11:35 编辑
]
欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com/)
Powered by Discuz! 7.2