  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,
+ c1 B3 L. ~; U
& W, R; H' x' c* V$ d! R% \9 A特拿来分享给大家。4 u" q% i/ P1 J
( k' A- j2 O/ X0 I5 Z% [- F- u
今天我们不提我们国产的那些杀软,真的垃圾的要死,: k; z4 g1 P" p" |* ?& U4 W3 o
' E% @" R8 K$ q8 D& g' j
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
4 _8 x2 \# e1 k |! G7 r/ H( P) ]$ [
; J, L; h) ]5 r( ?3 h# v( n$ F; Z* u2 {) t我简单的重建了输入表就把瑞星搞定了,
# s, T$ o% {; y' i9 y6 a7 s! L3 U" S; P/ y9 h" R+ f Z/ h
失去信心了。我曰
/ I# w9 k, y u8 }
?% s# M; t6 d- Q9 w今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。( e3 ^' c5 ^( I, D' X% N1 u$ n" Z
& A6 b% M0 n {5 ^. A( S0 F8 S
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。. L. P5 a5 ?7 M6 P
0 f. i( `: d O6 B+ H外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。* E) E& k0 C$ R
- ~" f8 W! |) N e2 Q高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低+ C: Q* r. h" r3 X" L: b9 R
" }6 J0 t% o/ h E$ ]
过了以后再调到最高,再做免杀。
9 `# R4 A, D! K* n7 {4 B' G) m
& q2 w- K& x0 ^& u: |6 A" O以上是废话,' O% Z. c! W7 U9 a& L) X5 }5 J
5 U" O+ a2 V. T- w2 U
好了,下面我们来说下常见的免杀输入表方法。
$ o8 u' ~% G6 ~/ o( C: a6 D
1 M& e: m5 |. @* ~9 w5 q一。移位法
0 Z& J5 C& R2 I0 h4 Y
. ^ l% @2 T. M7 E; B; a1 o% U这个已经过时了,我们的国产杀软及时的跟上了时代,
+ d2 T& k$ V' x- v0 I( Q4 y. E7 x1 K
; v4 x! M# F. e' l0 G% c# @移位法在去年过金山和瑞星,还有江民都是可以过的,
8 ]' O$ q' q% p" T$ _! i u5 V
3 O9 s: U, \0 y4 b8 E6 } z3 ^现在的杀软智能化了,移位么?呵呵 ,追杀你。9 ?: w$ u6 S9 } u) t
7 w+ r, E X$ s
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。$ ^+ ^. a# O5 V6 I. J; D
1 w! j8 V* X3 m& S' V& Y% h二,重建输入表
% H! ?* s! O1 U
" ?9 v3 m8 e) W, ]' e效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈4 b2 \0 N1 e2 i$ Y, Z
3 O- i! H3 L7 g* C: [这里我介绍下,
7 B- `2 c4 t5 p* X6 K
, t- T9 o4 V7 u% c" f/ W用到工具:
7 X7 `- T2 j8 v5 h) Limportrec1.6
; V. F4 D$ ?; X c: ?$ x! P" B0 O* Nod
" V/ A0 [+ Y7 g1 U9 e5 w7 nc32asm# h: n, R, y3 ~) u2 H2 C
loaderpe
. A$ i/ r) n* @" h8 ]. t这里我们简单的介绍下,如何重建输入表$ H; d4 O- u' I' j, L5 }
' q1 s0 n9 @% ~$ b' G首先吧文件拖入od,打开inportrec1.6
. F# T5 d! U' R" h8 X# y) D; |, o3 O- l; ]8 z2 V* ^1 ?* g5 ]1 e
如图 选择拖入od的程序,( v1 l: e3 L- b3 @
0 E1 f; i. d5 j4 T* a
% J! Q0 Y2 s1 f+ L% f: i! G, k
这个时候,我们打开loaderpe,
9 c0 a" }& V. S- |- e
l7 \& c8 p6 ?7 A4 f拖入我们的木马 H; j- w+ B" F, ]
& C2 s, ^4 e% I& L" F' J
选择目录,
7 q! O' y3 J8 ~" d4 N: M6 ]
; x6 S& |. b; }* g$ `4 `8 w我们看到导入表这里。。。3 `, {2 I3 v; O H
- D0 w8 r: p2 P- L( v# j/ y如图:6 K) j' a5 z+ k7 p

, z4 |( o/ |/ r: [7 F/ r! U+ c! B- W3 `- f3 x/ `
RVA地址是0001D000 大小是0000154C
( N4 C m7 i/ y1 G
: e) `) K8 S; ]& m- B+ ]& ^好的,我们把这两个输入到import1.6里去8 p3 y3 E1 j9 Y( ~
$ z+ n7 v: {. ?' y5 l2 M9 Q1 W
就是在“加载树文件”那上面一点
7 e) [7 n# U5 h8 w* ^0 m5 }$ S3 L9 c: q$ `$ s/ \/ w2 Y
输入RVA的地址和大小。
" d* t A) g9 D2 I9 T1 [$ u7 j; O5 @& X; D/ Z+ F |
点击“获得输入表”- w! S; z$ G! [6 n/ }5 T$ h& U
e* F% C3 f2 I然后点击“显示无效的”" d$ W( y6 O' m4 O; I4 k3 ]% P0 q9 i
6 H! D9 s1 ^: P' ]* E/ q7 B: X6 U接着importrec会自动列出
, k _0 S+ n( M0 C+ p7 Y! P' {* p! i: S
我们把深蓝色的字体 右键 剪切无效的指针7 A5 D6 E* L$ U% t1 |+ ^$ @
. ?7 t# o! t o2 g: o/ ~0 ?* {5 f% r% a' i; u! V7 \1 }
最后,我们点“修理dump”
2 G7 o- u U0 b' C# C" {
* E* L4 b, U* w0 N选中我们的木马就可以了
$ M4 L) b+ C. Z: `7 k+ P6 f
! l& f5 z) l/ ` @6 b+ y最后我们要用到c32asm0 J q% B; w: t
% b6 S! G* Y1 F0 a! {# Q: N
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
3 g+ Q$ L* h6 z% c8 B5 |5 z: a
. D/ O4 z) o# v6 G; b9 e这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话); F9 b; O H1 S
. X2 q5 L4 _# _6 j7 ]
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,1 x+ z1 a; W$ K: Z( g h" V
9 ~ ]+ ] E+ B0 c7 X
我们把马子拖入od的以后,打开了importrec1.6
" q0 _9 I% j" U' E6 `* D7 g; y# ?3 l, N, x" c" R8 O
在选项那里,选择根据序数建造输入表和创建新的IAT
* [; K' P* _% X- g7 u# }, @1 V' L1 L5 S: z J
如图8 X( k: Z$ ~& Z2 X

8 a, J+ x8 j/ {0 `# e( {, r- v2 k( F7 v, C3 b
以后的步骤照上面的方法继续就可以了7 ?6 V" h6 Q+ K
9 U R$ z& C9 r7 l' p- \
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
- T/ Z5 H9 n- Z& O- M4 V' p5 A X/ `$ ~0 P& F# j1 ^6 Z1 m7 {( e+ n
因为kernel32.dll的大小不一样。8 B9 o8 s8 s% H- N! d
: Q$ [! X/ T/ T& h. V1 G3.修改originalfirstthunk
R8 s5 t9 ]( Y$ ]7 m2 j
2 G- N+ F; p8 Q& x# h4 l如图所示) e4 B5 v. }/ W. R: q7 e% c
: L% Y9 P; g5 {# z8 b
% N3 p7 m. E" p5 x
我们打开loaderpe,依次点 目录--导入表(后面那个横线)
) c5 z1 _) L. q: _# E J! J) _6 V8 b5 E6 K2 J
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
2 O- O, \' f0 P4 b' R
8 ]: p( J9 _) D2 I5 T我们右键--编辑--把函数后两个00修改为FF1 N! a. N* y6 h; @4 X! e; x8 N. h1 _
: s! x8 j4 g3 F0 Y& s) z这样可以过小红伞查杀。 虽然会出现错误提示$ N# S) N' |4 }" E* t" ~8 s: \
4 x1 L- z. Z/ l3 h$ k
但是不影响木马的功能,不影响上线。$ o& n6 t6 Q/ G$ H1 p
1 g5 d# E% S; l2 R5 K ~, i# O4.dll后面加20 90法过卡巴查杀
/ b& k5 ?1 K! D# e4 k& ?4 ?- K- G+ K' B4 Y' `. F
需要的只是一个c32asm而已,非常简单但却非常有效
/ s% H* H% O+ o" r
6 W& _, |, X, @ N+ f7 P如图
) S' ^2 T4 o" I/ h0 r: j s
8 V8 e. L* T8 X6 o# o1 M 4 L, q" x# o- ]/ @' u% [' p
, f& J, x1 j: b, w4 T, O我们可以看到,
- [1 q2 G7 }' j& V& a: |7 j2 o) W+ I) p0 }
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 900 h$ E4 h/ D6 X* [
; B9 o- n; `$ y5 x/ A
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
& W, ^3 ^6 q# Y2 U ~8 P6 G1 y2 `+ b; L# h
我们只需要在他的所属dll后面加个20 90就可以了4 U- }5 g- d% @* f: |4 @$ a3 X# F
, h- w- F; o/ q" C3 F7 W0 E& c
卡巴目前还不查杀此免杀方法. h# z- ~- ?' i& O/ c6 |
0 m9 `. ~/ T- l" n
1 U$ W; S, @, }1 e$ D唧唧歪歪这么多,打字有点累了* ^" l! l9 C: n
4 Y. e3 u3 k+ s3 h% a+ R; [& y
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。2 q. s* e0 w3 [- ~8 q. `
, r0 t! o7 X% Q$ u- v7 U2 D, H" M[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|