  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,% b9 `" |, n# B' w/ g5 g! p
/ E1 V) x" [6 K0 {1 l! D: q特拿来分享给大家。8 f7 m6 \9 i7 m) d: W
2 @1 l& k& E* B7 U9 |# N4 U
今天我们不提我们国产的那些杀软,真的垃圾的要死,
; ]) B* c5 E: P* X1 N
& A8 m+ ]* c/ r上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表# x) s1 h/ Q5 U$ }- A+ s
% U$ `" S! P/ q0 c6 l& \
我简单的重建了输入表就把瑞星搞定了,
; `9 c8 g; h% W. I9 n$ c+ Q$ a( b: v0 @& p7 W) N. _5 E, p
失去信心了。我曰: b. _6 |* q5 V9 |: h' c& s
" k6 {! H0 s% ^5 m4 Z今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
, H6 _; x0 A$ k. v
! P; @3 }4 V* t/ ?9 {7 w: ~首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。# ]' K' T' S' }6 {5 P4 N
" S0 U; i% P& p
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。; }5 z1 n" Q! [) ` f
7 P( O% C+ m* `: a
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
0 { f' f0 ^. @/ A; j3 }! u) d& C' u/ a6 B9 ?
过了以后再调到最高,再做免杀。
1 L! L1 w% _& D* Q' b
# ~( t3 z3 ?/ h+ j; K: a) F以上是废话,! s+ O1 ~4 R# @0 s
- F" R+ A! B8 u. I好了,下面我们来说下常见的免杀输入表方法。( q$ F. l6 U6 c& S9 g' s$ t/ ^! j* E
0 j) p( v' A. q% @& t% X一。移位法
6 Y; }* w" O2 H/ Y9 @$ N0 y* B- ~9 E% {; U0 t' S. p& F
这个已经过时了,我们的国产杀软及时的跟上了时代,
+ d& x* Q7 V, m. C/ A
# G8 n5 m* h1 ^8 n4 W) B: y移位法在去年过金山和瑞星,还有江民都是可以过的,% U* A, b4 C; w( D$ Y! E
% O l# U: }6 @: o
现在的杀软智能化了,移位么?呵呵 ,追杀你。6 A! P# [5 V# ~3 E% G* ?
* Z8 F1 h% J; ^如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
$ M( X+ G: G2 b X4 q" G0 y) y
二,重建输入表
# h, F" I. M- X# T1 ]! K
+ J3 q `4 N8 X- H0 v- x效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
! d6 T1 q1 [4 q* }
8 `2 n: W8 \* U9 c _这里我介绍下,! a1 A8 ?8 P8 o5 t" l' b
; i# N* I2 n" b2 \/ j) J
用到工具:) G- O, x" y9 D2 U
importrec1.6
8 R/ K& Z& R. s& ?od
5 `! T. B$ ?$ G: Q. Uc32asm
V$ R9 V% X6 }/ |3 tloaderpe
% {1 w: W: ~$ g5 f这里我们简单的介绍下,如何重建输入表
1 W* }3 k- M5 o. {4 D2 B2 l9 Q; o4 I3 ^
首先吧文件拖入od,打开inportrec1.6
, h8 |* e" N. o+ l8 Z s% B% h0 C
如图 选择拖入od的程序,
& r6 y: m! z8 B9 Q# m4 k* z 3 t2 J+ E+ y. k+ M5 t
% I$ H) Q [, \/ H% A+ l这个时候,我们打开loaderpe,4 y& V) i4 p/ d" m H
+ w8 D! w( i, C3 k7 t1 R
拖入我们的木马
: q. C3 P* J" ]. u6 ~
$ ^1 g+ A' p* b选择目录,3 B( C% |5 ~1 c7 I/ w& ^
9 A/ ], f1 i" p( E4 G& K5 z4 W
我们看到导入表这里。。。
9 _- M( Z) ~3 M! \
u% {/ ?# ~6 A$ }1 H如图:
3 J3 P' c1 w a7 J& v/ f, k: C 0 f9 q' L* G: N: e0 l
* R5 t6 i. C! b1 hRVA地址是0001D000 大小是0000154C
$ H F6 ?* n @6 L" i/ q0 F1 }( Z: b5 \8 @7 S5 m; D
好的,我们把这两个输入到import1.6里去* P, W$ e7 R( F- H' ]% P/ c/ E
# F- J2 l Q# Z% l0 h' ?. {
就是在“加载树文件”那上面一点
1 n- c- m& ?5 e1 k# a) _8 {" ?1 z
! h+ w# O+ x& @+ c8 H输入RVA的地址和大小。% x2 J+ n* }9 T+ ?- j
& v% v* q5 f8 H. P: z点击“获得输入表”
r+ j) |; G$ a. r0 y3 G% V6 L2 D4 u2 }$ m: h* |3 G; M% H" K- K
然后点击“显示无效的”
( L! r0 s1 m8 O* R4 w9 n! `5 }- I( [
接着importrec会自动列出
" U( @2 S( b$ k
" k+ c; U- o* {! ?我们把深蓝色的字体 右键 剪切无效的指针
1 {6 ~1 i1 X6 b3 t) ?
( V1 r9 ]0 H8 o, G& p* l9 e( [! i* A5 H6 P& a; K
最后,我们点“修理dump”
( [3 R, e1 G; a' b3 r5 D' \
3 s* ~. A7 y8 j; K( d7 }选中我们的木马就可以了% j b3 ^! h5 ~6 o. I: W
7 s' W1 E7 K% b. y" ~最后我们要用到c32asm2 m* u* X& c0 I |
5 r/ V' y0 f( c) i) Y
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
2 A( S2 M% b4 c: F/ p8 R& N, B0 e4 E9 u G5 _2 d3 j& `
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)2 k" K6 C" I% C6 i. f
8 r5 a+ V& u. [% J
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,/ f$ a* Q3 _: {0 e- V) @4 l
$ k6 W. x. J# d k
我们把马子拖入od的以后,打开了importrec1.6
1 H& F2 c$ s+ B ?$ l9 V
} N- Y0 R2 ?; v6 S8 Q在选项那里,选择根据序数建造输入表和创建新的IAT# u' \: U7 r0 x& A+ G" \& T& O
( J3 G. d1 K3 i9 c7 w1 D
如图/ J3 V& P4 u( G
- j5 z. P( u, H/ W, b( g5 P
3 S7 s# f+ g, b1 \2 i以后的步骤照上面的方法继续就可以了
+ D6 p+ [9 z2 R; j6 T" t1 o
# k/ ~) `4 X) F; M R; R& Q不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
3 W( E7 [& H0 i# P7 `; r4 v& G" h6 u0 u) D* a# q9 H6 r( N" N
因为kernel32.dll的大小不一样。% g( }& s8 ^+ ^0 w6 x* M2 x. V
. k5 t' k# {; ]) V
3.修改originalfirstthunk
5 |! B0 I" ^3 ?( s6 m* x" `- ]4 ~# \; S6 w: I% J- e
如图所示
- G/ m6 F. g- J: y# O) D' s
2 a. _7 \' k' `; c
+ O& L1 g/ L7 e/ e# H) L我们打开loaderpe,依次点 目录--导入表(后面那个横线) Z- k0 Z5 C, }# t
E% g6 z# ?1 |/ y我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll. ]* d. S, v3 q7 k9 n
. v& }$ j$ H: q6 P
我们右键--编辑--把函数后两个00修改为FF! \ J. [. t- c6 i$ W* C
6 T) g% ]6 F6 E8 H. N% Y( Q这样可以过小红伞查杀。 虽然会出现错误提示
5 `' o4 s6 b3 B7 h
* I( v y4 t% C9 f. e! @但是不影响木马的功能,不影响上线。
* M5 q) d% f" B9 D& n2 |+ j& N* N( z, R9 f e& l
4.dll后面加20 90法过卡巴查杀/ M Z/ Q! h# h9 A2 d+ r' K
8 c9 D7 |7 n* H/ } K) R需要的只是一个c32asm而已,非常简单但却非常有效% B, m. W# y5 J o7 ~9 T
3 q& b- i n6 U如图
" s9 t# c: O9 \0 O% p7 p! M) ?4 F: g' m* f, X5 ]# C8 f
/ M" c4 K+ c; {( d4 F/ a' P( U+ {
( K5 n3 A0 D& b+ {我们可以看到,3 w1 B, I1 F& M5 ?' n
* s' t* {6 C' M/ G- c
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90
: y3 L( @2 j; u5 L" ]7 i U0 |% ]% T* G2 l
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection9 ~5 I/ z* P h1 ?) G
3 B* M f& `- O" T9 p" x8 E8 @6 h
我们只需要在他的所属dll后面加个20 90就可以了
+ J$ r3 W3 @+ d p9 \$ m( L. L8 L& N& o+ K& C* ]
卡巴目前还不查杀此免杀方法
, v6 r; a5 T/ u4 D8 U$ ~- ^6 l h/ S: o# M, N8 r) ~% }
( \+ [1 Q# M$ G8 u0 Y" t% P唧唧歪歪这么多,打字有点累了9 q7 n2 W6 p# r: D7 \) {5 R
% J! Y2 y. i% L5 Z3 Y$ j
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
* F* c5 |2 ~: P) [# o7 e' U4 ?( E
. k; p+ G& s; I9 {& D. d* a[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|