  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,
* u; M& Q" n3 r0 _6 ^# [
* n: j9 y. ~; r: E$ b( c特拿来分享给大家。6 B2 l- k) f: R/ J; `
$ y% z" n; T) i# s. \; b
今天我们不提我们国产的那些杀软,真的垃圾的要死," K2 b2 D$ E# `, o8 S' r5 {
. D7 r( ]5 u3 g
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
" ]5 m4 H5 p; i+ ~7 ~) r5 e9 A; `7 D2 g
我简单的重建了输入表就把瑞星搞定了,' Q2 K# }# i) v( d
- O+ ]/ N' K# Y% t& b
失去信心了。我曰
{" L# f5 X3 d* Y1 u7 e7 @
0 i9 `. o1 w/ k8 g, @: u. q) Z2 p: }今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
3 I! q+ U9 t- a
+ }6 \! y' g2 R. f( ]0 D7 Y0 y3 O% i首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。' H+ K) u+ c/ Q: @
+ A8 f6 E9 t4 n( g4 W外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。/ ]: ^4 W( |+ d% t/ D% j
# m, Y/ [& e* O4 b8 I; b
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低; Y' f; E4 T+ T! G; ^, i
, V: t, D, P0 R9 I+ F \1 `
过了以后再调到最高,再做免杀。
4 n4 h) f- G6 J0 e, p* y
. b: l3 ^ ~1 w1 q7 @- B4 y以上是废话,
0 h! j! j' o$ D- d, s5 H9 p) |3 W$ s' V
好了,下面我们来说下常见的免杀输入表方法。+ f; d" \2 y* F9 \" ^1 n/ a
6 w" V- s7 D3 p一。移位法
8 z7 ^' r3 a- K- D; V+ |
4 b& x8 }- V$ K7 I- \这个已经过时了,我们的国产杀软及时的跟上了时代,
) z$ B# H+ K9 o8 Z" D
- v, J3 T3 u* R ~移位法在去年过金山和瑞星,还有江民都是可以过的,$ ?2 @6 @' m5 V" m
5 J% y: R. `1 i* l; R
现在的杀软智能化了,移位么?呵呵 ,追杀你。
* a1 v/ S6 j# p' k- @. D) O: l( }& ?# X; q* H% B3 {0 g
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。6 X. ]8 M! r9 B% \/ S
9 M; j4 Y/ b$ b
二,重建输入表2 A3 t; j6 ]% v9 C2 L* b N; _& Q
! S: {9 ~/ g/ I; Y- d4 O! V2 E9 ]
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
4 t* g: L1 B+ U, C% T
; F, ]$ N/ X% [9 f, c这里我介绍下,
/ Y# s, @0 I1 K- {3 ~5 R
$ \3 H2 s: p( f/ B5 M# K( D( Y用到工具:$ |+ u' u: d( {, q- n
importrec1.6* o" c+ l9 Y8 D
od
$ }, `' l2 ?3 q7 J+ D, |! gc32asm4 v3 o# H6 \ `2 h" a8 z& N+ I% }
loaderpe. w; ]5 `1 z% H! t3 d/ J4 ?
这里我们简单的介绍下,如何重建输入表8 }6 O) D+ L1 c: p
& q) K+ i( p* t( v+ ~ m
首先吧文件拖入od,打开inportrec1.6
) N. r W0 E* H
: ]) y* v; b# L: d4 B; b$ \& R! {如图 选择拖入od的程序,
. [8 ?5 R4 ~% K0 Z, C+ \2 l " N6 n" U- y: M
2 p# |7 k3 B( z. L这个时候,我们打开loaderpe,
- [4 ^0 ], V) ~, t% N% _6 v- H6 z+ D
拖入我们的木马6 E" q0 _5 c- s! P; J
* O3 G( U' q9 A9 Q
选择目录," l0 r1 n/ w: ?7 i9 A% {
% H. ~6 b2 _8 I% ]6 i2 {3 p( |
我们看到导入表这里。。。
, X# I$ k" D: Y1 |4 u
: M# B$ t1 V$ d. s: g0 T; _. i如图:) |/ m0 e7 v4 `5 z8 n9 C2 k7 _
/ g, f1 U1 `5 u
, Z5 O. _8 ~! Q8 }% {RVA地址是0001D000 大小是0000154C
" _8 L' `, i* Q P0 q
1 [' \- x: P' N, |) T) Z好的,我们把这两个输入到import1.6里去
4 r" e' F* K0 p) Y8 K3 Q
+ ~, z& Y* G! _0 k) m) m就是在“加载树文件”那上面一点
8 }) H0 y; v* Q/ M$ [6 ]( W8 L L# K7 G4 B- F
输入RVA的地址和大小。
- i g% P. a* X$ M* @" k, L
& T9 n; ]& P9 q$ Z/ K) v) Q7 ?. n点击“获得输入表”3 h* G. ~! i7 e& x3 e
' t9 j/ S' u' i# e# q
然后点击“显示无效的”
) M8 U2 B4 T7 Y2 f! C, M; C+ K1 p; d1 D) i2 Q
接着importrec会自动列出: i' w( t5 _# V# }3 Q
% G0 C5 k! ~5 l我们把深蓝色的字体 右键 剪切无效的指针7 s5 E) S" W! @
4 D' q. g, O; N6 ^2 P3 @ M' g/ N! }
; o! C& Z% l9 f1 U, I6 V
最后,我们点“修理dump”
* R- Q G+ w, J5 w+ f$ D! U4 G9 u
2 r; Z( S. V7 q2 N9 P0 N0 P W选中我们的木马就可以了( m) s1 V) L2 D7 A& J$ U2 J. H) _
) Y# o+ R# k: B, C: u+ P* M
最后我们要用到c32asm
% y8 n) D- m4 S% n2 @* d/ ]
; z2 g8 H$ T% V6 t我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
, c3 K; n# K% @5 ]! |1 Z1 g1 v/ R
1 j7 [' V5 n! Z) @) H: _这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)7 U s" {. E' y1 q7 R$ r4 k9 K: V! k
9 I/ L% A5 e+ ^( M8 g! W2 ?这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,2 d/ R( F! W. C0 B$ ^, B
) i4 }. B6 K0 H( h3 ?% P我们把马子拖入od的以后,打开了importrec1.68 g" j- V" B- ?: v
8 |+ m7 u% ~- P+ v+ A在选项那里,选择根据序数建造输入表和创建新的IAT
+ C: ]3 y/ Q- w/ `
" r/ }! ~* q+ |9 i; Q如图7 w* A2 U+ E' N7 y. v7 t

8 [1 v! M5 \* Q9 b$ e
) T& {& E9 }6 `9 b" e以后的步骤照上面的方法继续就可以了1 B/ w$ w, v% H- ~' G5 T! m
- I6 ^8 z" L, \# _2 X& w% c
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了- v) d- [% E+ _) j% T' F) E7 H3 b
8 L5 @2 o7 {7 b+ U; |( Z因为kernel32.dll的大小不一样。- R7 v+ o8 l' [7 r b9 y3 p- g3 ?' Q) Z
, b# x8 j: V' o2 y' o# s. s- z
3.修改originalfirstthunk
# D$ E0 m$ I8 s; i" L4 d
1 K4 Z! j/ _" X- B( r8 B" R如图所示1 ?) E# D1 [2 I! Z: S

