  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,6 `$ a S6 u) D6 b
n! H, l% m+ n" b# O0 p( G特拿来分享给大家。, K6 N7 @0 y9 H, G* V) X/ f
8 i+ G; o2 {4 { w. P, D
今天我们不提我们国产的那些杀软,真的垃圾的要死,
C+ | ^. n3 e8 c
9 K* S9 M5 @% L* i& \/ A8 [8 y上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
9 A$ O* r$ J+ A% a8 b" B- n8 n( F" t6 b4 f
我简单的重建了输入表就把瑞星搞定了,) W* G6 ?- C, v) G( e( R9 e
1 {' s! ]1 F; ], a' C失去信心了。我曰! ^+ A7 P( a$ f B( D: K- F( N/ H
! z# c9 r' {: B* W
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
8 e: \0 p0 p0 ?$ l4 S3 T' h
' p4 H+ |5 A9 l) o6 e0 [' C首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
9 H6 F3 `0 w8 q. w3 ^0 b6 M0 D
( Y9 ^/ s' c" f2 X! A! C外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。! c: P8 X/ Z% }; A
4 U( X7 v% Q! F6 O$ j7 k E高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
. q1 N" D& X1 ^8 g) j5 }7 N& _; C% y$ q' s x- R# G
过了以后再调到最高,再做免杀。6 b/ t, V. U( f4 o- y8 ?
6 s. \8 e8 I6 K0 l
以上是废话,- }# d' ]" U) s6 C B
/ [1 R5 V9 K3 [% M
好了,下面我们来说下常见的免杀输入表方法。1 ~6 l; b& N' @/ N- Y
7 a& c; u- M7 J: l一。移位法! i3 j3 x. n, [' @8 Z
9 h/ T- L2 _& L6 U+ o4 q: {# B& x/ |
这个已经过时了,我们的国产杀软及时的跟上了时代,9 Q7 i9 }3 t- o. A. r, c0 H$ r
" F& H' |/ j8 s; z/ y3 k6 y移位法在去年过金山和瑞星,还有江民都是可以过的,! h. ]% N) j- R9 A, E" b0 \
4 \) p; j j u' x$ }! W& z
现在的杀软智能化了,移位么?呵呵 ,追杀你。
5 p- y/ K8 ~* {* B1 X( ~# y: m. U2 A1 S+ A% T. H2 Z
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
' b# h8 @! O" g, i+ i9 C' a9 S, x: t' F" E; J2 N8 W7 }
二,重建输入表
j& w; z* B% O% J
3 h; d+ @* T' a: r5 Q( O效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈8 u; n/ M( h4 B9 m
6 d! u7 s- y6 Z' Z1 G
这里我介绍下,# \( ?- ~ _% _& ~& }0 e
i1 i2 N- ?0 `, ~: k M用到工具:
5 E/ t1 p* ^# u. Vimportrec1.6
$ Q- U6 v) i9 o: L% V* }( @) N# _od
" L* ]. X6 u, }; d0 j6 P7 Gc32asm4 N4 b( z. R% E% s
loaderpe
; k, C: g" N) t7 T" A0 ^2 K这里我们简单的介绍下,如何重建输入表
: ?, k/ c5 R1 f
A# ], e4 V% U首先吧文件拖入od,打开inportrec1.6
9 c4 B) D2 t' w: J& u2 W& `9 M% \/ V$ b
如图 选择拖入od的程序,- k' B, P$ X; U o# j$ l

2 {6 C: M$ t8 V P ^ J1 C9 o; T x6 k2 {
这个时候,我们打开loaderpe,
- i: f! J3 k y# Z& ~ v) y8 q; f- P& D% a
拖入我们的木马
- F5 W8 r/ }7 R5 w/ ?; F) K, G2 Z
$ q# k/ p/ }) z2 t选择目录,
8 s' x# i# E, @2 b# `# z' I, X3 W3 h0 r$ Q' \% a- E
我们看到导入表这里。。。
& F; M7 [4 }) ^ |# ?) O
) l' ], }+ N f1 q. [" ]! c如图:3 b B- _- r# |0 w& _/ B" |" c; [

* [0 c8 j( l# b4 h+ E6 m
7 A$ Q0 `; h# p, |1 h& {7 zRVA地址是0001D000 大小是0000154C" @+ i1 a( k* I( B4 i
8 q' e& l, Z9 S& E& [5 m+ [/ O好的,我们把这两个输入到import1.6里去
7 p+ d0 F3 j: m, a$ Z4 _" v: r Q: V$ R% q
就是在“加载树文件”那上面一点
$ v- Q: I, f5 K( } n
1 c5 {( S$ A$ t0 D" z3 [* y! ^7 V输入RVA的地址和大小。
1 D' a, {+ V7 J- h0 O* f2 C) z0 |# U0 j) y! I& e& j7 k [ k
点击“获得输入表”) A R. W, y1 X, g" e5 }" a( ^
$ L, K8 b: [0 r( L然后点击“显示无效的”0 o0 _$ U' I( a1 p; ?! C
2 a' p# q } |. A/ d9 a) M接着importrec会自动列出7 N/ ]5 `, t: a; g8 H
7 o5 W& Q: L( V1 s
我们把深蓝色的字体 右键 剪切无效的指针
, i4 q# Q$ l* u+ e+ Q8 x( o+ m0 o ?! V; ?, B
# u3 Y- m6 ?- [- a8 ~2 w$ F
最后,我们点“修理dump”+ G" T. c O2 Z
7 X, M. n: |: t6 s! z选中我们的木马就可以了
7 y8 H- r; O: d, [2 x) ?# R
0 e: d8 L/ m" C- P- P. h最后我们要用到c32asm
8 M; z% q: @8 T L- z- N* i' t( T. f" L' o
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
# N/ H# C) {* L) C+ R8 N+ f. e6 ~6 g z5 Y
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)) Y% h% C* G- n9 I5 T
9 a$ L C8 r; ^
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,2 L, Z9 e! @+ Y2 u" d
- J/ C, Q9 e: k/ C: r9 w8 v M我们把马子拖入od的以后,打开了importrec1.6% B2 s' i0 ]( B
9 A: y6 A+ q% I8 {1 S
在选项那里,选择根据序数建造输入表和创建新的IAT! {, `) A9 T- c) ]3 y8 e
- {/ ]' U5 c y& _6 ^如图
" o0 e3 j' O$ A
! @+ M- T2 D# c2 z( V% H: y6 [. a9 V( j' Z) M
以后的步骤照上面的方法继续就可以了. C% R, U* V6 t1 D
. J1 ?" K: k" g
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
- e* g, _1 ^4 N) }# e# B- O0 \
4 [1 Y! I! W* ] u+ E因为kernel32.dll的大小不一样。; w! b$ O7 j" I! [3 [1 y
% r' l5 K" H n- d: w
3.修改originalfirstthunk
% e; y ~( w$ f: H* I: q
1 U1 q8 m6 `+ \0 d: X- q- G如图所示
& n; I+ ?0 t" K5 a) R& t1 @2 j
" l/ |$ P) F- ]: K* m' n) v: o/ B. d# {! n* u- M% a
我们打开loaderpe,依次点 目录--导入表(后面那个横线)% g$ I$ Q, u s
; A0 u* A% O( [0 P1 t% T3 d6 Q- V- U' J# ^我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll3 h; ~. u+ K; E0 |
" c& R! h& N9 a% X- {
我们右键--编辑--把函数后两个00修改为FF7 R. V( k- s6 M) u' l, n$ z2 t
! J Z; d( K# [3 {
这样可以过小红伞查杀。 虽然会出现错误提示# Q& U5 K4 l# Z! G0 O0 g3 B
- e! L# a5 r8 Z* z$ W) @ K+ `- `
但是不影响木马的功能,不影响上线。4 C! {* I# Y) s$ G8 b
& J* a' i( l, o/ b) ?9 t0 e! }3 W
4.dll后面加20 90法过卡巴查杀
( n8 R) S3 |5 `5 Q6 n; @) p# R& a3 [: \) K/ q' n4 ^
需要的只是一个c32asm而已,非常简单但却非常有效& r7 H% b4 c3 _8 v, p4 w
1 S9 `, S: z( i
如图! }' E; {6 X- a
9 k* {/ p0 a/ a4 S. {6 ? - W4 a" w4 z" B1 T Y
! ]! L/ m/ x% j) {, ^/ i# u- w
我们可以看到,
` F5 K9 Z+ m! O
0 Y! R8 ?' S& b& P( m* N) p" @9 {& L在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90
* _+ S7 R8 u& e3 R
* ^; Y5 z# w x- z, k4 U* [这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
: G% f( \4 Z( Q5 v# o) |$ p
: B: A5 c) w. K# A. [! a9 b我们只需要在他的所属dll后面加个20 90就可以了
% d3 g' l5 p2 ^7 J! q- r' |
4 b; D) h. l3 U! X+ j卡巴目前还不查杀此免杀方法
* N8 u2 K; F/ t/ t
+ ]3 L) D+ N" T1 u$ X$ Q0 t2 T. Z/ B S7 v5 x/ z% L0 S1 G1 T
唧唧歪歪这么多,打字有点累了: L4 ^6 \, h4 Z% j
4 w0 \" S. A) p" B, W* N以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。( f" E6 F+ ]7 E$ }
& j& a& `+ I1 G+ s! m
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|