  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,( N- a* e1 Y, b# s8 L
' r, N5 C( F) y特拿来分享给大家。' ^' t0 u- n+ b6 q
( C/ M6 n* F7 r今天我们不提我们国产的那些杀软,真的垃圾的要死,
1 A0 ]# ^" X0 E) e
# A q& i0 [! ^* W* z6 n上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表) v" M, `4 T0 w: f% U
+ n$ Y4 I4 W/ X! I/ |* J我简单的重建了输入表就把瑞星搞定了,: e/ K3 u5 p- n- B% q3 m
, ^* S( ^. l9 ^/ U$ t" o! ^失去信心了。我曰
2 r' s, V) U* G# k H5 d( K [. G, G9 h6 X- O, s$ q- n/ E* U+ K
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。" O( P3 U0 l( `, w8 f, f
$ b- ^$ q: g/ R0 L) i
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
, o% E; u$ {: ]# J0 c, P" K" N; @' S) a
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
2 l: O4 c8 Z, P" e& N( E# {- @9 G6 D7 s6 k: [5 J
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低; L5 w# { U* X* q/ T6 C
4 A2 @) I" {" u& g. [% i" D
过了以后再调到最高,再做免杀。
. z" @% I2 I6 l/ r, |; _3 `7 |
+ f6 Y4 z8 N# I以上是废话,8 B3 {3 p' R5 I/ A( N; ]
8 ~# O$ r! R4 j/ Z+ B好了,下面我们来说下常见的免杀输入表方法。
9 |/ Y; P+ L, }" z% j# ^# I7 x2 E* s" T$ \$ p2 E
一。移位法0 c9 }' C6 ?0 q B7 }( o8 h
4 s1 [- N- a. T; J8 r% J4 X! x这个已经过时了,我们的国产杀软及时的跟上了时代,
0 V. @( T: q3 B1 Z0 Y, R
/ j) V8 K9 e0 D V7 _& E移位法在去年过金山和瑞星,还有江民都是可以过的,
, {. }3 }: D7 s4 ^) m4 L) o! p( v8 I& r t, e
现在的杀软智能化了,移位么?呵呵 ,追杀你。7 J( @2 \+ y1 R- C
1 G- D9 c$ A. W! O) m如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。1 U9 J0 [1 }7 M% o" g
, f; }% p4 m' D. q9 C二,重建输入表
! N1 i% S- w, Z4 e) h
4 a" `6 { ^- L9 \ L- c效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
% D3 p6 b- g. E; x, S" X% D
( ^ X! p% N2 g: L; j0 q1 Z这里我介绍下,0 r8 ?* f$ _* [9 X2 k
; q8 V: z/ t9 I
用到工具:0 p& t6 Z4 l! Z' l3 v, L
importrec1.6( @6 N7 G9 ^& J
od- X- q: L' s; m: r3 w
c32asm, E. y0 J' X2 Y4 {; m
loaderpe
; Y& J# S# H. G9 I9 G这里我们简单的介绍下,如何重建输入表
2 e4 Q$ d) |. D* d7 T& Q2 z
# r0 L1 a$ A6 R/ R; F4 G首先吧文件拖入od,打开inportrec1.6
0 j+ c$ t o/ e: I; j
+ A& h; k7 b7 V5 ]如图 选择拖入od的程序,
: x( \4 x6 p7 N( v: L3 a 8 i; ]% B: E" _) a
; {1 t0 R# e$ q( i1 g
这个时候,我们打开loaderpe,% X( M; T& E# a% r: V: P5 d; }; _
5 t) R6 X0 j, b! q& x" ?
拖入我们的木马, w4 P2 @. M# C
& R. [6 w) F ?/ Y
选择目录,
. f. r8 N2 D% R1 R: y
2 P1 Y) p/ P- B3 `我们看到导入表这里。。。
9 O5 ?- y! i( j2 O9 P+ [
6 O. n/ J9 {6 b# J如图:
) I( H0 j7 n, _& R, m' T 4 x& p1 }6 e& ] X
" q, a: w# E! M- w0 ^
RVA地址是0001D000 大小是0000154C" M1 P0 o8 F' T) T
- n6 v( `9 z' z& w+ n9 M好的,我们把这两个输入到import1.6里去
' W- v; e0 }9 v6 r6 C, n2 ?3 L: w0 e1 B+ S
就是在“加载树文件”那上面一点
4 f, j% f0 \7 L3 R2 N: k; I' s3 n% v
输入RVA的地址和大小。/ n! Z n1 h+ E, n0 h$ X
B& M. V3 y- k1 [& w8 x$ F点击“获得输入表”$ Q$ M6 e$ F& l
4 |' B; m/ [2 s f! P5 I' W3 g8 f
然后点击“显示无效的”: Z1 B2 t, n* W; h
" @ s# a: S0 ?8 c! ~; g) o接着importrec会自动列出# U- Y4 U" @# A( |$ @
% ~( @+ g0 G! E1 H3 G我们把深蓝色的字体 右键 剪切无效的指针
4 Z) h/ ?+ J" a1 b/ x5 d% O: j. B" v% f( [ u! j. S
. |( `+ _5 b8 U% Z: }" h9 S最后,我们点“修理dump”
) x; \- K6 n- d3 I3 G
' M. [3 |+ h0 `) l0 M. V选中我们的木马就可以了9 w4 a& v' E& ~4 @) t* A
% h' |; d- R& S0 _7 g0 ]3 o h最后我们要用到c32asm( [9 |. N* y1 ~$ P k; _ N' k
6 b- I6 v6 T, x) x5 V0 P; G我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。5 |, |. t$ h; F# [0 D$ i" p
5 l% f6 _/ ^) R+ Z, z# h, \
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)& e1 e ^( U9 k, T
& [( @ h2 Q7 h }+ D7 b6 i4 W
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
: J2 s7 P7 U; I& b
% `5 l0 n5 e8 _5 P9 R8 _我们把马子拖入od的以后,打开了importrec1.6
# J0 i" l6 ]0 ^5 r
+ ?" @! Q% q: Y B% U在选项那里,选择根据序数建造输入表和创建新的IAT4 A4 b3 {( M: @
( _% z; h, z! R/ j如图
5 \9 m+ [7 O0 U- E$ ]& C# ` 3 d4 {1 b8 b' D) d8 V
1 S v8 Q# M2 e$ b5 Y9 D以后的步骤照上面的方法继续就可以了7 s' ^$ L& X2 \/ Y4 H! s$ e8 o
, B- S" U3 X' i5 h) M) G
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
% U: i2 ?* j' S5 F7 Y/ \5 c; d. J9 {* D4 `1 Y; Y( W
因为kernel32.dll的大小不一样。- Q3 Y' H: ~& a- d8 V, o
# V8 s/ p4 F }$ J% u
3.修改originalfirstthunk
# @; i i5 H% ?7 I+ \5 x! V. i
! v2 ]6 _5 c* W( ]1 Z7 W3 B如图所示
0 U4 o! I v2 ]' t6 P, L$ z
) ^+ ^" v+ _, b; I4 w4 P; }* i7 d
我们打开loaderpe,依次点 目录--导入表(后面那个横线)8 J$ P1 a5 A+ A# q. ^
4 I" R& b% z- u7 T9 D1 ~1 i我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
4 D' K% I' g& d! t7 X0 v- g- K. N% p0 ?- C0 S
我们右键--编辑--把函数后两个00修改为FF
_* [: L+ G- _1 C% F' U( e" p, o( c( E8 z6 e1 h! t. b1 C
这样可以过小红伞查杀。 虽然会出现错误提示
. s& _2 m. c/ x2 i$ c6 a. l1 n3 u0 N8 T* }8 R7 @6 o
但是不影响木马的功能,不影响上线。
. c3 Y* S$ k- Y& U
/ Y+ v; O2 ^$ P: k* P! |4.dll后面加20 90法过卡巴查杀/ s/ b5 y2 R" ^' K) Q
; ]7 q- B7 v0 `) K# ~
需要的只是一个c32asm而已,非常简单但却非常有效! W' Q3 i3 ~' {6 }0 [* ]
; |+ B3 d1 j# A* ], D! [7 I如图; f o# O" M8 H- k( e& K
% [) f; q. j( ~2 y& s$ H% ~: t
1 \; Y4 ?" o- x
( l+ v+ L7 ?, ~! {3 w% O! O! d
我们可以看到,
1 ~0 C: R( r' y9 {
' ~- g6 x% l( x4 c( E在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 900 Q. U, {9 O/ i2 n; ]3 |
- D- _6 l* g) S- ^" J/ I7 m4 q9 }这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection# _ m1 G v2 m" f3 C( c
6 ]+ R' R, N. t% Q' Z
我们只需要在他的所属dll后面加个20 90就可以了. u/ I" B8 V% ?2 k$ H; x- ^
) w- {$ |) p) ^9 f' s/ w3 E# v
卡巴目前还不查杀此免杀方法
: C O! Y( a0 J7 N' r# b1 f) w6 M0 `8 v" w
1 g: Q/ s- z& _3 p* [
唧唧歪歪这么多,打字有点累了$ h* L! U- f9 w
2 K3 C! v5 y+ ^" O4 n$ \' G' V+ C
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。; Q. O: x a; ~8 D6 o/ i* X/ z
6 g+ H1 H5 L! }[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|