1 Z$ J! h& ~4 ~# Z6 Q: @" f9 P! U- M5 g! \
我们打开loaderpe,依次点 目录--导入表(后面那个横线)
& p% \/ r7 O- v* q( T! @ g; ]1 f7 x7 _/ V
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll. W, P/ b; i3 d# d1 P
% e) i; w' w. t6 K- b2 n
我们右键--编辑--把函数后两个00修改为FF4 E) J, U X0 u. j( A: O `
2 k2 H( ?7 R0 z ?6 ]& h2 z. E* c这样可以过小红伞查杀。 虽然会出现错误提示
) v. f1 d- H4 J( t' W& O5 t. r; `& ]0 p
但是不影响木马的功能,不影响上线。
8 t% P; R: v& c/ D0 i' j( x5 Z* i z4 b" s6 s
4.dll后面加20 90法过卡巴查杀
6 p3 L4 Z$ y/ R1 m q2 _$ u" R$ P0 b' m5 J6 D$ f, a I
需要的只是一个c32asm而已,非常简单但却非常有效# b6 `" M1 t1 d, J# j
; g9 K( ?9 J. o0 E' ^0 H
如图
$ O0 k% U. e4 g; V }
2 m1 y& R/ f2 {) A8 C- D6 q8 t: j* N
0 g: _& U/ s7 Y/ q3 g& z2 ~0 C* v/ C6 D
我们可以看到,% S) P; b& ^! V: r0 ^2 T( Q6 v
. h. j8 e0 ^( Y' U* d在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90$ I0 o q2 m6 r# u
6 C( p; A) l# C- u& g) x
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
2 t! Z0 r' B* ~8 m5 S# n9 b, F6 R$ \% N2 k9 L; N
我们只需要在他的所属dll后面加个20 90就可以了( e6 ?, V2 m* l6 B' S; n
) T6 f0 v0 z- }; q
卡巴目前还不查杀此免杀方法
4 P i2 }0 v' ]/ x4 T) o6 o$ S9 A& P/ P( e/ {
# r# D/ c2 S2 `* k% y唧唧歪歪这么多,打字有点累了
3 r* W! ~* B$ _" {+ \6 b
. m5 c( O2 S+ @9 o3 u' w/ x& O1 ?以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。& X" r( L. }# b! k7 `, P/ y/ \+ v
- R) ]0 Y2 {, r. p& N) q" g[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|