标题:
[原创文章]
木马免杀之免杀输入表篇
[打印本页]
作者:
1335csy
时间:
2009-3-31 11:30
标题:
木马免杀之免杀输入表篇
最近和一位木马免杀牛人交流,感觉新增进不少,
9 d; \, W4 ]* }# i* L8 t6 H; ^2 Q0 Y8 U
x# W* F, C6 O0 V7 D T* K/ [% o! _* i
特拿来分享给大家。
1 {0 C* J. J4 C' X: K3 Q& s
6 @- O$ J- [) P, }3 b
今天我们不提我们国产的那些杀软,真的垃圾的要死,
2 B6 P/ C- ?: E; A# r3 D$ i
7 Y3 v: w$ v; ~/ T6 w; \
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
M+ S' ?) G- o& K4 O
" V* K$ H+ {) V, ^2 ?7 T- C
我简单的重建了输入表就把瑞星搞定了,
2 c/ K% F) E- \2 R8 e; b' D
# o, P8 _6 ^5 A
失去信心了。我曰
( J' r/ j8 H0 a$ E' m
0 w0 T* u1 @* v6 V
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
0 e# I- b0 b' c! S/ R
4 b M4 M# F* ?- U' E. W
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
: @, R& c1 ^4 ^7 F2 s* d
6 J7 p" `6 i' g% D- o. k. @8 N
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
/ r3 J8 l. e f
5 J. e; j5 ?# m6 z9 ~/ u$ `
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
; P6 d7 u. W+ @1 v+ @
: t* |0 U' \7 N3 Y
过了以后再调到最高,再做免杀。
9 R4 q, {/ I) R
0 {8 c3 r5 ]& j$ Y, ?7 \6 [
以上是废话,
. X/ _$ s# {- ]- ]+ u, h
3 K6 K* p, o1 x1 `9 l" q5 }
好了,下面我们来说下常见的免杀输入表方法。
9 [5 z# [$ g% X) e2 {) R, V# s
4 K1 Z* Y9 v6 y' k2 w
一。移位法
9 t4 O; D. \: m8 P% X
# O O9 E- A" v1 ?
这个已经过时了,我们的国产杀软及时的跟上了时代,
" |) I+ ~0 b- s( W* M: b
; [% P6 b, y6 b9 k& @( p
移位法在去年过金山和瑞星,还有江民都是可以过的,
8 N& i9 ~7 W) s Q
3 i1 E( R2 b. K4 o, n: T1 @
现在的杀软智能化了,移位么?呵呵 ,追杀你。
1 L: l! n) E8 s9 V
p! Y0 F* S6 z0 [# R: }2 j
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
1 ]) z7 r X; z& O; H5 G
6 k6 K" D, w# ?! e+ s
二,重建输入表
( V7 J" O, [! h) b4 F& }7 ~" _
K0 S7 |, G/ _' I
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
4 O1 q. b) G- k' t3 c
/ t! f7 `/ K3 e$ z- p
这里我介绍下,
3 B3 T3 {4 {2 A* A0 t
$ p# w# O$ M4 A
用到工具:
1 s8 N8 ~4 I9 }: O4 s
importrec1.6
+ z* l. W2 i2 O
od
( L( y. q- Y9 n, j
c32asm
% D) j' v4 H1 \8 ^5 O) n
loaderpe
1 ?( M0 K* q) R9 K! W/ ?2 K8 f
这里我们简单的介绍下,如何重建输入表
0 i3 x) V# m+ Z
% v& j7 a/ p6 `* {
首先吧文件拖入od,打开inportrec1.6
( H, M: Z0 o8 _/ P
! F% t, h6 o2 W/ [6 [6 S
如图 选择拖入od的程序,
: I9 G }: L1 @" b& t) D3 a% w0 P1 u
* ]+ o% i2 x3 @4 u# w) V/ B
, _% T$ X( W* W- _5 a2 a$ }
这个时候,我们打开loaderpe,
8 t7 d" K( J9 f8 \1 f7 b* x+ }9 t* }3 O
2 A, Z3 ^3 }" Q) R. K# v
拖入我们的木马
9 S+ R* K2 o/ P, o" i
% \6 D4 G; F- X" o6 }
选择目录,
: ]) u% j' ^ v
$ E1 t& F( K% s* i
我们看到导入表这里。。。
1 w# ^4 A+ g z
% H8 L7 I4 _% r w1 M+ Y
如图:
# k M" B/ e9 J9 g- O% ^
3 k( Z: C2 l; `
7 g* q$ G& N% n
RVA地址是0001D000 大小是0000154C
/ Z/ E. {, k; T @8 W/ Y( l v! \
- y$ x/ k! x. m) I' I
好的,我们把这两个输入到import1.6里去
! w+ O! ~1 m0 G- d. A7 z- W
4 M8 [; A+ u1 B% W4 ^
就是在“加载树文件”那上面一点
/ m5 q4 {5 L) }4 _. g; x
/ H* t- _, V6 E/ N
输入RVA的地址和大小。
# c! M2 Q% Q, `) K' r
9 U( u2 R( T+ X) N/ |" ^3 `3 H
点击“获得输入表”
, l0 W; t% g4 s
$ Q7 |4 T9 z3 W) N9 q% i
然后点击“显示无效的”
& a2 e F! \* e" G$ ]" a' `
! p5 }+ r. F+ u
接着importrec会自动列出
0 b! }2 ~* X# @5 R: C
! {. Y$ m+ ~$ `) ^& r
我们把深蓝色的字体 右键 剪切无效的指针
& q$ w" l- [+ b3 Z1 A: }8 V
9 w8 h6 \) f$ H) }2 d$ o$ F# {
6 \# h J. Z# J' z- P/ `0 N2 L
最后,我们点“修理dump”
' M( F* Z7 |& o7 r% A
3 v1 a( d: Y% o2 p7 c
选中我们的木马就可以了
7 ^5 H( |/ H# u8 U. q8 S
7 P0 b% t; ~! u$ ?! N) L8 S" r! E5 l6 _/ J
最后我们要用到c32asm
$ q6 d8 b. k& `4 x
; i2 D4 J3 |$ ~: Q% r9 |, i& H7 l
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
( H6 S! D' p1 F! S ?
2 Q6 x0 a+ {% @ o
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
' y5 ~/ F6 H% z n3 |# ~ }
" r5 L! L1 z4 ?7 f
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
' e- e: r% {& s
" i" M2 V- C% _! F1 ?! h# Y3 C
我们把马子拖入od的以后,打开了importrec1.6
7 o: ~6 m! m6 ] w7 m/ k) D
/ k$ X, |+ D# H; J& t
在选项那里,选择根据序数建造输入表和创建新的IAT
. _/ g3 P" O5 q7 @
' E+ Y& ?6 g6 A+ z: Z0 V K6 h
如图
: D! K9 c* S. N$ F
- }. @8 w2 p9 @5 i1 ~. M
( G5 H/ Q; u) l, X- Z
以后的步骤照上面的方法继续就可以了
; F# J. \; \1 u
& U8 L1 c& [5 u* L; I, K3 }' b6 K
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
+ k# E) H% L( ], {* {2 f$ a( a) S
& s. u( y% [4 ~$ }& A
因为kernel32.dll的大小不一样。
" m7 o; Z3 c$ C
3 H% o1 @, l% e
3.修改originalfirstthunk
& o. b p4 a! P
. S* d+ H# b4 v% }% y3 h! e
如图所示
8 l* F; }, Y. X) H- L1 j/ Z% L1 `
$ T+ L, B; l- Y+ [ g# ]
& Q1 R8 q7 N( L; {
我们打开loaderpe,依次点 目录--导入表(后面那个横线)
6 t5 K/ d0 q' I# N4 a
0 D |- L. D# N0 v8 j8 c* o: v# l3 b
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
: Y m& R9 A) E8 ]3 X6 ?
% q# L, G4 w+ ^ I# B7 M
我们右键--编辑--把函数后两个00修改为FF
. Y: V3 o& N0 K' g J
9 c J8 Z! ~; \/ Z. Z% J
这样可以过小红伞查杀。 虽然会出现错误提示
9 S1 z* h$ b1 R- r! ^' [
/ z- C6 {+ a3 g" v
但是不影响木马的功能,不影响上线。
+ s7 h; p( h+ x+ o3 [8 D
+ }( b+ ^$ j0 Y8 k
4.dll后面加20 90法过卡巴查杀
# W9 z) a0 ?' G' K
1 T, O0 @3 x( r& {& l+ q
需要的只是一个c32asm而已,非常简单但却非常有效
& Q7 Q, Q1 k1 o- x
: v7 @' d. }5 L& u! j
如图
1 I3 X5 l- a$ B1 p3 n
! r, e$ k y4 o# v9 a$ R) z
: v- w5 s6 A4 r8 ~6 \9 ]
M4 L: J Y* @1 U/ Z! }$ h: v* c) t; [
我们可以看到,
5 g) [; n7 f8 J. }
) |- F4 O ~5 o* o# @" A+ E# J
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90
6 s( J& T. B: n! k4 T$ g" Q$ x; M
* [: |8 q1 h n5 D
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
- Y: T# u1 [6 T6 }8 e
+ r4 {: E: x) L: s8 q5 b; x
我们只需要在他的所属dll后面加个20 90就可以了
1 H. G+ ]$ a; P& Y5 W# X) |, y
& e, f/ {5 H# M6 r, X" h
卡巴目前还不查杀此免杀方法
f( W& W0 ^0 L
' B: J9 d5 i: J. x
& A8 N* w: ]1 x
唧唧歪歪这么多,打字有点累了
& [8 B5 k% }8 Q4 @: g7 Q' [ Y3 K
7 j! A C2 m" r& N
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
# ~3 R4 G' b {6 X
9 I% I2 K) c9 G0 Z
[
本帖最后由 1335csy 于 2009-3-31 11:35 编辑
]
欢迎光临 【3.A.S.T】网络安全爱好者 (http://www.3ast.com/)
Powered by Discuz! 7.2