  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,( j" W1 ^ |- \, ]+ x! t& H2 N2 V( }) m
; W: {4 u4 {9 t+ G- H) ^# x) D特拿来分享给大家。- ]- L0 W9 w* P# d
4 B' S6 k2 v( T+ d4 D
今天我们不提我们国产的那些杀软,真的垃圾的要死,
2 z" v3 a, h# I* ^* x0 v) O7 o* t I2 v. n7 ^9 n
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
$ D' X$ Q; ~7 G* @! B4 F; x4 g
- Q9 s( b) e5 `5 z" r我简单的重建了输入表就把瑞星搞定了,
* A; I8 }4 ]1 J' I5 L% r
% X2 h( B, A% G) S$ {1 k失去信心了。我曰
5 I3 ?# t# Z( W* S2 ~; B8 j, T
! R7 j a5 u! p- y今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
1 }$ Y; y f }' Q" E! N( C0 F: F$ E
8 \7 h0 R9 ^- E: H- k首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。, u' I' ]/ w1 d
) ]/ |' t9 `0 Y" {) ^外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。& }( ~3 Q" M4 g9 r
+ [. ~ p0 V' i5 a' e" e
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
+ w$ @5 n, ?: { w% p5 T: z: ~% m7 e9 i
过了以后再调到最高,再做免杀。, a. d; H ]6 f$ r/ H: G
* W; w, O% Y5 u% _; x以上是废话,4 @2 j2 H7 ~, Y5 T P
8 P, M5 |1 `6 u) P! c
好了,下面我们来说下常见的免杀输入表方法。9 t. ?+ L1 X s6 l1 V
% Q2 v2 o, b5 t一。移位法
7 H7 ~! D. q. n! ^/ |- [( w1 G
: K. E# a8 k3 K0 b这个已经过时了,我们的国产杀软及时的跟上了时代,5 }" q! ?: i6 \# r8 u7 j" ` y
7 J) g6 W g: ^2 q
移位法在去年过金山和瑞星,还有江民都是可以过的,
; W z6 O( o+ z2 c. V
" x7 O5 w' F$ B现在的杀软智能化了,移位么?呵呵 ,追杀你。* {# y; F4 U* S4 Z) }
5 {$ a$ N5 B; V+ y* M$ e如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
! B3 t: w# y* I1 o# h) R; `2 j. P1 E1 {8 t' t; Q% N
二,重建输入表$ `2 J- A2 v$ O2 T" c( q8 Z2 ^
. |! T0 o& n( a6 }$ U9 P5 k
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
8 h T4 Q' {' y% z! t% ~( l5 ]( R& `$ Q7 K
这里我介绍下,+ [% Q- A9 g7 q9 m4 ^3 y! ~- Z
" ]+ r" T# u6 W. D! V) N: m2 j
用到工具:
+ a4 w' f5 ^. }- F/ Uimportrec1.6
( ~$ Z( X8 D. e+ w# |od
0 Y+ U' o/ ?6 e( q, ^, Nc32asm
. E8 w+ D7 R* O' |loaderpe4 v( Y/ J5 {: Y% I: e
这里我们简单的介绍下,如何重建输入表, b2 T' Z' @% P, P8 R/ X1 h" ?+ r
4 Y7 ^/ w8 |# Q' F2 \0 d
首先吧文件拖入od,打开inportrec1.6, V* v' x/ P b/ h
% U- p0 U* u! O3 s- X2 d如图 选择拖入od的程序," l7 P4 G% {8 a s, [& @; A
2 K# J8 c0 F7 D; x+ E
0 [, Y. e# \, H0 y S这个时候,我们打开loaderpe,
7 ^$ @1 P7 Q" }' y- v" `4 e5 G
; Y s- c7 T2 \. ^拖入我们的木马
) S- j1 k: n! k0 y- P9 D: W4 n, Y. G `! h F, b
选择目录,
5 O) d+ Z2 g9 {' V* N0 s6 U
O1 N2 u/ T- u; X1 t+ K; N, y我们看到导入表这里。。。
% g, C: n* e5 W# F+ o' d/ d
& Y: N8 o$ ~/ b4 U, S5 H- h9 r. w如图:
- C8 N1 t8 t9 T( }' s
, q# R u$ w; e" c9 I& Y" ~. O6 S# D/ ~: }& q" S
RVA地址是0001D000 大小是0000154C1 o# g# L ?6 U) S
7 ]) [& H0 c7 \( m! p' i好的,我们把这两个输入到import1.6里去
% z: j$ M1 P7 d8 b- B! q' a* y3 u o. R2 e" g) {4 |- m! S, x+ y
就是在“加载树文件”那上面一点
; ~0 t% I" f0 L+ T j, N5 P# z7 `
输入RVA的地址和大小。% B! O d3 E/ v! U
" |$ o6 D" f5 d4 H9 ^点击“获得输入表”% O; F" ?3 F, D1 c5 r* b/ |
2 i3 D! z4 J9 J8 }' J1 Z然后点击“显示无效的”: y+ ^' Y& ~* ]' }7 ]' N5 f5 I2 i
6 ]+ Y2 F* D, R F9 s
接着importrec会自动列出( d, M) K( l: b% _+ X! M1 e
# N$ J9 c# I( u+ [! y( p" `/ f
我们把深蓝色的字体 右键 剪切无效的指针% i& s6 D4 n, ^& S+ ^* K
$ q- k1 o0 w8 {- @ w; j- ]( K$ J$ G- D4 {
最后,我们点“修理dump”
3 N0 `1 I; l- B9 l( \! c, U8 I$ _7 q& I* I
选中我们的木马就可以了" ^* k, V7 F4 k; I2 O3 o
0 }4 f; `$ _$ B4 E$ n" g最后我们要用到c32asm* l! D: q: O' z" \- c: g K9 _
# p' B4 f" g2 Q7 @* C3 X$ ?% f% }
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
/ T u: i) P( M0 v x
1 c2 A) j4 @5 ]4 m$ D! d7 d3 i/ F这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
" n: I- Q; Q7 x. z! O6 E2 s; _- u) E5 A/ t6 K0 I U; e# i4 z
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,3 H/ ^# p( I8 E0 ^$ X8 b
, B2 [7 p; E. e1 x& y' @% f我们把马子拖入od的以后,打开了importrec1.6& p& c& w' b) w( B) k; H
4 B& U# k( f# C% w8 W- F; ~' j在选项那里,选择根据序数建造输入表和创建新的IAT
D. X$ J' x. y0 @" S* E
9 @3 \, h! i4 p9 Z. H4 b如图# S' r! p' O: w" q1 N9 i/ N

5 L0 ?- G9 U- W# |5 {5 y& Y* O! G
0 y; j' K4 b, m D X以后的步骤照上面的方法继续就可以了
+ u/ e( j3 Q. g6 w( R( _/ \
2 q; a0 X3 E" g+ R7 P不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了9 H! `& y* z7 P/ a( q
. z H7 c' u# _8 W# R9 h因为kernel32.dll的大小不一样。
$ |$ R/ I# a& [5 _7 \ s( Y+ \& q& z3 @" c8 ]% P
3.修改originalfirstthunk
& O" x5 q& w4 z" Z0 x3 O" G! A+ v( g% T2 J
如图所示9 b8 P" q% @' g& ~+ u" X. C+ ^1 W+ L
, ?0 h1 V) x$ h% B9 e
% b/ @0 W( T& q. d$ N7 m
我们打开loaderpe,依次点 目录--导入表(后面那个横线)$ j* Y& n3 R2 m; u0 W
* L, A6 u) y$ k/ V% | t, C" T( a7 u
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
% O0 R( b) k4 H3 R0 {) M, e6 y1 Q* n$ ] V) j5 B5 y
我们右键--编辑--把函数后两个00修改为FF
/ `5 @6 z9 v7 i6 L4 ^0 ^
' _1 r8 O/ `' j# C这样可以过小红伞查杀。 虽然会出现错误提示% Q: t# ?) G; v; \8 C! k
' [+ y- p- E: p# ?3 J! l6 m
但是不影响木马的功能,不影响上线。
4 j! v, U Z" `7 G. V+ y# o6 \" ~9 p$ o$ W
4.dll后面加20 90法过卡巴查杀
4 E5 C2 P9 D+ m4 H( j1 a- C
: E, c8 R* ^9 d需要的只是一个c32asm而已,非常简单但却非常有效& M' t4 s( u# N8 s/ k/ d7 ^" x
) g+ e' ~+ f, m, _1 ~& O# q) J4 z
如图
K% z5 f2 o1 t" b$ @* A; r3 P
4 h( c) z& p3 _. [1 v }* c
/ @; m6 B' Z4 F- B0 M4 J; O' i
& m8 j4 }/ n2 _+ n* ]我们可以看到,
- S1 Q' P1 I' W& d* I5 q; ^7 P6 t
f) l( }8 x% N. d在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90
1 s/ u! ?9 U( d# o( H8 ~7 T4 C" e) E: R
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection, ~! n/ J9 y) L+ w: e! m1 J5 ?6 c& p
8 F3 N* \( ?% \2 M! Y我们只需要在他的所属dll后面加个20 90就可以了+ k, a3 |2 I( t+ f& v7 m8 [- ]
K" u8 l+ ]+ h% P+ {( ^+ N# K
卡巴目前还不查杀此免杀方法
5 \: f6 T2 E2 a/ y
+ Y2 `0 G' n) r2 V: W8 f7 V% Z" U# F7 P8 C) j$ ~9 u
唧唧歪歪这么多,打字有点累了* d9 q1 h8 }- V9 O0 `+ e
" Q5 p( q% @: D以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
, j5 k h+ R5 Z+ a; D. q6 {. V2 f. X/ W- P! D3 \
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|