  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,
) i {3 K5 Z2 y/ J4 L% B$ G3 a" u2 |4 l$ f$ F
特拿来分享给大家。
9 q* c' {/ F* q; a* `' \# u% @( ~
今天我们不提我们国产的那些杀软,真的垃圾的要死,0 S |* |, A3 R: ~
5 |' [, T; n6 S i上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表7 W: X! a, Q @; b9 l5 H3 M) V
& T3 a( b6 }+ c. t' _, c: `我简单的重建了输入表就把瑞星搞定了,* Y- N6 z! d" j& W* L: _
7 w1 K: _4 f" q, l- m* t7 B失去信心了。我曰1 v" G7 v$ t4 H$ `8 i
1 R4 k' m; v, C' G今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
. K9 q: h! {% K: w9 {: T! B+ P/ K1 `
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。% Z; r" A8 i# P6 ?
, E' T2 ?, Z. p1 |
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
; E% s, d( N: d& ~* m% A* z% a* j3 T# A. _5 T% ~, V* W
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
5 R- O! D3 w5 e/ l
4 U& ]1 e9 H, Q- `: t- E过了以后再调到最高,再做免杀。
0 e6 p% z, X9 [2 j/ B' F! @7 m
+ ^6 o2 {: R$ @以上是废话,2 I3 M$ }: R" @0 m
6 A+ D, m% b- n% r, a* I8 x
好了,下面我们来说下常见的免杀输入表方法。! T$ C. a9 d/ z) X- |9 ^" d4 N: E, v
$ z( v" M* b+ @
一。移位法; h6 _/ ^4 T, c; ^" E1 `
+ D0 D' |1 d7 D
这个已经过时了,我们的国产杀软及时的跟上了时代,4 T! v( ]$ ?9 A% W, S
! x) u* u! o, x0 k移位法在去年过金山和瑞星,还有江民都是可以过的,+ P5 O5 a3 ?8 M3 Q$ M
8 w! ^2 ~2 h/ T; C
现在的杀软智能化了,移位么?呵呵 ,追杀你。
1 y4 n5 J& g9 R+ `. S
' g4 W0 ?* P. \* v0 D如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。: u, I( q" R' t7 A6 [' d# B! x
/ @3 M$ x6 f+ E二,重建输入表 Z7 G6 X4 e1 Q
$ m' t5 }$ q: n9 Z4 N/ @
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
3 s& d$ d6 z0 `8 Q6 ]( X) `& Y4 _! S# J7 s% {) H2 w% |& H
这里我介绍下,
& ^% O6 Z8 ~+ a3 t! n, |3 K
- V, }3 Q7 A) J0 {# i6 V! L用到工具:
# d' a; R9 T' Y7 a( Himportrec1.6
" y$ l1 u+ ^5 [& V' U! k/ H( jod y/ ?, o/ E, O
c32asm4 T/ |; u! X8 o% V
loaderpe& q/ ?+ h. s' s
这里我们简单的介绍下,如何重建输入表% l" q& O4 }" s& A( D& X; \, z
6 j" G1 [6 k+ s) b0 ^$ C: K6 i
首先吧文件拖入od,打开inportrec1.6# X' a! ^2 f! ]5 n, q+ i4 [
& C: s& \: o( w& Q
如图 选择拖入od的程序,
) G5 C1 X. J H! W2 a3 h _- N3 ~
6 _2 ?2 Y" P4 l
' k! J& P/ n9 h5 X$ A这个时候,我们打开loaderpe,& r1 C6 B9 Z" o- r" R* p
, Z+ |2 m* C2 v0 G& e
拖入我们的木马1 w* F% Q5 k5 @! r5 }* e
9 m& l9 }3 q1 }) f: l( n
选择目录,
1 h$ F% V0 z+ q6 G3 p
) D* n% G6 c! Y ^( t/ ^/ M) }! a* x我们看到导入表这里。。。$ B5 w6 H3 H) X% @& U
" w1 Z- ]* R. }* @如图:0 Y; H& t+ H8 g/ s
2 B! d8 U' O0 }; [* _+ s$ u; x; d( M
% H" Q# B0 r+ J8 y; oRVA地址是0001D000 大小是0000154C0 O7 k; Q! h" k: T, F
) c" z) ]% A+ ]好的,我们把这两个输入到import1.6里去 e* M6 f* ^1 J" r! _/ J
( k: ^* r# L6 o- O. r; Y' A就是在“加载树文件”那上面一点
6 }2 I# S9 q* F
+ C( e9 P" h+ D. b输入RVA的地址和大小。
# v% R2 W C5 H$ _' N5 E& A5 c5 F
# a A/ u7 _- G7 ~3 m0 f. d" V点击“获得输入表”1 A8 P5 G9 x. n. w. w7 {% F1 t! `3 }
+ Y/ }: B+ n$ q: ?
然后点击“显示无效的”
, C! x) T, z; G8 ^" _ M# Q
4 C& z( M5 B8 }# |6 v* z+ j$ K& ]接着importrec会自动列出
) v/ V1 ?7 E1 P+ l: i2 g; N
" A& c I- H% x% J& W7 t我们把深蓝色的字体 右键 剪切无效的指针
5 Q$ y5 D% D& R) m( q& r
. Z8 W- F& h. @5 a
. A o& @2 @& ^: z, Y. a5 J最后,我们点“修理dump”
: A' R2 ]7 k# b) O
; x# l( o% Z1 P选中我们的木马就可以了9 D7 v% W, @$ I
5 ^8 G' b$ U" L最后我们要用到c32asm; o* F0 d5 R' d. e; ?8 J# t
K4 q7 d, j- }* H- I5 Z我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。+ w1 ~8 ^' n" q" k
0 o) U' u( t2 i: N$ o4 j+ ^: k8 W( S
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)& _( P+ M* F& ?
* J4 |8 I! _4 B1 w
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
* Q/ z6 F: \' _! V% Q' X, t. j1 Z- `5 P$ n/ D
我们把马子拖入od的以后,打开了importrec1.6
2 T' f% S7 @8 [1 O. i M% q/ O6 ?+ i8 Z8 y+ A$ R/ q
在选项那里,选择根据序数建造输入表和创建新的IAT5 @6 ?4 o/ E7 D: q8 z
5 q' g% E1 K7 b' o2 I& A如图/ p. \3 E$ {) q! t3 R/ Q% Z7 w
% ~% L( k$ B" `: R6 F j+ s
! p- ]3 O( }2 {* e& m: e以后的步骤照上面的方法继续就可以了
. E! P S: D; t4 N6 D" j/ E
- k* ?' V# Y R* H' g不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了4 u7 n% M4 O+ B n
5 I$ n7 v# j/ z; s, K" A: p) R g
因为kernel32.dll的大小不一样。
3 l7 j+ |- h! F2 P
5 ~- y6 q9 q7 V: d, p/ i. j7 P- s3.修改originalfirstthunk1 ]* y8 m J1 ~" W7 ^" B
4 r9 @ L' b: K: v' L" i2 e$ S
如图所示
1 A1 ]' u: ]' {% g- _$ i: q1 D" W c% s3 n! h; B5 k) e4 G
* t3 m8 _% P% ~8 I
我们打开loaderpe,依次点 目录--导入表(后面那个横线)- ]) a) c" J) J4 P1 q
! ~/ q, H: W! v |3 r/ w& L( f
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll4 V8 T8 w& \- k; T1 \0 E( X2 ~. `
* h( A+ Y! L; X我们右键--编辑--把函数后两个00修改为FF8 e5 ?$ V$ w9 ~2 a, T7 F, q3 T
: s' \; d* T1 ~( E- I3 [这样可以过小红伞查杀。 虽然会出现错误提示
3 C6 X+ W; F& }; @. c5 U* F, X& v2 i
但是不影响木马的功能,不影响上线。3 b$ \ c( v' D6 j8 `
) D* S9 i* X3 s0 Y# Z% G7 V; \
4.dll后面加20 90法过卡巴查杀% {" E3 c& E' w, I( \' J5 \
; r4 F. F8 ~8 [ @) ^3 {' Z需要的只是一个c32asm而已,非常简单但却非常有效& Y6 V9 x1 g- @( {
; m, w; Z- W* u7 f2 D% A如图
* t# f' h4 u% ~5 p/ O3 a/ b% w( W7 C4 P; e) Z- o; k% p/ P0 T
' w! p7 Q/ J7 _9 \
; {/ s' W, g. h3 k7 e4 n1 I我们可以看到,
+ M1 k5 _: ^. Z% r3 y3 v0 i; U& [" o) p3 s
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90& m4 J/ y, B- {" b: B
& Q( Z% `1 n, z3 Y这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
- s X* Q" U- O( U `) d& o! `, \0 C) ?6 |$ N3 Y
我们只需要在他的所属dll后面加个20 90就可以了1 E# m# o0 t7 ~7 K. U& K8 F
: |: u% c, B* E" D
卡巴目前还不查杀此免杀方法
) d% f2 l: N4 W" v% z
* k/ I6 e7 P0 w$ } h- F4 \
' p8 Q9 O6 a9 v; k" S9 l唧唧歪歪这么多,打字有点累了1 T% T4 v1 n1 A" l8 g
/ ]7 B% m! q, E以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
q% T+ w, \" D9 G t+ @5 E8 h M) H* P2 V# a8 r0 Q1 j
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|