|
  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,
}4 ?1 t5 s W
" Q# B$ W2 S0 Q特拿来分享给大家。
" o2 x# K! K- e! D d/ _* w) |
. H G# ?5 M6 ], w7 z2 R+ h1 {今天我们不提我们国产的那些杀软,真的垃圾的要死,5 t& [" y3 m+ s7 L4 \' L
/ G/ b3 U. V1 A. x6 L
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
5 T5 D9 l$ k4 J" w, [( x9 R
f9 q% f& o+ t) \ {我简单的重建了输入表就把瑞星搞定了,
) s& w! T5 ]1 a3 F4 r! n$ ^4 r/ t' ]
* Y4 W; U6 ^0 m失去信心了。我曰9 @ [8 `5 H1 i
: L$ I N4 J/ @, @4 {
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。2 u3 U$ {6 g" Z, r: P
/ _5 T; f3 `7 ^$ {( A, M1 N
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
0 z+ [' F5 W {6 C# X8 [; V; d
z p( `! t9 n* v+ p5 E, O! B; X外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。( g4 i3 h3 t/ l% ^0 N' b( g
7 W0 J+ V- K+ P
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
* c3 i; [, E( P3 }& p: R1 l! q2 I& u* Y: c- r. j- q+ ~
过了以后再调到最高,再做免杀。
# C2 Z1 n6 {5 y0 P+ B& M' y; Q/ c& u. e8 o H2 e3 o6 o/ D X
以上是废话,7 k7 m* R$ p& k2 l: i- V: [
6 a$ R4 n2 O1 t; [; I
好了,下面我们来说下常见的免杀输入表方法。3 c/ q6 e G+ n/ h5 u
0 U/ k6 v2 _& G. h Q; s一。移位法/ b7 L7 f: ?; A+ f( @0 g
# D. Q+ g7 ^9 y9 k/ m6 G2 d这个已经过时了,我们的国产杀软及时的跟上了时代,( z+ v6 O+ \# f. E
2 V$ W/ U0 M" W移位法在去年过金山和瑞星,还有江民都是可以过的,
/ s( a0 M' B. ^9 |, v& _' @- h, z3 J% { W( t" y; L
现在的杀软智能化了,移位么?呵呵 ,追杀你。5 ~7 J( D9 e5 n$ r$ A
6 k% i* R; [1 c' M X! k
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
# c- P% ?2 M5 d# E% F
. G5 r% O) a) u6 C3 p9 u二,重建输入表
' _4 i+ c4 l. c( x" V
7 p! \7 B8 l% M, b. z效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
$ W2 ?! X8 l! p$ g5 K! J5 ~6 x w6 ?$ f$ j) u" u- N
这里我介绍下,
8 i/ Q# M+ J1 k- T( k5 Q' R9 i8 K! N. q3 R
用到工具:
2 F3 |- y, I6 ]. D" oimportrec1.64 E7 H( ^6 m' Y& ~) e, u/ v% a
od
' m; y4 L! B, ^5 j: w# wc32asm0 t$ g6 L" Q( `4 e& [7 {& M9 f
loaderpe
* H+ N2 B) m6 f0 e7 ~; N; z3 ~, W这里我们简单的介绍下,如何重建输入表
2 J5 p. \ X* W0 _2 v* K8 d2 e
9 ]4 e. O( s4 p. O: s* r: T首先吧文件拖入od,打开inportrec1.65 i; ?+ _) a W5 U5 p# Y
6 h/ M1 q! N. }
如图 选择拖入od的程序,
3 D( n5 f4 k! O& v* c- h + A `, P, r j$ W
* U8 k# V' _% Y u这个时候,我们打开loaderpe,
0 @% ~0 o/ S* z8 M3 E9 z' a1 L4 y+ m. s* n9 i4 } |
拖入我们的木马3 R) ^ l7 t% R. q
: p- g# F' S# C4 R& h0 x
选择目录,
( u. N' j0 W$ E" @* F/ ^2 z5 P& j+ x e: h
我们看到导入表这里。。。$ O& i0 K6 Z1 @
+ b( P5 {3 p2 R* \- T如图:7 ~" k2 O2 X3 c" i1 `% y
5 d% i2 _; W: v8 l8 N' v) ^4 s8 g
% Q: E& D; H, S) i; d, l7 t! zRVA地址是0001D000 大小是0000154C
8 n) o& N( M6 `- I
9 F% h5 Q% K; t; q好的,我们把这两个输入到import1.6里去$ ^1 B4 S3 T3 @' K
5 @" j! G5 F7 Q2 h# d! A- k1 H( z0 a- p就是在“加载树文件”那上面一点
. c3 _/ m9 |0 U# Q, p
& d7 b' r, W, L- I$ G9 N0 y+ K输入RVA的地址和大小。, I$ C. R$ a1 x) O0 I, J
' j( k. {$ N; l4 X' A; d点击“获得输入表”1 k0 p3 E8 D- ?
, ?" n6 o# N$ R5 u# S" v然后点击“显示无效的”
' ?5 O4 r! D" b
- }) _' j$ j0 B4 z9 ^5 O" m接着importrec会自动列出
* Q# J9 \* J H9 B( W' |" l) f2 @( W( V" N
我们把深蓝色的字体 右键 剪切无效的指针% a2 ~5 D) F1 U' g% e
: I# b) h4 ]1 s4 N
0 y$ ]/ v& O( |1 A最后,我们点“修理dump”7 t6 X5 _1 Q& x, ~; M' [
$ @' A, j8 w i4 ^7 z |$ O选中我们的木马就可以了0 U4 K: r. q% p, \7 W7 Q& d
' l. d" U+ S# B" r6 X. |/ C最后我们要用到c32asm
$ g, Y, [6 r6 ]2 v9 B0 c
8 x) t! V. \( }* `, ^1 t我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。1 N0 b9 }2 z; S0 Q! i
3 E9 @; Z3 O2 |* I这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)1 ^, a: \" [( l" u
/ r/ K, D) h3 M1 x, M; l8 P
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
/ N# H/ m1 x U3 o" L, C1 L! s. V- X% k" n: z# C9 s- ^3 j0 `
我们把马子拖入od的以后,打开了importrec1.6
; S) N, V; @" y$ j1 ]+ t$ n+ K; u
' i/ V5 ?& h) m! ?. B4 k在选项那里,选择根据序数建造输入表和创建新的IAT* Q+ H3 @% G' n
9 N% [8 M. t4 v ]+ s- [5 l+ C* v如图 U4 g" [! _( V3 i3 ?& L
! r7 d9 e8 C1 j8 r+ c* q; l1 z1 n
8 O5 w: v2 P( Y& N以后的步骤照上面的方法继续就可以了
K3 G" C* Q9 S+ q4 Y
2 S" [* H" E# C2 G/ e& L不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
/ m% e) l# \# P. b
9 E7 s! w5 m4 [+ z) L因为kernel32.dll的大小不一样。
& I$ I: w* j) J8 ]3 F7 a
6 l* \( }+ J# M3.修改originalfirstthunk
$ {. u e$ @' t( j$ n
& @% s& F5 P9 O" I* K; N如图所示) f/ S8 _) Y: Z9 P) |
; u9 i" @3 \/ U0 A
! h! t$ U# X% ~7 v% d我们打开loaderpe,依次点 目录--导入表(后面那个横线)" ?6 P( e9 e' `& y9 e" h
0 X# A! y; I1 Q! p3 ~$ i% g* P$ n我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
+ J* M& ?( z7 U
% p) X* Q1 R; \) D4 @ h我们右键--编辑--把函数后两个00修改为FF
* c f' l ^4 H7 X1 b; o) K _) f: h7 ~& ?7 ]3 w$ p/ x( @
这样可以过小红伞查杀。 虽然会出现错误提示: _5 ^) ]; ?: V/ z+ H
( n& w5 `9 `& R* O+ J. B9 O
但是不影响木马的功能,不影响上线。
8 J! X( Z, S2 a( _/ M- h8 G- G5 n4 O) |
4.dll后面加20 90法过卡巴查杀$ `8 k3 p2 }, ?6 B; K, u E1 V
4 d3 h6 p0 T$ ~
需要的只是一个c32asm而已,非常简单但却非常有效% b+ N7 U$ J& S1 p: [. l( J
* z, o2 ~9 V C
如图
1 X7 ]: p' O& [$ Q3 O$ Q; I2 w( k
8 R& S; D: f" z# z) V& s1 x. G
0 W9 ^9 D/ [& p k- h
1 a* k9 D0 @/ F2 h* K! j* L' M我们可以看到,
$ m: ]0 R2 b, X+ G. ?
- F* w0 A$ M; x8 Y在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90. r. l7 L. O$ }
3 R [0 d' h7 [1 }; S) V
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection. g% ]& c- L5 F) y9 ?* ]
" o( {4 r" p: H$ k我们只需要在他的所属dll后面加个20 90就可以了
; h3 W/ F+ |# r+ A. b5 E4 ?. l' A! L# n( w2 G
卡巴目前还不查杀此免杀方法/ l; r1 @2 q0 _6 q3 z7 n4 Y
# b0 b6 p1 m3 B7 n6 a6 T2 S8 }: V, e
唧唧歪歪这么多,打字有点累了
: [) U. L6 I6 [+ q4 a
7 F" e& ?" G* Q以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
\4 ]0 x9 D P$ A& O, V# D7 T! G7 @0 h: d& q0 {! P: r2 N e
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|