  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,; F; r5 u8 s9 N" [; w. A0 h
0 a/ T7 o+ }) C" d) t6 q特拿来分享给大家。
# j; F/ Q( f8 Q# }( Q5 \' n3 m6 O: p* `' J
今天我们不提我们国产的那些杀软,真的垃圾的要死,
7 D9 g4 I. `1 ^8 r! P* B- c; I
) [/ k! f$ P7 k6 |/ K上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
" C- h- c# t* `" c- {: x% O- a4 [, r J" }8 H% l( O% g
我简单的重建了输入表就把瑞星搞定了, `0 N C& O- n9 f: q
/ ]% b6 P7 C& O8 k# h
失去信心了。我曰
- h5 u, |" z0 R2 _, g1 o' z6 p# l( A- M: A
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。) t5 i. i7 Z3 m2 }
& ^3 q% X, [+ ~" d% ]4 f3 H
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。8 X! z0 P3 }7 M+ G. I
& q; P9 J$ s; W1 G外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。 z( |. R% x0 l/ x& I7 i
6 l( N& c4 Y% |; `7 w- q
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低' E p* {2 ?. Z# R
4 A, V' R6 t" t' c. Y3 g" g过了以后再调到最高,再做免杀。
, ~! X A' ]+ S( r
* j+ y/ b% N* c# K2 l/ o以上是废话,
8 @ y( a) A4 d8 l6 u: Z; C8 _; k9 f& ~* h8 [- I1 \
好了,下面我们来说下常见的免杀输入表方法。% m" q6 O3 U% G+ ?
, Z3 l7 d* P6 L* U9 x* T3 t. y" D
一。移位法' I0 c& t) ]9 A2 J% F
( y' o7 ?0 J5 h! \" x E5 a这个已经过时了,我们的国产杀软及时的跟上了时代,- Z: k7 D7 }' ^8 d1 y
5 N% ~! A1 f# E% y- m
移位法在去年过金山和瑞星,还有江民都是可以过的,
7 Q K6 G& R7 T; ^5 l" U9 e
. ]) V* z* [( I0 V6 ?现在的杀软智能化了,移位么?呵呵 ,追杀你。+ y9 e) V: P |! j% h- \. _
! [9 W' j1 z8 w' g8 R& B如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
/ n) i& ?) l" l+ n0 }% e+ J
* T* W0 X7 A' Z) ~7 i2 h0 U, S8 \二,重建输入表
9 h8 E/ Y0 b+ H! l# o! O) ~' p- f1 |! H
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈3 N# y* T& g& @1 L n
( {3 A8 L( `- F9 |, g4 Z这里我介绍下,% h6 R ]7 |! u+ {
0 C m5 j) l+ N0 T! D, a
用到工具:$ z8 u2 ?" a: p* \7 q8 ^, U% n5 ?9 n
importrec1.62 j, B7 e$ i W" B
od
* j! ~+ C: V/ ~* L1 Uc32asm/ }7 w* J( o3 _0 `( f
loaderpe8 n/ O5 m+ P9 I) H
这里我们简单的介绍下,如何重建输入表
- | p% K& P+ }& f( s$ {* z- y2 H0 @6 c; j; t; o
首先吧文件拖入od,打开inportrec1.6
5 x3 m, n+ W7 R
) S) N: k2 E+ m4 B8 U1 Z% Y6 Q如图 选择拖入od的程序,$ W$ {! g9 a6 D- s; }/ T6 ]7 O ~
' K& Q0 d& K/ q: Y/ T$ X
0 P( ^3 u; f0 U& u% v这个时候,我们打开loaderpe,
0 Z* ~1 ?7 d$ D3 N9 t. x3 ^6 I1 k7 E
拖入我们的木马
D1 {9 H: _4 D' w% c4 P7 e+ W- |, F' c
选择目录,
- u) \% X% p0 i% [( ~; [. E, E
$ N0 @' z: s% j. ]3 w) Y8 {9 _: m- n我们看到导入表这里。。。! K6 [4 m' P; Q9 p% S
5 F! I5 F, a4 `4 x# v& \9 e
如图:
4 S6 T* E: b5 l2 R; n# {8 y
: \- |* H( `# k- o( N5 S# y' |4 m2 t1 g
RVA地址是0001D000 大小是0000154C9 A( t; B2 D4 L7 g) a. o
0 B+ c# l% A/ k/ u$ p
好的,我们把这两个输入到import1.6里去3 L7 {, J8 M7 h8 w# s
9 N% t6 j6 C& K( g. k, s
就是在“加载树文件”那上面一点
: x+ K9 J& P, z6 s# T* I1 F: T
$ p. P+ @2 i1 f Q输入RVA的地址和大小。
+ ~* Z( U5 k+ {$ p5 Y' Y& W' l
1 h' @, F l* L1 b; C/ K点击“获得输入表”
3 E% U$ z) @1 y5 | n) t0 ^, y( e, {0 ~( l- \' Z) b% P2 a
然后点击“显示无效的”$ |. i7 {+ R9 H0 ^+ d$ a
& b R( {4 O' ]接着importrec会自动列出2 A- e1 i( p5 K8 h0 i. r. G$ v( P; n
+ J$ A. L0 W# p, ], i
我们把深蓝色的字体 右键 剪切无效的指针
$ x. l6 s# ?9 y* r) Y) |
. L \9 e. d& ]6 n7 Q4 ~' t4 T) ?2 d' k/ ^/ h1 p5 S$ f2 x1 L. b
最后,我们点“修理dump”
5 P4 y3 w9 q x5 i, L5 D" }3 y" j( V9 {9 a/ v
选中我们的木马就可以了% L9 a6 l+ S4 q6 |
. l0 ?% {3 ^/ N最后我们要用到c32asm/ t) @7 i3 W" G( D1 E# v: L
. P& Q+ `9 L2 h* s
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
8 O7 X1 H/ ^- B2 R/ V" d' ~3 J! S5 Y y; u) X: ?( N
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)* N" M ]- Q; r/ W _
# f/ P% [) E8 C; \; c8 {这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
7 s. Z6 `7 |7 }1 Z" a0 R
6 ?. y2 N/ ?( H0 d$ s1 M- w0 `我们把马子拖入od的以后,打开了importrec1.6
, r2 }& \ [2 M9 o: j: R# o6 K
4 y5 ?3 x; L1 H在选项那里,选择根据序数建造输入表和创建新的IAT
# C; @9 [$ A9 f% k( F! }: a
. d* t7 O& @8 D9 [) }8 o9 n如图
! v* M1 Y. K1 ^. e9 m8 D ; y# h+ M3 ~+ t ]' Q3 T
" ~* M7 d8 }1 G: w9 {% {4 o
以后的步骤照上面的方法继续就可以了 f, _ k! w, g+ g$ h4 h. N0 L
* w2 J, R J) n1 L6 i不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
; {; @% x& l* P2 m
; I9 ]& ^1 |% |3 l! D因为kernel32.dll的大小不一样。
, ~; ~5 G3 J# ?2 T. V! Z3 f1 G
, T0 N1 n3 t& l8 x1 J3.修改originalfirstthunk
3 I4 E. P7 v- {8 T
& K% M: w7 E1 i7 k如图所示
- y9 B! U- Q I. G
5 z& b& P+ R! N6 |, A$ b0 i; s: m8 H
我们打开loaderpe,依次点 目录--导入表(后面那个横线)1 }0 P) R4 u* I7 s+ m
3 m; A# R* I# W9 Q
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
' L& I4 d7 \4 u
% v, q1 v7 F+ _4 J! g; @- C我们右键--编辑--把函数后两个00修改为FF% J4 C; w q' n8 w
2 c$ J$ l/ m! W7 P
这样可以过小红伞查杀。 虽然会出现错误提示
7 T# S% B7 A8 q! j" n1 G! x
+ B- @8 Q1 x# J但是不影响木马的功能,不影响上线。- f# @, ~0 d% F" p# |( F( a
0 E2 Q. ~) j* w6 g& Z6 q7 T7 T
4.dll后面加20 90法过卡巴查杀
1 ^! j) G7 q8 {3 L/ `4 K0 z. o3 i
/ i y4 s$ T$ T" n需要的只是一个c32asm而已,非常简单但却非常有效* o- R0 i8 b5 u
! O+ i1 v2 R! o
如图
: t% d9 x* K: X+ L" _) Q% G# ^% N9 s- p- Z2 e+ X
6 f# G0 e, V1 H1 x7 D1 z
! f( o( Y. S" J4 a
我们可以看到,7 b9 G: ~- G$ C8 r# C/ d4 @7 i
; K4 a" D2 h5 Y; C
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 905 V; m9 p0 Y& {7 A
6 l4 @$ e' e3 H7 T这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
* K+ S8 u4 h# K* F2 o" U
$ f" ]3 b( @0 n2 v* ^% X我们只需要在他的所属dll后面加个20 90就可以了4 \% r3 ]1 |1 H) }3 e, [, b+ S5 A3 v" K
, p$ k* R# ]- W$ M/ X
卡巴目前还不查杀此免杀方法/ z' S, `4 }9 ~% d$ f
$ q9 P: T L; L* S/ K1 f, U
6 Z/ F! C; y. J& f8 J9 z) n; r! U/ n
唧唧歪歪这么多,打字有点累了. @2 v1 I/ B6 S" d% v
+ ~' p. s/ j ^) k' C7 h% i以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。' ~! @3 `8 R3 T# @
. P! s5 \0 d) f1 p- e# \
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|