  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,
! u; G! ~3 ]. B5 [ q8 F! p& R0 _0 O- k3 l+ @) b
特拿来分享给大家。
5 V. k) |1 e7 Z6 H. S) y
% F) F5 m3 d1 a今天我们不提我们国产的那些杀软,真的垃圾的要死,
: M( P/ s7 c5 c( F
; t5 T* r* W6 N/ |& O上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表$ d! Z8 u+ x8 R$ @
* [, k# W& X' w, j, z ]# `
我简单的重建了输入表就把瑞星搞定了, z2 `7 d6 }0 h
$ i* g+ ~" _0 \4 H
失去信心了。我曰* _5 g9 k; i$ X
7 }/ \7 b6 T$ m今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。; B: L* ?+ a3 R; R- d* _( z; l4 o
8 z% ?* h. D8 o: g
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
7 @0 h$ o+ C3 w2 [7 d3 z( m$ d3 q/ S& v7 `' K4 R
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。/ h1 _) R( f+ o% M- |
/ U k1 c6 a) q
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
: c8 k# Z/ [/ z# r5 p3 `( e
: t1 v; p8 z' d! A H过了以后再调到最高,再做免杀。 j( p1 d$ R+ |" e
$ s: S/ m" y- i9 g% J
以上是废话,
/ p q. z% K3 r1 N' k5 c- _9 d
7 A/ N) S3 [" A$ J5 z* o好了,下面我们来说下常见的免杀输入表方法。7 d9 b$ z- r+ t5 I+ O q! l; Y
2 e3 i( @3 u) O# q U一。移位法0 p) O0 k' ?6 S0 E2 B
/ o. W6 s1 M" X# y2 C这个已经过时了,我们的国产杀软及时的跟上了时代,
; y8 n, U3 W/ ^( L- W" p* e/ o* S6 X+ l$ d& M
移位法在去年过金山和瑞星,还有江民都是可以过的,
, n% @4 d8 u, K+ ]( |8 P5 Q: S" f2 J, f6 G, T, n
现在的杀软智能化了,移位么?呵呵 ,追杀你。' S6 _: i; s) o6 E% T) {
" _/ x3 B8 q5 @; j2 |如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
# N1 i* h# V' a% I: f& r- X! D. l* r
: Y4 q( u' ]- U: O: h7 k: L二,重建输入表8 E5 k) h8 q. `) D3 ]
/ X w: ^5 J- @2 K7 _1 p! ?
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
9 v9 z- ` b( u6 M) g( F) @8 E1 q% Z: l( Z" g# x+ H/ q5 v
这里我介绍下,
) @8 F1 B5 \/ O
9 e; a! \# j# D3 w) E: V" d8 F8 r用到工具:; _0 l. ]& ^* R! P1 I; a
importrec1.67 S4 o& L. A! K( T
od: O) V; }! `- e6 z
c32asm
, `) F: d, w! C8 U( mloaderpe7 U" K1 k. s% F( a4 B. f
这里我们简单的介绍下,如何重建输入表
6 y8 E; i9 Q0 L5 g5 J; ?
6 V$ `! T1 U2 w6 u! S首先吧文件拖入od,打开inportrec1.66 U" J* T9 u8 S3 |) i% J
1 y" X5 q6 T8 z" s
如图 选择拖入od的程序,5 e4 Q6 H: P) k) j6 K/ ^0 z7 N
$ M5 W, g) n, K p, F9 I5 ^& ^6 W
% |* W: p; L0 W @这个时候,我们打开loaderpe,
7 ]; b, c7 E, Y' V
, }* t6 _4 B7 D拖入我们的木马
6 k+ p- `" z) \6 S H' B& w4 J6 N2 N0 O+ B3 G8 c8 J x+ s
选择目录,/ |% S0 ]# i- Z0 r5 B# ]1 f
5 g6 F1 W* D6 y. H' }( j) C- Q
我们看到导入表这里。。。, u3 \4 B0 d' G8 G; g
- M- ?/ _8 R. t! k如图:7 U$ O2 V+ _' Z# S5 V% h2 K$ V
$ o7 y7 k: A( B7 K A; X* Z
. e# f1 H9 q& r9 @2 b$ w6 T& IRVA地址是0001D000 大小是0000154C
1 U) A( }* j: ~- s( }% L% Q" ^( T' y3 D4 y( w. c
好的,我们把这两个输入到import1.6里去
# V/ P3 X+ d/ L) @# [# M' f; n4 m; \5 b# G( ~
就是在“加载树文件”那上面一点
9 _* `9 f7 ]* V/ P- x' Q5 @: f
+ [. m N5 B6 _. w输入RVA的地址和大小。
( G7 t* Y9 J- U* h* D+ p+ g. U
7 s7 g" Y0 N E j点击“获得输入表”
2 _3 c$ @& m# @1 c4 r* ~ ?! ^
然后点击“显示无效的”5 H% |" T" a& c3 {. L$ c
1 S: u) Z/ B5 ?5 w+ r接着importrec会自动列出9 ~: _, V' |; n
0 ]& V* `+ v: u9 b
我们把深蓝色的字体 右键 剪切无效的指针
% |/ o% l* a, `4 D7 C
. @ @3 y$ x' \7 u" `& y2 V, |# d4 |& V8 T
最后,我们点“修理dump”
' \; v' _8 ?0 j/ E
. F9 p+ k+ F+ ]& N5 } {9 v选中我们的木马就可以了
. ` @1 Q! T& n3 I3 E, w, W: M. `- h6 k/ t% b' [" B+ q6 D U' h
最后我们要用到c32asm
# x6 L$ Y( b2 }0 `. D! f* R3 I
% ^% e3 k, c* p1 \我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。0 G' h& I7 e; Q, U/ O+ y% G+ y
9 g7 }8 h- N# a这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话), P5 P" M% R5 [$ L- S$ H/ Z
% d0 E6 }6 H B6 A9 i/ O" P5 D这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,- G4 G) k" y/ i+ G
# Y7 ~3 f4 w* R我们把马子拖入od的以后,打开了importrec1.6: R' j( k: N; V: L- w, _. C. b& \
* s: c# \2 l- D$ p
在选项那里,选择根据序数建造输入表和创建新的IAT
4 k# m( m6 p6 G; ]8 }+ e( t" e9 p% E0 N$ k" Q, ^0 |9 t1 H; `
如图
9 w' g9 y5 m/ f: h! x" o
1 w5 A6 |+ h& I5 `9 ]6 |1 d7 s& o. z
以后的步骤照上面的方法继续就可以了6 C* P" B' D& a* z X2 o
& _6 n% A5 m. y9 [& x8 a9 d" p
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了( H3 y% q& w# `) R
8 @4 @" k# G8 B! S9 }% V因为kernel32.dll的大小不一样。
; ^) |) r2 C2 [( A, f# C. ~: ~
0 _& Q8 W3 R) |3.修改originalfirstthunk4 \% u# o. R X. ~+ p7 A
/ ^3 l: f" g5 M. H如图所示* i4 i& ]+ @. [" x. q4 D0 h: V

) D" @; }9 P* @# m+ Q$ c# @- [
" T, X; ~9 K0 S6 v* m7 v0 c我们打开loaderpe,依次点 目录--导入表(后面那个横线)5 R& n$ E4 c/ D
! \7 J' e& Z/ b' B. y我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll/ F# x, F8 D) }/ o% W
- U! M4 i' @7 n5 O8 g; Z& P我们右键--编辑--把函数后两个00修改为FF# z' N, z( K9 y: D. N! a: ?, I
+ \5 {$ L' A5 V V9 s9 r+ q
这样可以过小红伞查杀。 虽然会出现错误提示7 B, ]" G4 H4 n1 |- y
. G% v s: I1 C$ Z- d
但是不影响木马的功能,不影响上线。( V7 p0 r. c1 }5 X8 H
, ?3 t4 W8 m/ `. a; u4.dll后面加20 90法过卡巴查杀
& U; G v! p7 ^
+ h5 F D2 |- U需要的只是一个c32asm而已,非常简单但却非常有效0 F8 I: y% J7 H$ ^
) ?& W% B2 K' P' v. z9 ]* a9 L5 M
如图1 x/ J1 r2 Y3 w+ o$ p# X/ K, ?
% n+ C) C, {, u3 r0 |# i - D9 R, Z& J" L, L2 g, C% L
% Z, e6 n4 m" M% v- \& z我们可以看到,
' {8 a. F' `/ _$ C# ]2 ]* S, j3 T% [' y, `- [/ }) H
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 905 `; e, I) y" {2 A; ^- o3 m& |
- R6 Z4 N8 T! C这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection# H! a0 g; z" y- ]+ R" K: S! L
- E% J# @/ u; E: q5 R+ A, `9 u
我们只需要在他的所属dll后面加个20 90就可以了
h9 ~: @" Z/ Z) @$ f! _4 F2 D; L" S
& ?+ N( V) r- q7 B- `4 N* j( A卡巴目前还不查杀此免杀方法9 w @% x5 r& p m' v1 P
: |9 h& Y, @- ^! H2 [% ^7 u
, W& F1 F* Y1 `3 k0 t& Y唧唧歪歪这么多,打字有点累了
* S, Q2 ]; p0 B+ ?" E& p( O/ R9 u. K6 ~9 g8 S/ O( U; H% O1 u
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。2 V, T0 E8 S/ w2 m( A% s2 T" Y0 p
1 c+ N* m& b. ]4 t- K, Z
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|