  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,
' q% n& A/ G7 a) G' M& V$ C" U* S$ c7 ^ s4 @0 K3 Y' n% j' R3 @
特拿来分享给大家。
) Z2 a, q4 @- _1 y' d1 j8 T& a8 u8 H2 ^5 l# t0 M* j
今天我们不提我们国产的那些杀软,真的垃圾的要死,
# g. Q% l* G5 V8 c
2 p8 |) [! |/ G7 Y8 m2 i上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表% p. T L. `5 a& `7 L
9 L, e1 A2 R& J- i' l" z- M
我简单的重建了输入表就把瑞星搞定了,, V, O* n5 k @" T
; k1 ^* U5 r4 ]失去信心了。我曰
2 i: j) ^- Z% N. b! c) \+ x$ P' S3 B7 P: i Y& b
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。. y+ Y: b2 K! a1 F5 N2 L+ T/ n$ [
G' R$ m% h& _& I D4 ?& x+ w
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
$ N: O T: b& a
( P7 m9 }1 H. \* ?5 P' S8 Q: |" h% U外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。1 u$ I9 g. ^8 o& k7 ] H6 h
0 W! f9 t& R ]
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
7 @1 T0 A/ U" m) w/ ?3 U+ F7 K; x0 B) d7 U, R
过了以后再调到最高,再做免杀。" V7 h" Z6 Q& i/ s6 C3 P6 ~
: @! b- h# G# ]$ J) \以上是废话,/ y: c) Q/ n9 {% Y% Z7 a
( F, I; z. R- i; k好了,下面我们来说下常见的免杀输入表方法。
5 n) L" |1 S( T9 D- _' g( m
# `. j: V" U4 Z3 q) P" n一。移位法% z v( B w, g" V+ w% s" E
& @5 ]& b/ ?5 r. ?. V这个已经过时了,我们的国产杀软及时的跟上了时代,/ G) U2 {" N$ X6 Y' h/ t, ~4 S
3 J+ n3 |6 s! y6 w1 x3 |9 m7 { l* G移位法在去年过金山和瑞星,还有江民都是可以过的,
& s0 ^: k# O; f+ D0 ~ W
6 Q' ^5 Y* P( w/ x现在的杀软智能化了,移位么?呵呵 ,追杀你。# X5 {" [5 R$ T1 Y0 q, T$ `. [
$ |. M7 T$ z8 E! h& @" e
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。) f" T( t) n0 ^' `- m. O4 v: ^
& J3 O) {$ j/ y9 {+ j, b二,重建输入表, ~0 i7 u# {9 `' K9 V, E
& {* N. x) @! w, }9 [8 j效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
! |; ]& k% I! Y: Y, S+ ^
& J( N, \" q0 {$ m0 F这里我介绍下,
: j" C2 [: n* I/ u6 `7 y; s% x7 @- ~: f7 f3 ~
用到工具:) X& t$ `- t4 \
importrec1.6
/ N0 k3 O. P+ rod3 ~2 k, q, u2 T* b
c32asm
( y: N; U8 E& d! {loaderpe
% h7 b; X7 T4 N这里我们简单的介绍下,如何重建输入表
9 q' {' Q- [/ d6 z/ B% ?" k4 U, I `+ A8 P% i
首先吧文件拖入od,打开inportrec1.61 H; \ i/ X# R1 _" }( v
2 ?3 T" o( h) S) A如图 选择拖入od的程序,4 I2 z5 X9 N, E5 [+ J4 v- e' U
* }0 Z! M! x- [
$ g8 r; j" ]* f; P2 G/ R. Z8 B
这个时候,我们打开loaderpe,
0 A4 a0 {, s6 \ R1 b, X7 v
% B( Q* Y% f- l0 H W# E9 ]: i拖入我们的木马
' ~0 k8 a x7 ?3 F" @ u; n& |1 Z/ E# n: k- C7 F7 q9 o/ K i& T
选择目录,
0 V6 P+ k `. j/ q: F
, S. D2 f& B6 U* r9 w$ r# z我们看到导入表这里。。。% {! L, I. P& h _! |7 E5 `
2 s$ c% P2 |* q如图:
/ S, P) h x& n2 p2 p% b7 u. }9 f
" i" k/ `" a+ Y C
( J" l! A, @0 D$ w- l# q2 t4 nRVA地址是0001D000 大小是0000154C
3 A: X# o3 r, i* f. I
4 x8 a2 ` S: q9 z' z2 M好的,我们把这两个输入到import1.6里去( }1 a# T. a$ g
, P! L( Y& J9 c0 _
就是在“加载树文件”那上面一点 * ^. i( S8 g/ V! J* y H% @
" ~9 ], K/ E! C# d
输入RVA的地址和大小。! Q8 F2 `) W* C, Z i
: G" s" _' |( F: z; _点击“获得输入表”" ?' P) K/ V+ R5 b
, [7 V) ~2 e2 `3 b然后点击“显示无效的”, A7 L9 G M) K: H; S! a
4 m4 l# A# i. A接着importrec会自动列出% d. R3 T4 n) d* o
- d6 [7 V# w5 {3 X8 r' ^1 j
我们把深蓝色的字体 右键 剪切无效的指针
' A! c: ^: E' q0 Z5 A* I- y' [: b
- t c7 a/ K9 T
B9 E) ~# l% {5 j5 M7 j% `( Y' a4 C最后,我们点“修理dump”0 p3 o: G+ @7 f# z; A7 k4 P
$ p" i/ E( q, M) x, Q0 x; E" ?4 p选中我们的木马就可以了
, _! M9 f' ~0 ^, ^5 @+ b1 d( P
! |. W$ w' ?2 ]( x! q最后我们要用到c32asm
' ]6 t/ h9 S; M3 A, w& g
# t7 I. X1 S' t5 ^我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
/ g) Y) W1 M# O9 h$ r" m% a5 S" ]$ x s
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)( a( ^/ X+ R3 V7 u
|2 O0 I3 n- \1 J r& B' e# f这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,4 t6 J" s/ g9 N9 k5 r# r0 D
4 B j- f1 B2 i. O: ]
我们把马子拖入od的以后,打开了importrec1.6
u6 G L4 H8 K6 t; u& [! u3 H. k, B5 D
在选项那里,选择根据序数建造输入表和创建新的IAT- c; [- R# e: {& |3 O" N
5 D. X2 `* m" U: |$ v
如图
. s! ~5 G0 F, T9 O. i
( t- J" [2 L, Y$ T6 S
7 g+ B6 B! [: m5 C0 ?3 S以后的步骤照上面的方法继续就可以了0 J! Z0 V$ l. c* x. R
; w. `, @4 C+ o% R不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了: f9 j& }& k- Y' \4 Z
4 |# }+ O- v6 M Y8 a$ v& B2 I7 k因为kernel32.dll的大小不一样。
/ m/ l: x2 _6 H; G3 {& b/ w0 h% ^& v2 [1 x) I7 z* d
3.修改originalfirstthunk9 [9 [8 H; V1 {+ ?9 S% u
. L _& @7 {+ X' v+ @如图所示7 R# e x- n; X

5 ]/ U, V5 A3 L. b) X6 ~7 O, ~) {
我们打开loaderpe,依次点 目录--导入表(后面那个横线)
* b* ~* a5 @0 R4 l
; L |7 G: {% C$ _4 p; F, ]我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll B8 X+ o) M5 m* d6 p4 t! o
5 p1 U8 Q, Z: Z我们右键--编辑--把函数后两个00修改为FF8 p6 Y3 E4 H* x1 S1 S$ ~* `
. }4 o3 l+ D! F5 ]
这样可以过小红伞查杀。 虽然会出现错误提示
2 j# l1 R' q6 y9 |
! a& y0 z l* W) r! y7 C但是不影响木马的功能,不影响上线。
5 A3 r) e( m# g0 w; S! W4 ?% y1 q. c- T
4.dll后面加20 90法过卡巴查杀4 R( \3 M {/ g8 b1 U
. l& l& j1 H A! P6 i1 K" B需要的只是一个c32asm而已,非常简单但却非常有效8 a: f' m9 G9 ?, g
1 y: i7 X% [" v如图
+ n* C! L# ]' }0 h f! @$ V) `$ N: R! p# X' N6 v0 F) s
: w7 f/ o# r X' @5 k5 @5 H' o* z7 q
( `' l+ T$ M0 d- v$ s我们可以看到,
& a1 ?. D" [9 { {; U. k0 I+ s# U8 g @1 j* x2 @( R! c. A4 `
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90
( M: `- @5 e! Y; ^" g& Z9 \2 i( {4 w3 U; X
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection- u& m6 R, \) _2 T
. n) p- M5 Y. ?3 V- l# s/ v我们只需要在他的所属dll后面加个20 90就可以了
+ Q( Z6 p3 {* A- `) _4 S
, x4 T% x# T/ N5 Y9 x卡巴目前还不查杀此免杀方法
3 M; J9 K: w4 x V8 N
( C$ W2 }+ Q, d' C4 }7 h& N3 o' k: o: `! F8 o
唧唧歪歪这么多,打字有点累了
( G8 E; ~# _- Y) a) r8 m m$ k9 j5 {, ?4 [& J' F' _
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
5 O6 r1 F& v7 u* D
! E# z Q( h# U1 U[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|