  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,
8 Y4 ]1 t+ H1 Z% m. i
# s; n, @4 R! \+ G3 t特拿来分享给大家。
$ V( _ S* B6 g' m1 F/ R" @" r: i/ L4 ^- E* x! n, Q N
今天我们不提我们国产的那些杀软,真的垃圾的要死,
0 ^% I6 F9 C1 H9 ^* r# m4 K3 x0 o4 ~! h) |3 M! a% y2 F
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
1 z' P. z% H$ l& @6 }9 ~. j, {. c& u1 M' }) f6 S
我简单的重建了输入表就把瑞星搞定了,- p! J# i8 Y$ `! X
% v0 l6 A3 {% r
失去信心了。我曰
: L8 l; ^5 U8 V7 _% {, j: n
! p; Q$ z& l6 Y1 K6 p今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。( B/ v3 t* H1 \: Q0 ^5 I( k" w4 x
8 a8 H, e% |% n0 p* Q B首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
/ t+ y; |! }; { d8 |- d3 H
' w2 }+ T2 \ ?2 m外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
/ w1 @: U# k: D5 h. _( }, h: ?; w, x2 E
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
) y1 I6 H% q8 H6 d) N' [+ W1 K! b' k) t4 i, E
过了以后再调到最高,再做免杀。: v3 T7 O* |- c) N! l) Y
! e @4 W) ~7 y- X( [
以上是废话,
5 g. o4 o& u4 H* K5 e+ a- X2 I. D- p
6 \( i" }2 V m# b' W好了,下面我们来说下常见的免杀输入表方法。6 g' }; F3 z* g
/ W0 P/ @" m4 q, m/ z4 t
一。移位法
$ j7 |4 O0 i; A$ t& N; `1 K3 q/ s# d: w, J- p* Q
这个已经过时了,我们的国产杀软及时的跟上了时代,
* _) J: l# f- j9 Q, P. \* {: Q, Q$ g7 J: X7 E+ ^8 N5 |
移位法在去年过金山和瑞星,还有江民都是可以过的,1 P6 f3 ?8 |6 j! Z5 O
# e# A& h+ L4 z+ r# D" r现在的杀软智能化了,移位么?呵呵 ,追杀你。
, k _+ O0 S3 [, ?
0 b" y, N/ `( P2 j+ v; ^如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
7 h A8 \1 j1 P0 B! k! m. ?- j N) ]9 F, S
二,重建输入表- R0 P/ u2 \3 ]0 n, [9 h
8 t% Q! [1 v$ @: r. V
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
6 l8 v9 c5 U0 Y" S* K) f- U9 @$ Z2 j& _# F/ U3 T
这里我介绍下,
# h: C" P9 f/ ]$ f
4 H5 |& t% q; v* Q( l8 c用到工具:
/ Z' k& l5 d. t7 ?1 cimportrec1.6
9 V! X' D* p6 T/ }od
' j) Z3 O! c" }2 q# `0 gc32asm4 D! O5 m0 w9 u: ~" U2 @9 x
loaderpe
b# C1 _$ {! f, \这里我们简单的介绍下,如何重建输入表/ C G3 z; G! j1 w( z# ]
3 u+ G3 M+ ~) V1 D1 G: A. l9 }首先吧文件拖入od,打开inportrec1.66 Y6 C1 V# f; {8 C
5 a Z- J/ ]7 o+ Q$ |# i5 b# [如图 选择拖入od的程序,' |2 t1 |: _* E: z# L4 d

' Q, T- [9 f! Z- J0 v
% z. v6 B' V% V m9 e这个时候,我们打开loaderpe,& e- h9 q) u% S1 X4 A6 g
! B. @, A3 s) L) k( u4 a5 A拖入我们的木马5 ?7 R8 q4 E9 m: T$ T7 r
2 q9 o$ Y: b. }0 q& p/ F/ u
选择目录,5 I6 s1 b5 v' Q$ W$ H4 A
0 d5 j8 e% v c! P) \
我们看到导入表这里。。。
3 T" C7 R# u% _" c' x# l+ z( Z
0 G2 U0 l! q/ r) h0 u! {; |& \1 ]如图:
& Z9 \# ]% j5 ]; }1 m. } 0 P3 h% i0 ^; b3 M
# `+ R; w/ j8 B# S- N7 [- zRVA地址是0001D000 大小是0000154C
* e$ t8 T) X: ^' \" R# p% d o# n) u8 }- z: p+ Z1 m
好的,我们把这两个输入到import1.6里去& f2 x/ z& {" b$ r8 S! X
: I' Y$ v" S; Y; u# r& M/ d
就是在“加载树文件”那上面一点 `/ p- y' Q2 a) F
* C: |- S% }! ~9 {8 m/ G1 j输入RVA的地址和大小。! d% L! w% s( y* Z5 W0 M
* l; W6 Y8 G+ J6 J4 _! y& C, H点击“获得输入表”! j' m, T3 t. R9 x5 e+ v5 I
$ `% e& ?& {& C
然后点击“显示无效的”3 D0 E" Y/ O6 h
# e. y9 i$ F0 \接着importrec会自动列出3 f9 a( `# Z. T% E" s: x
& v% r- m6 F! ~4 K! Q: E' f
我们把深蓝色的字体 右键 剪切无效的指针( P f" y8 S9 H* u- v( P$ c6 _
; T3 a, }: O" M% F# G
9 b/ u' y9 L: v# m$ t
最后,我们点“修理dump”1 D( d6 j! P& E8 Y! [' h4 P
c& g; w0 P9 d8 Q1 s$ {* S
选中我们的木马就可以了
" k$ R7 [9 W$ z1 U) M
: |, `7 B) U* ^, q. ^6 `( f6 A最后我们要用到c32asm; t) l- z$ F: {( c
1 b, h% u o k5 E8 w) n& W% |4 x
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
& d6 f+ X* \7 j% d( u( \1 ^* \5 e& H4 t! i! @
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
& A' l! x& U# W
0 u3 m4 z5 Q8 Q9 _! z这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,' z$ F) { U0 n2 M
% |" A2 E. g9 P8 F) C我们把马子拖入od的以后,打开了importrec1.6
% z1 u8 k5 J" {) o# S/ T4 r
/ `! w) ~: p& T0 p2 h" I在选项那里,选择根据序数建造输入表和创建新的IAT, S' P$ u+ r1 ]4 j5 p4 U0 ~4 U
2 d0 Y4 D/ n7 q) G9 S2 ?
如图0 I/ k) b" A6 z6 Z7 O1 V# ]
( u% W) b( y! f# b. D. F) P/ h- |+ T* d
+ p; \ w, ]) \5 l- W以后的步骤照上面的方法继续就可以了
J+ p$ v0 T' a3 t& A5 r0 ^3 B% l7 y
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了( {/ J- t" S C2 U6 `. B% u
9 q) E" S8 M, S) U( j: l8 _- [6 o1 B因为kernel32.dll的大小不一样。2 A2 v& y/ \+ u, ^& F+ d( h
, q y8 |. q. B" K: g# g3.修改originalfirstthunk# q, k4 t' q2 u N: O( Q5 l
( u' D3 u U7 S$ Q如图所示
. b w1 N4 F5 D5 a9 S0 @
: n" t# }% L. q- o1 o# ~
+ u; |- I u- i# z: U: o& K7 ~# z我们打开loaderpe,依次点 目录--导入表(后面那个横线)( }, ^9 e8 ?2 k( [" g6 v
. H# Y% }$ z; z. b' t3 Q8 O& f! A我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
' d1 ?. V: T. l- r2 g. e( v3 b1 y
# \& C* V2 [7 b" h我们右键--编辑--把函数后两个00修改为FF
# n' j6 ?# v0 R5 ~
5 h* ?* g" ]' n6 |/ b& t% M/ A, w这样可以过小红伞查杀。 虽然会出现错误提示. X* Q3 U1 I* X( s+ t8 O
h, I) {8 f, a4 M6 F; I4 I, X! |
但是不影响木马的功能,不影响上线。
$ @8 c" V0 b2 V1 e. _& c: e+ ?$ V- M c% S
4.dll后面加20 90法过卡巴查杀" W. e9 n7 f* }
& h* w' g' b- h2 _2 [! ^/ ]需要的只是一个c32asm而已,非常简单但却非常有效
" }$ I- [/ ^* @6 U4 X. y8 M6 [1 z+ \5 m
如图" O2 [+ E) W% L1 f+ {8 }; J7 o2 s
& ?5 u+ F+ k: x6 Z
- Q5 m5 S) k- I& Q7 E* t% U7 v$ F; y$ \
我们可以看到,% w2 i8 T" X/ a4 _* r, \, o
: p2 H! L0 R8 p' Y6 F0 n6 B7 n在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90
0 F& t7 A' j5 V9 V/ ~" J
1 b8 s- h2 x/ q% _这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
N9 j; N3 V4 X- Y3 L# l/ J& @+ U5 t/ D+ _8 O( i1 v% s- M
我们只需要在他的所属dll后面加个20 90就可以了
! P, x$ G" P/ u6 S2 B1 D2 m4 O
b, m# \! }$ d+ l4 _+ X卡巴目前还不查杀此免杀方法% R1 K# K# d2 t# M& _" v- {: E
9 B4 y8 N f) d8 M5 `$ o* ?2 D d6 v1 v$ P4 u7 u: ]0 e
唧唧歪歪这么多,打字有点累了
+ x9 ?. E8 t9 ]8 j% @5 z+ r' W t4 `# g. K, f; u$ L
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
' j8 J$ a, c, t
9 I0 o( k/ a, ^[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|