- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
|
最近和一位木马免杀牛人交流,感觉新增进不少,
+ U/ n: k X6 o2 ]& [" y) M2 [$ [' |9 V
特拿来分享给大家。
* |1 S0 g2 |6 E- A
g8 m3 C c2 u9 S8 |9 \/ m& p0 n今天我们不提我们国产的那些杀软,真的垃圾的要死,( m1 |& w/ R$ V7 g+ ~5 c2 L
. h+ Q% I4 o1 d上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表, k* \: C( @, `
; J' I! x% M! p! v
我简单的重建了输入表就把瑞星搞定了,
5 s$ A! i* x- G9 S* a' N! X# j! N( u. K, v8 H
失去信心了。我曰
! K: c" j: ^* H y5 l" A% R6 V) C& H0 g2 p/ l/ J( P$ D; h
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。, D6 U3 o1 K2 N: o" N8 B6 s
( d. j9 A4 Y' X+ K( m1 J: |首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。7 B+ |3 O+ T5 b. F- M5 D9 e* j
7 f9 M1 `: L6 t2 }外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。* R5 |" f; l* O9 l; P3 z; T3 v
$ p c o! Y+ e2 Q高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
/ e P! O7 _6 [9 ^. c" ~( g$ N r. G& h8 ~$ [1 T: { ?8 w# _
过了以后再调到最高,再做免杀。
+ T" U+ X+ f$ `7 N# s) j9 o- b! r0 e0 q) t- P9 j
以上是废话,
* K' e6 V/ ^- @* W# N' l( I
0 x3 D: W: S3 | F4 B: q& J好了,下面我们来说下常见的免杀输入表方法。
% N& R$ K; }9 S9 Q) J1 q$ b. i
一。移位法8 O1 z- N U% X# W6 u3 C( ~0 o
( L" M- v' v U. A. [) p这个已经过时了,我们的国产杀软及时的跟上了时代,
3 d3 x& {6 O4 O8 ^; _
! E5 A4 @4 r, Q( ^# V5 C+ k" A! S移位法在去年过金山和瑞星,还有江民都是可以过的,
- k; y( R5 r2 s) V/ W4 ]# }4 k6 m+ Q
现在的杀软智能化了,移位么?呵呵 ,追杀你。
& i. n9 W; U4 F; V B O1 m$ Y( D' x5 E/ D9 o/ X
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
6 k. l5 k3 I% s" l, l0 a3 X' v; d% X, e1 e0 \0 ^
二,重建输入表/ x. W/ V$ `+ b0 B+ U% X
" i9 m) |, h. J: M3 e效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈2 J, b4 ^0 Q2 B1 k& s( `
% Q! b c. ]8 f. y% c/ X, t: u+ I这里我介绍下,
' u; q& {3 s Y/ r. {# T& _4 m! ~5 n& K0 B- ^
用到工具:
3 |; c" V9 D+ q1 O& Cimportrec1.61 ^- b1 G# Q! l7 z! d
od
) K& L: w( M! m% m Yc32asm
/ s" ~, ^' _# b3 J5 dloaderpe9 `# U: V/ U! C1 F
这里我们简单的介绍下,如何重建输入表
( N5 n; M/ }) \- \' V& @
+ }, E6 j$ o0 Q首先吧文件拖入od,打开inportrec1.6
) f, c: _- |/ M& A1 W0 O, n
/ k* T9 b' v: V4 Z2 Z% o' I0 T如图 选择拖入od的程序,
8 N2 e$ D& {9 X8 r1 c. ^9 T- t% k# u
9 U: u9 f, T) ?+ o
- V) g8 E+ s& j) c/ ?+ L( C0 `, f这个时候,我们打开loaderpe,1 E6 C+ f) @# M+ }3 ^
6 j, ^3 U, Z+ u/ @拖入我们的木马' O7 o, h7 M! @
* z6 O: T7 A0 B3 C/ [. T选择目录,* v1 g" f3 V ]% Z- f
* i3 H5 `9 v6 |# `- p& ?7 R
我们看到导入表这里。。。
0 Z: ~; v1 e" g9 h8 \* X) H$ U4 I( U: n( `
如图:
& N; T1 c z; ~( G8 m/ X2 e, ~6 ~0 J( }! e4 W
* n, V9 g1 Y7 S. y$ Q( }RVA地址是0001D000 大小是0000154C# c' j- n0 X5 l1 K+ U
! q$ ~8 ?& a2 I% \% Z, U) b5 c& {
好的,我们把这两个输入到import1.6里去 c7 W. V! u+ O2 N+ L
, X" Y. U8 c9 |. Z就是在“加载树文件”那上面一点 5 V" }( y: g; |/ J5 S" J6 V( h
) E$ i ~) {$ ]/ H0 `输入RVA的地址和大小。7 K( q @- A. K
. g g- ^! `' R4 M点击“获得输入表”
, R& x* i$ Y+ Y8 K+ [+ D/ Q6 |7 R; t( W1 h3 o! } I
然后点击“显示无效的”8 z$ j" N& e8 [6 P' W
3 F2 E* S0 G; c: q$ E* j1 N/ ? `接着importrec会自动列出+ g' g+ l* l$ U0 _# b
( ]) C+ W0 S, ~+ D
我们把深蓝色的字体 右键 剪切无效的指针
) N, M$ G/ w& R. y8 _! C. R( U) d1 |5 ?& O( b
* F5 \4 ~: B1 _/ J$ c7 ?
最后,我们点“修理dump”
! M( R3 a: F6 B" ~3 l) h4 |4 p/ _" I; u. q+ p2 e
选中我们的木马就可以了
0 n0 }( S+ K) I" }3 ?/ e3 O+ [4 ^: Y/ f( R! l2 O
最后我们要用到c32asm
3 [8 h9 w+ K0 d5 Q
4 x B9 g# J; x# H7 k1 M我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
( F2 H3 q( N% T
" N' d) l }2 y7 r- Z2 V) r这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
- z; L, R0 p Z/ p9 c$ |
7 [& ~& i$ m8 K0 k3 ]这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,# ~: z5 m6 x2 j/ Y j5 ]
* B+ g2 f/ z' i$ c" k
我们把马子拖入od的以后,打开了importrec1.63 i" u, d6 W3 |' _
6 Y; ]+ e) r% l) N' g) E在选项那里,选择根据序数建造输入表和创建新的IAT' S2 e3 w1 _$ L3 _' E
& k/ u) L! I( K- _% U
如图
, C; n- v$ o1 U, G4 T- M; X( E
$ }' n9 S5 H( N. M
3 a0 @! Z. ?% Q3 K以后的步骤照上面的方法继续就可以了
% X/ b3 ?% q. |, {6 @( N8 ~+ _: g: u- q8 g7 `/ O; H' T: k( M- ?
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
! L7 z/ J% H1 f& Q; z" w% l5 V F. K5 ?7 ]
因为kernel32.dll的大小不一样。
5 c O! |7 d4 l. C+ A! s! a! S7 s B
3.修改originalfirstthunk( e# |' D3 ]! l2 M. {8 J
4 _4 P* ~/ j l+ @/ s
如图所示
: K, r5 E: \, H$ _ {" O3 O5 A7 @& r' h
2 v' L2 f, T9 H) S. B* O8 V! ]
G; Y8 ~8 u$ m j) d! d# v我们打开loaderpe,依次点 目录--导入表(后面那个横线)
: B# c v8 P; U p5 I4 T( P3 O% \" g8 L. m. ]4 [3 W$ x n- C2 j
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll) h# k1 K- w( X* P- p, X
; r1 e7 r- N1 e" b8 d/ @
我们右键--编辑--把函数后两个00修改为FF
& S c) }) ~$ `- P! Z2 l: T* E* G( P& U0 T4 }; ^; C/ O1 t7 `) h
这样可以过小红伞查杀。 虽然会出现错误提示! S6 ?( f# c" @3 z
- M- K; ?3 u1 f% I但是不影响木马的功能,不影响上线。
/ \! l; U4 j7 z: x& |
8 T2 y- a: v) u/ N6 _4.dll后面加20 90法过卡巴查杀( O" }8 k x# F4 o
; b3 l" ^7 W1 u6 N- }$ n9 i; F& B需要的只是一个c32asm而已,非常简单但却非常有效, T! s& l9 f- r M
! E% e. @/ x$ p. E1 h M }
如图; Q6 `0 J' v z5 s" y
! m# s3 L$ f! [( b% o; S
& x: M' o& D- P/ H5 u1 ^6 {+ o% b0 X! t I1 n; q
我们可以看到, I/ A( V( O- @8 m: I: v% {0 D
3 [4 o. \0 \) |7 R% W, ^* W
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90" J9 W$ S6 _8 o9 G" T
! A1 y E2 t: r2 {6 ?+ i Q
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection; C9 H3 x r& o* s7 c, _
8 P( G1 X: v3 D" O
我们只需要在他的所属dll后面加个20 90就可以了
/ _+ w. h9 f, J6 R. ^) c6 J% {) \8 o; X, u
卡巴目前还不查杀此免杀方法- Z( y- A' t$ ~- Q- [
% ]( S4 R; `* \) [6 _8 E9 H
$ L3 [ c- ]' @2 Z
唧唧歪歪这么多,打字有点累了
5 E F4 w& Z( N
( I6 m8 R) p' u以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
% u8 B4 U5 ~+ g5 d# {
" v4 n: m+ x. u[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|