|
  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,
5 W" _& W3 d3 @" B4 [9 d5 M" U3 c5 z; L
特拿来分享给大家。2 s. \' p" q4 W2 B: w
* H- l2 i+ C* B/ o2 [) t- d
今天我们不提我们国产的那些杀软,真的垃圾的要死,. o9 C+ H: t" c5 _( U; \/ A; `. N
6 z) H2 }1 c9 `/ i
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表! S( K0 N9 _3 e/ {% r
% J; @% w+ o6 ]8 A我简单的重建了输入表就把瑞星搞定了,
* B: i3 L2 O; Z3 A& O
5 x J1 w1 e2 f/ p0 x+ i失去信心了。我曰# p. m% a" P0 N
; x& {: [. b' C+ q! z
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。2 H5 I( ?- L# r2 i y
+ s: S* ]$ Y. ~8 U: X6 M7 S首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。, u4 o! X, Y7 U8 H$ {" P# ^
* l0 f' z8 k- O) Q1 }+ s5 {外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
& \) ]' W3 i' ?5 J5 y3 d/ U0 a, c; T$ g0 ?$ b# `
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低' x% s5 Z; a( y7 R3 f
8 z3 t6 k( M- e8 @' u, t过了以后再调到最高,再做免杀。1 j$ ?. |& [6 F9 F& S
: e& `! Z2 i2 H5 w" o以上是废话,
# q! W+ u( U9 D8 k
4 o x; ~9 @# w; d( S好了,下面我们来说下常见的免杀输入表方法。- |4 D0 y4 p. D4 f4 j e
. U( n$ N+ S+ a
一。移位法* \7 ? I5 E$ A3 }$ Y U( g' P
; z1 D. M0 U( n7 O% m8 s' Q
这个已经过时了,我们的国产杀软及时的跟上了时代,
8 u& L1 A! `8 {; _5 i" w6 a$ g M& n4 B# m. w; U4 A
移位法在去年过金山和瑞星,还有江民都是可以过的,
6 q" d8 x a$ N" I9 I/ e+ A' S* P3 l3 F% W- b$ Q4 {/ d4 r! n
现在的杀软智能化了,移位么?呵呵 ,追杀你。' ?4 Z# N# \! W' j" ?
! `" u$ I P* b* \
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。) s2 f- G O, @' Q+ n4 @5 b
# E9 S+ Q0 P# r I8 w6 ]. P
二,重建输入表 ~& s9 T1 q+ S, ?
, E! C# T# H; j4 c; p
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
+ U3 m4 \: L& l/ u4 F3 R/ |1 z) I" I/ p7 H. G) i1 | t
这里我介绍下,
9 B! T! l; c6 w: v" O* V9 e3 F. V
C' m. ~8 `2 K1 e用到工具:
- O) @- o2 M3 W5 k9 Wimportrec1.6
5 o5 A8 _0 }5 G) [7 cod% A. b9 Y1 Z8 {: C9 B' P
c32asm
' S$ U3 D2 r, [" Xloaderpe
- |9 o2 H' M7 b# {" d4 }5 y k这里我们简单的介绍下,如何重建输入表
* P* ~; R" D/ b
; _" |# V+ S- p! T首先吧文件拖入od,打开inportrec1.6
/ Q% h) f, a8 ~+ m. O$ d2 [8 K$ |+ H- C$ V3 |
如图 选择拖入od的程序,
8 k8 }# E9 I3 j [3 _1 G0 v - O/ h6 \' s: C% f7 N9 v- \- _% b+ C' ~
6 a! G6 n( o% B! D w5 ]
这个时候,我们打开loaderpe,
3 A- Y' N- n% U9 r- l
# x- g$ C) n! }7 L拖入我们的木马
! y7 o7 t3 r1 g, c7 B# a8 k% b5 a9 G2 X7 ^- H; t7 b$ i
选择目录,
( Y- g/ C( R0 D, Z* t, ?2 M. ^) t6 Q' U: r
我们看到导入表这里。。。2 L1 Q ^5 q# ^- \' {
: d: d! J1 I% M- X" _如图:! q) o6 n, Y) V0 l, o
9 ]; ^7 K, H) K. o
( s8 s5 o5 F: }# P! T
RVA地址是0001D000 大小是0000154C
' c. j% E0 `* D: T4 g3 ^$ T. s/ J& G2 t( z! s7 T5 L* K0 b
好的,我们把这两个输入到import1.6里去
" N# Z% I% [2 X6 _5 n3 E7 c
$ r: N( n9 A9 e1 {, ^ `: f, R就是在“加载树文件”那上面一点
& f, n5 k8 \! I- g2 n$ ~8 M% ~6 A
输入RVA的地址和大小。- h8 W8 O, j* V4 L2 T5 Q% h
6 b) G1 \8 A. P% X
点击“获得输入表”
) \0 W* V' O1 [: ^
' g( w6 T$ P( j ^然后点击“显示无效的”: D; p/ t `! N% \
! z: [: P! J( _! w; P( v, Z
接着importrec会自动列出
, B- }- B/ \8 Y: Q# D) A3 G
( y# w+ e9 |( n8 d! f1 O' e% S' m我们把深蓝色的字体 右键 剪切无效的指针
2 t' J4 s, x) u# l0 W& _, r! j: m- x6 l* S1 `4 W6 n
! v0 ^) w/ H4 O最后,我们点“修理dump”' i2 U: T1 u1 Z5 T
1 l7 g* w0 z& y* N; ]: v选中我们的木马就可以了2 D h6 s0 l3 O/ |& q b, T4 b
3 @) t' I9 {/ M" s) g
最后我们要用到c32asm
. m: Y0 |: f% t" s. ?4 f! T- z: c8 T# X8 W" b' R
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
6 t2 D( ^, b7 M
% a" @, k% E: R% m: r这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
$ C8 X0 g ?% y! Z" e% W5 [, H* S" k& W# a" q, R
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
@' O( @6 U4 T$ V( H7 t3 Y% i( @/ k3 I2 b1 Y, J
我们把马子拖入od的以后,打开了importrec1.6
3 q0 T$ j9 M' D9 P1 d1 h3 U: f/ v4 p9 z A
在选项那里,选择根据序数建造输入表和创建新的IAT
1 N4 y3 k/ N8 q, U1 s9 N7 K( a. ]3 f& e' m
如图& S' F5 p4 p" b
! E+ F4 B1 U+ i) q) |1 [7 {
6 f$ Z3 v+ Q0 ?2 T6 E
以后的步骤照上面的方法继续就可以了
9 V' x) A& r, w" R: g" _! e+ k+ ^: Y5 i b
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了" M, O6 h7 N" o; Y
# M9 C/ R T" C! i, R因为kernel32.dll的大小不一样。
, u! c+ n' Q3 K C i- G* \: ?" V0 q7 J* ?
3.修改originalfirstthunk2 y- P; W( \9 C/ Z
( ?6 Q- y1 ^$ h5 t: X5 f
如图所示
2 F4 w, ?- y# E) B* l 2 v$ l5 N: v4 q& W6 s( K3 h
# P$ \% w0 z6 E& {$ C& _
我们打开loaderpe,依次点 目录--导入表(后面那个横线)
5 i' Q( L1 q% R O9 s9 \4 b( I" f2 q# f" K! u9 r# p2 `
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll% ^/ W& O. N4 H" X
$ D6 L; u+ ?6 Z, U4 \6 @; m
我们右键--编辑--把函数后两个00修改为FF
a: _% \& }) H: ?9 t& X, z2 z
3 _0 y9 e7 m6 F& `5 H" U这样可以过小红伞查杀。 虽然会出现错误提示
7 ]# i ?/ V% ?5 W- U( _* s
+ u0 T+ \4 m8 F# C8 m. x但是不影响木马的功能,不影响上线。
# p! b+ G4 A7 Q# N9 O( y0 ]' E3 Q+ e
4.dll后面加20 90法过卡巴查杀
+ z. L* A4 P$ c# h0 r( S0 M$ m- \9 l; K' x+ t
需要的只是一个c32asm而已,非常简单但却非常有效% h. d$ `' n v) ?+ C1 _
9 F6 O! }& f" } P0 q
如图
) M5 e4 a$ }1 E+ k1 r; {$ [* T2 l" }9 ^. K7 X+ w0 O) S# U
/ ]% q( `. ^% x1 S9 R
! f" l& S- f: w1 m% a4 Q; C- @我们可以看到,
' d9 z0 q2 I4 r8 q; r4 C/ Z/ f' p. ^: \( t
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90
* ^+ G) V+ t- \
- y4 b: ]9 [, R" b7 `: R这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection' u5 Q& Q8 J' q E. h% `
) ^4 |7 [0 f$ ?4 v
我们只需要在他的所属dll后面加个20 90就可以了, }2 y9 I+ ?+ K) c9 K" b0 e
' ~: _6 _; q! R( }! M# Y
卡巴目前还不查杀此免杀方法
3 X& f- r [% n1 B9 H
8 Q. m* o" ]; c
. b& I9 u4 H$ B0 |0 i唧唧歪歪这么多,打字有点累了
4 E8 q+ K* p: g9 Z$ a8 v+ ?7 s4 S# i) ]5 r/ f+ `1 J8 u: Q
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
' B4 f" f7 B! T$ M
' l3 ^# `: N9 Z0 r, ?[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|