- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
|
最近和一位木马免杀牛人交流,感觉新增进不少,
1 b9 m/ f/ e# B, ~. M
5 {2 d/ b: C- a' _* b/ v G特拿来分享给大家。% J- y( d# R( g: i* J5 i
g* r: T- @% j5 B# X* Z+ ?
今天我们不提我们国产的那些杀软,真的垃圾的要死,
4 H1 F4 o7 W( W6 K5 Q0 h
" x9 ?& c9 p! L+ Z7 V/ G! X4 ?上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表, K f5 [/ r9 |5 O
1 U6 {" r! }7 O$ o
我简单的重建了输入表就把瑞星搞定了,
1 I& d# @& y( B6 _' V- ~. n- {7 T* O, U% z/ x5 t: t! p
失去信心了。我曰6 ?1 l- Y& D) b7 M B7 r7 I2 J8 x
( [: Q- r% ]7 y6 `# q0 I0 C今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
7 P+ A" `7 C* M3 t( u; l; Z; d
. S3 L, _" y2 w7 W4 Y' V首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
! @- d) ?7 M3 L2 p3 W$ G- r4 E: L6 p0 x; [/ q# Q
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。+ c: u$ r. B+ t. s
# ^ m% P2 i S+ _
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
2 l% c7 f8 O' b5 T1 m2 g
2 W7 C2 ]( |# m过了以后再调到最高,再做免杀。
/ Z6 J' F& j$ ^! ~; C- ]$ c
4 M0 D" K @2 D+ L+ @' c Y以上是废话,( m2 ^" t# V2 \; {& e5 s- k7 @
; s& ?. Y" `! a8 i C好了,下面我们来说下常见的免杀输入表方法。" | r/ ?/ _* Y
) `& Y# B/ A7 `" ?一。移位法: _7 r- |8 y. E$ s" X I" O3 n
. ?& K7 x4 s* z( `4 I% ]
这个已经过时了,我们的国产杀软及时的跟上了时代,
' M7 p" A) T! ?) M4 R5 ^
! E1 h) u5 q, r& A! _移位法在去年过金山和瑞星,还有江民都是可以过的,
* w/ m5 {3 {/ O+ a- X( |& [, c; Z: {' \
现在的杀软智能化了,移位么?呵呵 ,追杀你。% m. U- v/ v H8 b- J
% H/ {8 {0 r# ]/ d) q如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
3 e# G% Q. N) o V: u" K
0 E' l s* P/ b ]6 s3 Z二,重建输入表( o! x8 P$ o2 m; B3 g6 E
0 z" Z) I. a8 _: o6 r" r7 b效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈8 H; I+ @0 s+ q* c
$ l s. h' I% r u- o4 w* U6 [
这里我介绍下,0 f! j1 Y9 _- p+ [+ I0 |/ J
g: p3 U" G# J用到工具:, w0 H7 V Q: U# U
importrec1.6
7 O2 Q0 _7 J& [) h7 Q M2 Iod
1 O" H) p- ]2 X3 ^8 y5 O3 p. Cc32asm
4 s1 A3 T6 V6 F0 \+ z, Yloaderpe
}5 q) h/ n, u- W. c+ w3 S! h' V这里我们简单的介绍下,如何重建输入表1 I& ~) N( u* A; g) n1 M
2 k' L6 m+ Q. V+ y
首先吧文件拖入od,打开inportrec1.6
: w* L& g1 s C# `9 p: ?$ b
5 l; n% h6 J ^0 A( i' {( I如图 选择拖入od的程序,; o+ H$ k* H6 F7 y2 b
9 [$ R; D$ q* _$ d5 K% @" |
# ?, V' g* Q9 I* s8 w' }$ E3 X这个时候,我们打开loaderpe,+ J ^& j U9 {( M" D; W2 W
% z a, N8 N; d拖入我们的木马) X$ T( k" Y# q2 }
% ~* R6 W4 o( q& X7 C# \: B4 |* C3 \
选择目录,+ H# {2 ` Y0 \6 g; k5 F8 v
1 V, |( h$ O I( c
我们看到导入表这里。。。3 W$ P/ V1 [) C; E& Q
- H' j8 o3 U6 }" ?如图:9 Z. j7 h7 @4 C, A; i8 o
g4 u: d. o: {* l
6 z( b- o# S$ l$ ERVA地址是0001D000 大小是0000154C
' L' ~* N& B* L( {. I0 O9 C% f% Z! C6 |( R
好的,我们把这两个输入到import1.6里去+ c" W0 U. j* a0 y) t8 ^: |& ?
" P% h8 |7 K/ m% Y+ K- `就是在“加载树文件”那上面一点 + T. }, C( t( s/ V4 Q3 S
4 r3 j8 V1 \0 j3 o7 o9 v$ U! U c输入RVA的地址和大小。
* ]5 z1 e# l: u! o9 o" D5 q" s$ X/ t& l$ U1 }: z: A T
点击“获得输入表”
$ P" U& @2 B I/ N! f! ?% ^) A2 Z$ o
6 @/ x) {: C K7 d然后点击“显示无效的”. o4 N* v) D4 v8 `5 `! |
0 q+ c$ x6 q) Z接着importrec会自动列出% e7 W) J. T2 p$ A- y; F
! V9 \# }% \* ^- B; N6 s* G
我们把深蓝色的字体 右键 剪切无效的指针7 P0 I& A% z6 m0 u$ u
7 m, k, n! M) F0 ]% ]3 A9 F
' T: H7 i6 r1 Z) \# G
最后,我们点“修理dump”
, m/ A% y9 j3 ] V
3 I0 [2 O! a) l! U" V- Q7 O选中我们的木马就可以了
7 z: {) f6 e) L9 k. {7 l3 F- O5 l) B0 O6 T( V
最后我们要用到c32asm
' }% w0 s. [: z" [1 z% D
" \! ^0 ]* S: d我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。4 | n5 l! @* F+ Q0 B- z8 G4 i
' H1 _) N8 X1 B: m1 s8 ~( N
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)5 Q% o6 o* Y) L/ B( C
" q5 C" z& N* k# L6 S这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
* g. a% D; m/ b3 L' \3 f
; t6 ^" {; f4 T5 x) l! P我们把马子拖入od的以后,打开了importrec1.68 L- [; u& W2 V" `
: _) p% I( O" Y在选项那里,选择根据序数建造输入表和创建新的IAT
0 [3 g/ F! }1 J! a: u! K4 n3 o2 N0 {% y5 K
如图 r6 |' H5 h+ M3 H2 j& q
' r9 u) X6 _) E& }9 ?
' p. r; e. N2 e& X0 b0 E2 U, i
以后的步骤照上面的方法继续就可以了
1 Y/ Q/ ]4 ]+ h: p2 m- D8 W0 x# f7 u# R S% j) T
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
; h: l# g, R+ m4 m& p' q/ O& N6 p' F( Z
因为kernel32.dll的大小不一样。, y1 H" N0 |5 l& @8 R# ?" l- W
: V3 I. W% m; C% ^- `: M: _
3.修改originalfirstthunk/ W. G" I( d5 ~2 N8 ~4 o# d2 T
0 ^/ [4 _. }& e' Z3 g) y" O
如图所示
! o' z, F& j, O" w$ o& e+ W4 ?& [0 X$ r) D9 w
1 e' V' o4 K! q( q+ N8 c7 ]
我们打开loaderpe,依次点 目录--导入表(后面那个横线)
0 Z6 I( O2 [- K# r; o# q/ F% M) J, ?
4 _$ n ?$ |3 J: B我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll2 F1 R. B3 }! }* C2 }' b
" q: Z2 v: e2 g2 E' R' \我们右键--编辑--把函数后两个00修改为FF
4 a, H4 |4 l' I* T: W. ?9 n% v' v; T3 d& o# q
这样可以过小红伞查杀。 虽然会出现错误提示! S2 @7 W# h0 H0 e1 l
' \9 a! p) U u2 M) M( i
但是不影响木马的功能,不影响上线。( C2 F2 ` u7 l& M7 F
?2 D- ^9 Y; @0 r |
4.dll后面加20 90法过卡巴查杀
# }7 O3 h t1 K6 f+ n/ ~% A6 } r9 c# p* `8 N/ z1 S: {
需要的只是一个c32asm而已,非常简单但却非常有效
% C& @/ z4 O5 A% b/ ^% v
8 y) B% ]0 D4 S6 C0 B如图
, X+ p* |9 ~" S: J7 e0 N: d" s5 u6 d6 A
% M% ~+ h4 o5 \1 T- l
4 }* ^8 f# _* [) G
我们可以看到,
8 O! _% x R5 p8 f- S( ?
8 E( {4 J- \0 [* ~4 _1 L在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90, c$ ^# ^; Z. p2 P; V
/ Z9 d$ B9 x% R; T" S' `
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
* |2 K$ s; j, M) Y1 C! w/ N8 _3 G' N2 e
我们只需要在他的所属dll后面加个20 90就可以了 |/ h7 I2 p8 }, U0 X4 S
. v6 S% [+ X4 \/ k' @
卡巴目前还不查杀此免杀方法
' A O& y" w9 t- \5 K
4 I: ^% o; p8 h# R1 C k N7 n9 f5 t
唧唧歪歪这么多,打字有点累了
6 ?0 w D* {$ S( A2 |
! E+ `+ H/ ]. G" i以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
% h2 Y0 x9 n. R' z0 u0 D+ Y8 `+ W0 \$ y/ j4 L. B I
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|