|
  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,7 W) X( z3 l7 r
* x5 G6 U' R( [3 v. Y0 X8 f
特拿来分享给大家。
2 @0 W. L( l' t, q1 U7 `$ a2 ~; d" L. \' k5 j+ J
今天我们不提我们国产的那些杀软,真的垃圾的要死,
* x, {6 G% R5 j& V$ \; d0 ^, H# b( ^) \
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表- G3 J$ u E/ ~$ h' X4 G5 d. @5 r( ^
, x# ^6 n F Y1 h7 m- k
我简单的重建了输入表就把瑞星搞定了,
1 G( _% [+ w1 u' z' v5 M
, |' @# Q5 H& K* I* Y失去信心了。我曰
) b' O; a/ W, I9 x5 a* c3 n' o' s* k6 O3 ]6 n# h
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
3 }) y2 U4 d$ ^. \6 ]+ z+ M
* h6 Q! n7 M' Y/ }* L3 b首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
2 ]' p* a/ t. V1 i& ~" w+ }' t' E: @. G
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
4 K/ n# T, r+ Z, p! t( G8 C8 `+ M; S8 |; m# J* C4 l# Y% p+ f& J
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低6 f8 u/ H% n2 p: ~2 ?, c0 k5 R
* A& a$ A. f9 A4 Q9 |- c: C; [过了以后再调到最高,再做免杀。: [* E4 \; C* S& P& p4 a$ _
& n% b1 X- a" }# a7 p0 R! v
以上是废话,+ W9 r8 ]3 U) ~
: R6 _2 \; i# @7 T
好了,下面我们来说下常见的免杀输入表方法。
; k: k, c% g& W Y5 c
1 J$ o$ x4 M- J5 z0 A% p一。移位法) b7 i. j- O5 ?. V, n5 U/ Q) Z
) S4 ^# h$ b) l1 V& d这个已经过时了,我们的国产杀软及时的跟上了时代,
- I+ d& g/ _( r0 s( n6 a! d2 \) n3 ?2 ~9 K" }# |3 S' F; e+ j5 O& r6 H
移位法在去年过金山和瑞星,还有江民都是可以过的,
( n. S y$ }; J4 W) z# Q5 }3 h, \8 X: H( R: x4 Q, x7 V7 a
现在的杀软智能化了,移位么?呵呵 ,追杀你。
( D% K. `7 D! S2 i. W. r* n% Q" p- w5 Y, D% ?# ? @
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
0 N' H, r" q- k! I% F6 H" d2 h, h6 r! e
二,重建输入表2 Y) B6 v: G7 c* A* L0 z) q
- K! _% i- i" ]5 V$ B6 O4 C效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
6 g; @5 Y" Y7 h+ x6 u5 ` E- l9 D- y4 i5 a. U! M9 d8 u* t0 I/ u6 K
这里我介绍下,, ^2 v5 j' P& f, t+ T# @
& _3 g: }6 s0 k5 Q9 V6 p
用到工具:; h$ ^4 u% r) }/ T2 n4 |
importrec1.6
5 E: a$ {0 K Y! \: bod
0 `& c- g, c& v$ B# `/ w3 zc32asm
/ b! B+ \" Y3 Yloaderpe; N$ J/ _! T5 h, v3 ?) Z3 n
这里我们简单的介绍下,如何重建输入表
, l" F/ U2 z; {+ F4 l6 C i' ~2 W7 j& t0 L2 j# p
首先吧文件拖入od,打开inportrec1.6
" W4 r% O7 ~5 n1 s: n2 ^7 F* j3 Z3 ~( ^/ D" s( g
如图 选择拖入od的程序,
: O F, I& |: L- C 8 ]9 E9 K' M; n; ?6 i
) Y5 Q" O( E F9 J这个时候,我们打开loaderpe, F+ n x- u" p1 p9 ] m' M) S
4 m; v" U! S" H2 Z, r拖入我们的木马3 v3 [+ U. L7 c2 ~5 B8 u
. q) Q- r! B9 ]选择目录,
$ |- C( R! F! \: a7 E" o8 C
H. n" O( w8 H8 w f" E5 u! _我们看到导入表这里。。。
+ T1 G9 T; W; L4 b
* F# ^ e( D9 p如图:
$ k- |7 r2 o3 P5 U* W" I 8 [% f j! ?8 V. a
8 I- |5 _ i" E' Y4 B3 c5 ~RVA地址是0001D000 大小是0000154C
( Q8 o' v! f Q# Z
# L0 P4 o$ {1 w好的,我们把这两个输入到import1.6里去; x. O! r6 `5 S
: p' Q- L4 n( L就是在“加载树文件”那上面一点
) D# X" {$ u% A5 z' B! ` x: s" n' K
输入RVA的地址和大小。
" @6 H# c" a% U: b! m; W6 E' f# H
点击“获得输入表”
: @: p+ W) u1 ~" m' n' S! |! d9 g% w
+ H4 L1 }$ a5 y! v3 ?然后点击“显示无效的”
/ k: T3 c* R: l' W; I
7 R. l( p+ `: X# } e( S接着importrec会自动列出
0 s6 O8 k' f+ e( ~1 F, D' D2 A; C1 w" H2 i, \ N h
我们把深蓝色的字体 右键 剪切无效的指针
0 I* }) @! r# c' N4 V$ Q9 `7 ~" s+ R1 I2 A/ ?& F' G7 f0 R
1 |5 Z1 W* J) E5 i- N最后,我们点“修理dump”
) M& }' c. T" y7 t4 W5 V; N9 I" p( ?% Z- \. h
选中我们的木马就可以了
3 u0 X7 K& F+ a5 _& P9 {0 J' }8 w) C: d) I2 ?8 Y, q+ q4 h4 _
最后我们要用到c32asm
, A* I6 M7 z1 a2 J Q, i2 @" ^: A9 g1 K' R$ ]& s6 Q
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。( }# H& X+ [& n% D4 x
$ I/ ~1 e0 i+ g, N
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话) E) t5 W! m- y0 I. R' E, S' N; v
# u& ~& k8 x6 Z5 |" A6 G* h这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
: G# L Y7 o! @+ Z! d
. M/ h) A* T* @8 I3 k- U我们把马子拖入od的以后,打开了importrec1.6
4 j1 N8 X/ {3 I
) ]9 {$ j% g2 h, V4 _在选项那里,选择根据序数建造输入表和创建新的IAT2 d& v' n8 C: F W* o$ U
* h- r' r% I D! f如图
( D! F0 l, ]' i3 i1 I# q s5 z# P3 e
* Y6 p- l: s! s# }4 M1 t7 u8 t/ S* s
D+ i9 @9 [7 B. Y' Y F) v9 c3 h. w以后的步骤照上面的方法继续就可以了0 _- [7 R& p" D+ j: E& X! L
6 ?7 v" ~! Y7 j- T
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了* C5 S/ e4 w$ a" H& h% J4 E
0 g" E& t- \+ \2 w: D/ B因为kernel32.dll的大小不一样。
+ N2 [- L) F" M9 B9 F' O- H) P) d
8 } _2 A5 x1 ]' }0 A3.修改originalfirstthunk
1 e5 [, J V2 u6 D$ A. O6 L
% W; X( W0 ~/ E/ Q! ~, b7 @如图所示
# V$ H% n* |1 b; n, a
* ?1 {" Y i5 Z- {* ~& A! N& w8 t3 {8 J6 J4 C9 O# o. z/ O* V6 Q
我们打开loaderpe,依次点 目录--导入表(后面那个横线)
+ y3 S, k! |! ]4 t0 {
7 {" e5 W1 D& P9 q8 J! Q我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll8 A5 p1 b* @5 }- S6 @* e( o7 U) `
8 t: P3 b, K% w* L+ K" J我们右键--编辑--把函数后两个00修改为FF
6 H1 G& v/ l0 h: Q( L( U. a) P& B3 r
这样可以过小红伞查杀。 虽然会出现错误提示
8 _5 Y8 D0 Z( G0 U9 M
3 T l9 R; m. c- K+ ~但是不影响木马的功能,不影响上线。; L2 O- X* A# ?( }' i- v, U% Z
z! D7 w( x" P4.dll后面加20 90法过卡巴查杀
7 u9 p3 U5 U8 @8 d$ Q8 N
4 r2 [- d! i" T! o3 l1 b需要的只是一个c32asm而已,非常简单但却非常有效/ {. Y4 r3 k7 G+ D* B; [. P' p
* W$ N, r$ t D2 A* @
如图# `% N3 w G/ D6 w% D l, O
# }: J: ]) {4 I

7 D' i! B: u9 f0 C# J* U
5 a# `% \% Q7 j; U我们可以看到,
; B, f Q2 b. U& A2 E, v5 u5 N' _1 S5 h' F% K
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90
+ A( u( w* \! b0 L) S: [& f4 g% ^6 l6 C F+ i5 v
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
! A7 f0 `3 A( j' A" f& v; o
+ F9 p' r* b- j1 f# ]5 {0 F我们只需要在他的所属dll后面加个20 90就可以了
" \% p- e+ @6 ]& O8 B- @# t
1 O7 u7 n; ^0 D; A8 t2 @卡巴目前还不查杀此免杀方法
% ]6 v- H P, O/ Z& k- E$ u
- Y4 T3 S/ U* Z. }, t6 l7 {6 s+ h; }* u$ h6 h( S
唧唧歪歪这么多,打字有点累了! d; L- G2 c7 K- O( O9 ]% q
; f5 D y) f& E以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
0 S- i3 Q Z5 R: y- E% K& A% n% ?% v5 x
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|