|
  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,
% t6 A3 E. {# x' _+ K: D
* W. o& f8 v9 F3 n% \特拿来分享给大家。0 P; |4 n0 O# E
. J# [9 M: ]0 i8 i+ \1 b7 C
今天我们不提我们国产的那些杀软,真的垃圾的要死,5 ~7 z: D' e4 r: g1 ]
9 k$ j0 d/ Y0 e- n2 i9 n
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
$ c5 Y( H) w# {- o8 R% [ Y/ _" p; Z5 H- e ]& e
我简单的重建了输入表就把瑞星搞定了,# v( m9 M. V$ s& V' A" C
, y0 w$ E7 f; M) D2 E+ i7 [
失去信心了。我曰
6 r y5 ^2 b( p& L
1 ?# J4 B; Z4 J; L5 n今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。9 H( M7 Q. h" ~ |
`0 }8 M" H0 k+ m( t$ o首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
, c u! F. C7 P/ ?8 X U# L# ]+ _& n" ~) b% g
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。/ P2 u- W3 n! P' d
& s+ _8 _. |: e" V* O7 Y* A
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低( g7 x# ?2 L; B7 |! U- p0 E: o
0 G8 K- K* z8 R( M ~过了以后再调到最高,再做免杀。
+ z6 {" n* G' H, z& l0 i( h: N* f! l0 A% I. O" E
以上是废话,
7 {$ n. f$ ?9 R1 B" S% |$ N3 K7 d- b2 K; @
好了,下面我们来说下常见的免杀输入表方法。5 ^, c0 S" s* i
, f+ K F7 {' M0 C6 C# b
一。移位法7 e7 |3 q, u+ X( u4 q
7 H4 l; G9 w6 f这个已经过时了,我们的国产杀软及时的跟上了时代,4 r, c9 f: Z- q7 o. v
$ M) t5 r9 ~8 h0 \" w4 ^: k" j) Y
移位法在去年过金山和瑞星,还有江民都是可以过的,
% t/ j9 T1 ~* E0 ?! \9 w* q
8 U8 V: H. N$ U( |2 H1 z& m现在的杀软智能化了,移位么?呵呵 ,追杀你。- |" \, N C- \# T2 f# R. v
7 \; B! |$ s9 e" Q/ p如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
. O2 ~2 T0 Q3 k
3 _* d. `! P1 X' L二,重建输入表6 b/ C8 j8 I8 D
* } V$ v% w& n% ]$ Q% w
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈& i9 R n2 M4 ~ g) u
8 u( m* c, J3 Z0 }
这里我介绍下,4 [' A( H# j/ L
2 U1 j/ ^9 K6 G; y1 v) p7 I用到工具:
7 ?" O& |8 k$ m7 ^! }6 [( eimportrec1.6
K" I. G5 J* tod2 F! O7 ~. e- e Q( c+ h
c32asm
% {! `' r, M; `loaderpe( S9 G7 v j% F
这里我们简单的介绍下,如何重建输入表- X2 r& M; Q" J7 k$ v+ [$ Q
% j6 \/ U C/ r* r: }1 S1 q首先吧文件拖入od,打开inportrec1.6
% X$ u) g7 d, O& A9 |4 t
9 @5 r! A! a0 U如图 选择拖入od的程序,
8 c2 d$ C; R2 I # F7 q- \8 c |2 B' M. b
) W, c G3 s% b/ u2 K ]
这个时候,我们打开loaderpe,
! V; t- b) Q/ {! `& w" u) n! X$ @ h
拖入我们的木马
& R* A7 E* `; X+ Z: P0 q' k9 q0 V+ V0 I+ m: |7 V. W
选择目录,
2 n. j' x, {" T) g1 o
% `9 r/ \+ K3 E0 P4 i8 H我们看到导入表这里。。。$ ^3 u% i2 Y8 h3 z" ~/ S
5 l- u% U: T- O! ~7 ~- x
如图:# S- l) A, A( X8 _; e

9 x# A+ M7 A! v' u; [4 g. H2 M; Q4 I8 k: m
RVA地址是0001D000 大小是0000154C
. u0 X- ?* H6 x% X1 S" e s/ @; @6 C7 ~( I
好的,我们把这两个输入到import1.6里去" g; V( | d5 i6 j* L2 |; K5 W4 F$ H
! ?) u$ `, `' u; T4 A t& u0 m2 h
就是在“加载树文件”那上面一点 ' T. W2 s; g% {0 d
3 N/ B$ L3 }& X. H9 @7 u输入RVA的地址和大小。
, N% s& {7 i/ k. r, c6 c+ n& o# S A+ W. \2 O' g' K3 T# G+ D6 W6 S* H
点击“获得输入表”
* L S4 _! R. x7 O
# n3 ~& F1 z4 @( {- b7 j( _! {然后点击“显示无效的”
1 A; J7 Q" m3 I$ I- `4 {' }( Q* H+ z
接着importrec会自动列出! a0 L/ J( r! D
) a" e" i. {/ i) i2 n7 K. F我们把深蓝色的字体 右键 剪切无效的指针
5 @7 @7 {7 l( a2 D V' j1 M) c1 @' F3 d. D1 G
1 F8 |5 X- t1 K/ g最后,我们点“修理dump”: B& t) t: m- c! m4 b( |
3 X3 w3 E9 B: m0 E4 p
选中我们的木马就可以了
8 r! L2 D% z* O% a! q e
& E9 ?% P& S" M最后我们要用到c32asm* s$ c; _5 T2 V! m9 n
" {2 N$ A. s% R2 ?$ X
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。* x: a, M2 u* A; R' Z" R
( s2 B2 T5 n7 q( D T3 M这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
+ C3 ?& ]+ q; ^. w+ M- ?2 Q. q% Z% j8 W, P7 _$ A
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,4 ]3 I8 S- c. y" K- y E5 a
0 j' k4 P% o: e9 c+ K
我们把马子拖入od的以后,打开了importrec1.6
7 t1 N$ f L0 z( n( Z% i# K
/ ^3 ^0 E9 ]1 g7 A在选项那里,选择根据序数建造输入表和创建新的IAT
+ h) r; O/ N. R4 M* j
( G6 s) O" D% k' J如图
' M! V! ~( ` Y! e( h
* R; M% @. j) |/ `& Q j' d$ |( @$ B7 H* Z; r6 G' k
以后的步骤照上面的方法继续就可以了
) V: @, i' w: Y. S9 f& Y
/ n0 R4 p2 e! v3 s( q不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
6 B6 y5 g6 z4 V) z+ Y* f; c4 I: f
因为kernel32.dll的大小不一样。2 U7 o. V) ~( X9 m
^, U9 f% m$ t( k# I+ C
3.修改originalfirstthunk
1 C+ ^7 u! H0 V. h' i; K; \2 V6 X$ N. J5 K- m: `
如图所示
! {8 h4 @2 ~' [0 t8 c0 k6 B9 X
$ [0 `' K2 {4 Q# V6 G( X1 i) U5 }- Q9 \. b! o9 k$ L( \$ y6 A
我们打开loaderpe,依次点 目录--导入表(后面那个横线)
- N! q2 |! T* @1 Y) K/ R. [, Q- l& Z, N0 x9 {
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll9 n) v& h2 O) m
& B+ y3 I1 p" v2 w/ |" _+ {1 E$ O
我们右键--编辑--把函数后两个00修改为FF( L6 l( V! f: @- [
N* U# r9 B! [* O1 f+ _这样可以过小红伞查杀。 虽然会出现错误提示
! [0 [; q7 T$ r% W# w2 m5 H* L9 h9 _ x% d4 e
但是不影响木马的功能,不影响上线。
. z# c0 a4 T9 q3 e* u& Y0 K
# ^% z/ x9 s: }3 f& \' B4.dll后面加20 90法过卡巴查杀
* c0 R7 B, {& U
6 R2 m: N- }/ m: N* }3 y# N需要的只是一个c32asm而已,非常简单但却非常有效% @" m2 t; o. N0 b! x: [+ o
9 u& T8 P, A. T$ b, {+ R
如图
) s2 n* k( g: j+ U4 S/ w$ A/ s+ ?
3 y a& s* `6 m6 |0 }- X! |
; t$ i( @, ?2 _5 w: L6 a9 R0 t0 l/ q5 c# ]: W# s# ?6 ~
我们可以看到,9 h! I# P& q; y# s2 c6 E
3 B0 N- M7 {- R7 b4 E
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90
& J- f" N, A. a2 @ F& o
4 O+ p- V8 Z# f7 I* r' N这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection$ A6 h% H, W! X+ O+ t& U
9 e4 r# l; T5 _3 F3 f3 I% D& x
我们只需要在他的所属dll后面加个20 90就可以了
- l, v. M: Y" e. F* @6 ]* x7 ~, p- k( A
卡巴目前还不查杀此免杀方法
7 m7 u* p0 {& k/ J" ]% `; h+ F/ y9 a) Q
5 \0 h% c9 F5 F1 Q. N' ~5 E1 c
唧唧歪歪这么多,打字有点累了4 w+ t+ v- z0 h E! H4 F! `0 ~) k
( R$ ]1 y9 ~( V- g6 v8 T以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。3 Q! A* L5 W! _8 {4 \; X
) X) g0 c9 U" b5 `" u( W3 Z
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|