- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
|
最近和一位木马免杀牛人交流,感觉新增进不少, G% c6 n0 a5 g7 v+ Z) R, t# T
+ a2 P) u* r# Z7 J特拿来分享给大家。
5 X9 |& f! Q- y5 q% I7 o2 H0 ]3 J' [# s* E0 x
今天我们不提我们国产的那些杀软,真的垃圾的要死,6 X$ s+ W1 K- l* H: O
4 N) D' S! u4 `5 H上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表' v2 l! a) s; z, Y6 p7 u0 X
& ?2 Z% }' i# ]) c2 \5 d3 X! ~- P
我简单的重建了输入表就把瑞星搞定了, D, K6 t( C- `: d" L( \5 G+ I
+ c3 a$ T2 `: l+ c4 ]2 C8 l失去信心了。我曰
; }2 U0 ~ d8 \5 d9 k& ?# H& \& F+ D. h1 ^) g( h. ^
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
5 v& B# n' A0 ?6 J
, X! o- J; I! D. n8 `% H首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。 T {, M+ ?) Q5 |+ { U* F
# U) M/ i/ @2 V! K
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
2 D ~" w. ?1 _
* k4 A8 ~7 O* p高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
# V; s2 Q/ a6 l1 ^* q9 X
3 K$ w1 i( D0 d; m# S过了以后再调到最高,再做免杀。
2 M1 G0 C3 j0 {0 P6 e1 ] r% E+ a4 M) q3 E( b% y
以上是废话,9 s, h8 f Q' u& @9 @
4 F2 }! V0 ^. o# e- d4 B+ J9 S2 }
好了,下面我们来说下常见的免杀输入表方法。4 x# O; s* l( ~3 J
# n7 l$ F+ i0 C7 |
一。移位法) j6 l! y g9 d( t/ h+ J
8 e7 u& [; o" R1 H这个已经过时了,我们的国产杀软及时的跟上了时代,
, z) U( D! Y7 A0 V) o; P1 J ]
, \( D/ Q$ ~+ V* |移位法在去年过金山和瑞星,还有江民都是可以过的,
7 Z" q" G3 N. r' Q+ ~5 l: x
* E* l" X2 v. X7 f" G2 j现在的杀软智能化了,移位么?呵呵 ,追杀你。
' \4 a7 P% E. {/ \3 l& @* ^
* l/ \+ j L8 s2 e如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
- ~9 w/ X. o1 e5 q" C, z, L$ D: W e0 I9 b
二,重建输入表
5 v8 }- v7 g+ U: W
9 w$ i- N' s8 D" ~4 Z1 p效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈( g$ T$ x, ]4 v' I
0 z; O3 d/ o8 h0 s
这里我介绍下,! K) k2 t- X; E" J' I
3 d2 }: N0 ~- O; @( [
用到工具:
( o, D& E$ ]! _- m3 uimportrec1.6
; A E- q' f5 F$ Z! i8 z/ U: D n1 m5 xod1 M% j5 n; }$ N# E
c32asm" \* W( ~ `2 q
loaderpe) G* X. |; k2 |8 m! ]6 l& M
这里我们简单的介绍下,如何重建输入表, H% j6 a" P+ }2 Q" y
O& G$ a; e$ V0 U, E8 K首先吧文件拖入od,打开inportrec1.6/ ]; c2 B4 b& M, V- \9 n
7 y7 I* S8 Z$ x% y, i5 i! Y1 n如图 选择拖入od的程序," [9 b9 b' @0 f r
. E, [0 v) j. U$ \8 |
7 T8 f: c# d3 M ^这个时候,我们打开loaderpe,8 ]7 Z9 D: o5 c% U; x% q: O; b
9 a# z( h- G% [' {7 o& X! }" Y拖入我们的木马
) V2 N+ G% O" O+ R" q( w
, g F$ {; k- x. S! ]选择目录,$ h# |7 i- d/ r; W+ a! I& H8 O
: A$ N5 o) ~ o4 I/ ~我们看到导入表这里。。。+ u2 \+ f# `& f, p) X* v) q
% f& ^. Y0 I3 ^) \+ f Q, l
如图:
! _" P$ y- q, C) k6 B7 \( U3 e* a
6 L8 s( J; ]* w7 {; sRVA地址是0001D000 大小是0000154C( o1 s5 D( e" t( O( \) m+ I# |# x
! g; x) ~6 F, U% E4 Y- e" `& B
好的,我们把这两个输入到import1.6里去
, S2 `# ~4 D" A4 q3 P% A: A. j( g0 p* w2 Z# I s, B% `
就是在“加载树文件”那上面一点
# k( G$ s y$ _; v" O1 B
& e9 N4 n$ I* V4 g8 s输入RVA的地址和大小。7 o5 t4 I9 q* P, f, \ X
, S+ D; i! q% ? ]
点击“获得输入表”+ L, K% g& H# r
, k* p; N+ S0 u j& R- a
然后点击“显示无效的”
$ L2 D% m: _! |3 k$ m3 n8 }# \& ?7 Y0 q: _. D9 h
接着importrec会自动列出; ~! U$ B. K0 J% z0 U( ]& r9 c$ Q
3 k% f. T' E* s
我们把深蓝色的字体 右键 剪切无效的指针: G0 ^' ]8 R+ ^- L
/ x: a6 L* x& v
+ |4 G! ~# J+ N" F) a8 P3 |
最后,我们点“修理dump”, @8 K1 W/ o) H& C$ [
& q" }. n9 d9 k) O) h. m' q
选中我们的木马就可以了 s- U/ T# p$ c- z# | {+ t
. L- J" a7 {5 I5 K. N/ c+ L最后我们要用到c32asm6 } ?5 F7 ]1 |3 u
* Y9 f* \+ p1 S% H
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
2 V' y0 |* [3 ]. T
* x# H& b' C9 o这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)( g/ [* b! a% l3 H; j- }: t
" ?3 p# u" w! D+ Z6 ~这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
6 j7 n$ c* ~- F/ S. Y# m
+ U' R, H3 U$ _& \; I5 Z# R3 Y我们把马子拖入od的以后,打开了importrec1.6
8 F( x1 V) b3 ]8 o# H' N7 C) j1 [' e9 v# L
在选项那里,选择根据序数建造输入表和创建新的IAT
; _! r5 r3 i' J0 v" }9 ~0 [/ ]2 Z6 `5 x$ Z
如图3 f! C s6 d. S0 F& n4 p
; L4 f w2 w4 \5 u; j; k
& B4 Y1 [" X: F以后的步骤照上面的方法继续就可以了) w2 Q9 ]* \& T8 w' {
" O. ~) ]4 |2 b* v) o4 g9 m* {
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
% j7 T7 ~3 F) P4 u) \; h1 k& v0 }
0 t4 {3 c+ p5 V因为kernel32.dll的大小不一样。
7 R4 c2 l# O* o' F3 v4 r1 I3 q, u; G9 T, X
3.修改originalfirstthunk* S+ D; g. c) A# D, P% L
) y/ H O& q9 E如图所示
/ \/ L; k1 @' @8 l7 ~
1 f# A5 y0 Z }% R5 C( H2 }
& E9 G5 K- r3 z4 O' o我们打开loaderpe,依次点 目录--导入表(后面那个横线)
; @0 T, L6 N# i3 n* O* h- g# e
- L+ W7 f, i; R9 H' M! {; F我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
- z6 x# ^% Z z: k
! {$ m$ S8 G8 Y& Z/ n我们右键--编辑--把函数后两个00修改为FF; Y5 M+ D+ X+ G8 n9 m4 f( s: ~
7 a, Y# c* J9 q: q
这样可以过小红伞查杀。 虽然会出现错误提示
1 \% }+ `% M H, Q, a2 ?8 B& {! ~+ _9 @" c8 Y
但是不影响木马的功能,不影响上线。5 t. M: w6 z- a: u9 S
% A8 r6 L2 [: E' G H
4.dll后面加20 90法过卡巴查杀4 H% \' W8 d. i9 y3 ^
/ {" c; C+ F7 m1 p+ F* m
需要的只是一个c32asm而已,非常简单但却非常有效
! ?- T( Y% O: s# m* i) L0 w3 }& g+ ?6 }: E
如图" |& l% ^4 N! [' f9 f1 r) \
# {' P) C, N7 j
; u: }8 G! n; T. ?: ?8 h, r, A2 ~
: Q6 m6 t4 V" H) W
我们可以看到,
, ?7 ?* v& a" f) V6 W0 x, [$ b
7 h O+ W; a$ b! p9 b, D" y在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90
/ A0 R) w% A( c2 t0 [8 }/ \4 q s" a) x
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
m J X% ]6 i5 o7 g/ ^
6 D, Q$ P+ a' Y2 w4 R( s# {我们只需要在他的所属dll后面加个20 90就可以了
' Y4 s* U' n: | V$ X- J" i. W; Y( b7 Z
卡巴目前还不查杀此免杀方法( R& t8 W. [( c5 M4 q* j
+ N& o$ [/ L) T1 e' W. Y& V. W) Z
5 Y% t. @5 |. s& k( H唧唧歪歪这么多,打字有点累了
$ m! y) c. @% ~$ @/ U- Q) w( A1 ~) Z3 P, S6 q' i/ l1 o( x- ^- z
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
, p. D; M: i" S/ s, p! y8 l" b4 L3 D% [. x9 ~) Q8 f
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|