返回列表 发帖

[原创文章] 木马免杀之免杀输入表篇

最近和一位木马免杀牛人交流,感觉新增进不少,0 C* {; h+ p) B) R( D) b8 R  K
; r9 |' r# z/ Y# ?* n
特拿来分享给大家。
7 `, S' e5 ]6 }9 o8 E# N1 i. T( T0 h
今天我们不提我们国产的那些杀软,真的垃圾的要死,7 P. Q. _; @3 I# [

. U- B, G: O; B6 B( d- A6 ]8 m上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表; ~! Q2 D" e% R) p8 W. l, e

$ P$ G2 |5 t) O  e7 x5 s: w我简单的重建了输入表就把瑞星搞定了,
( N. G! N+ k, x" z5 Q4 j
4 k0 h8 C  Z$ O" r失去信心了。我曰- _) @) N2 }9 r
; j  k, a4 w1 ~4 V
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
  g; |  F- O+ |/ m/ {
* \. m9 h) P& k: q7 n. n; u首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
" d/ c+ T8 X! F' j# P) y/ b  h3 J6 @8 w
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。5 i/ T5 k: o8 d6 y: e1 l; U" J. H) H
% X6 R+ `% c! ]" l# \' d
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低% W2 M1 _+ p1 t2 l5 }* S
9 N* g# W3 W# Q2 @2 T: T
过了以后再调到最高,再做免杀。
6 i8 ^8 u0 F1 [! r6 g% M1 a0 g, Z8 _% x! p" e: J% E
以上是废话,
# X! y8 }. i! E/ |" g2 _& D+ `$ A6 y( W# J
好了,下面我们来说下常见的免杀输入表方法。7 M0 N1 E, C3 \# K

! x1 i( t- J! G0 g) _! \一。移位法
8 x% n  y+ u/ ~+ `0 f+ @5 m
9 M0 W( a" i3 x2 D7 C( k这个已经过时了,我们的国产杀软及时的跟上了时代,5 s. ~5 n7 d( I& q; u
) M! Y, l5 Q8 M0 m
移位法在去年过金山和瑞星,还有江民都是可以过的,
* o; o% W+ @/ W' @( l
3 ^; ^& J, t) u4 r7 B  F- w5 I现在的杀软智能化了,移位么?呵呵 ,追杀你。
  [% |" p2 H# @2 h/ i/ {1 g; n
: |4 s: l. Y, A如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
$ a' E. d; v7 [; K7 G/ ^: a& c- N
二,重建输入表
3 _, |' u* f% O, _. \- e6 f4 H, k8 x1 E9 w; y2 m0 F9 U5 M0 d" [! M
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
% Z3 l% ^, h/ q  z2 L
( S$ [0 Z" T# [- E  e/ a  h这里我介绍下,
' P* o& Y5 n8 r8 ]6 z5 U+ n. G: ~7 c0 x1 c7 V
用到工具:! P  c( B, y5 v# r/ J# X
importrec1.64 x3 y3 T- k8 x" {' E# k6 N/ M
od
" U1 y) A) w3 X7 v  |" gc32asm7 N* \6 q" N, _2 ^- ^
loaderpe$ W3 z$ K8 W2 V: i. i/ O% q" _
这里我们简单的介绍下,如何重建输入表1 |) J$ Z3 s5 X) T* B# H7 e

, ~- e$ A/ ]+ F首先吧文件拖入od,打开inportrec1.6
( U3 H5 B( t( E# ?7 }' v
1 x2 z/ ~! ~' d4 \3 t! d如图 选择拖入od的程序,( D/ f: }+ i  F3 a$ F' P

) d9 D. S' U2 ~. W7 A6 L
% g% O& o. j  b% {8 B. J这个时候,我们打开loaderpe,3 T1 f% x; L- j9 M/ w5 d

! k1 W) \" i- x( d拖入我们的木马
& Y1 R$ g7 f2 f: _. K7 s, f1 {& M/ K. |, B' ^
选择目录,
, [( o3 r( B8 U' E, c* N0 x1 j2 d/ C# N* O9 S
我们看到导入表这里。。。1 w  [% c9 x+ e0 j

" i. M% T) Y0 u/ ^7 @如图:5 j/ o5 d7 ^1 V) S- v

+ t/ o4 f( `/ D; x: N5 _5 r2 E6 l, L
' c) B7 ?9 t8 Z, w# MRVA地址是0001D000  大小是0000154C
3 b" b4 {3 Q7 i
) Y; e" x" V7 `8 G& C6 P好的,我们把这两个输入到import1.6里去1 Q, K8 A. q9 z9 S5 X; V1 H
. j7 w' f  [! a6 w2 V5 ~: K  Q9 [
就是在“加载树文件”那上面一点 ' D: z" V. }/ @  E0 @) w* N" [
; q8 H; m/ ?: y5 D* X1 N
输入RVA的地址和大小。2 d$ ]/ D; x( f" g

3 A/ c8 U, x* O; Y: Q2 B点击“获得输入表”% Y* h* _, i- `8 m
; Y  f! U' R$ Z, _
然后点击“显示无效的”. T% T4 n. |  m  y4 D$ w0 P

$ ?  [* y; K) l. d% x& Q; F接着importrec会自动列出) x1 h% S* R0 M9 D

; d8 _) i$ X  U9 |1 w3 p1 N9 b我们把深蓝色的字体  右键   剪切无效的指针  i# h3 _6 Z5 ]% s  Z0 h! s2 K) }

6 A1 c8 x) @3 ]5 D2 _! _
+ {3 T7 N2 P. W, G最后,我们点“修理dump”
+ H( C7 u% t4 b/ i, p0 I$ D% y" C
, A0 i6 S! X* s$ a选中我们的木马就可以了
0 N4 @( k# z* W6 H7 w6 B3 I$ X5 A: n
, P9 B3 @3 }1 h最后我们要用到c32asm
$ q* b, I. }  m- k% d$ r
9 L4 @* S! L$ }) Y我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。  t9 v/ v: t; m! {; ]
( y6 O1 }0 p% w6 G7 j
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)6 N! a! e7 e: Q, K
- e) t6 {$ \' C$ f* u
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,3 [1 A: [+ r7 m) h- O, n! S* a

/ {! g7 ~* J2 |! I1 k# }我们把马子拖入od的以后,打开了importrec1.6
% r- L+ p  j( Y
5 Z, O+ s1 e5 L+ J# r' g在选项那里,选择根据序数建造输入表和创建新的IAT
/ }% x8 d+ \% W3 m. U; S9 c4 g% {$ s: q: b$ y7 h. Z; k
如图' w* l: e) w( B7 L0 o
5 c# i: m& V6 [# b; n1 f

1 ~# t' f, G  x+ X# ^1 e& d% h6 ^以后的步骤照上面的方法继续就可以了; \$ r# _, s. j8 F8 Y

9 e/ t; c  b! {5 |) O& ~) f不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
9 `* C: W) m7 |- |( x5 M* s. k% @1 c5 N9 t2 ~$ q$ s
因为kernel32.dll的大小不一样。
8 I# _$ _+ C. T; J* ~  D& u0 w3 F' e- K, w6 d2 N7 H
3.修改originalfirstthunk6 }! g2 I) A8 w  _2 @

! m& x, q& V9 t; E如图所示
- E6 X1 @2 I( ]0 U6 g; g3 ~7 c7 Z3 h3 E: d5 b( w3 }2 W* S
" c5 q5 H  N9 t2 t% J
我们打开loaderpe,依次点  目录--导入表(后面那个横线)
3 b9 F# Q. d3 i, _
: g! U  w# [8 }; W' A2 H- R, j我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll) u" p6 }: {" Q/ P/ [0 l

/ a, y  z, T% t' m/ |% p3 O我们右键--编辑--把函数后两个00修改为FF
, A9 j6 E2 W3 K
, T' J% d2 u, i, c这样可以过小红伞查杀。  虽然会出现错误提示: j: R: `. X& e; m; r
% ?0 b% l+ B" t) d. h: C
但是不影响木马的功能,不影响上线。5 v8 P, G; v* ?. {! x0 F8 v
5 ]% M( f9 u' j8 Q- ?8 A/ t( s) j
4.dll后面加20 90法过卡巴查杀; x9 P5 H) t$ _
% u* w/ U0 n9 C3 M$ c
需要的只是一个c32asm而已,非常简单但却非常有效: S7 R  X% m" r; }2 j3 x0 t2 l2 D3 x
5 E$ Y) T! Y$ k, d3 @
如图0 o) Q0 s* @9 s# [  M9 r9 b/ K

  R) X8 x- [( r2 h1 u3 O- O" _; B6 ]
) `  c3 `. A; B/ m5 n. ~
我们可以看到,
5 ]& w- A% Y9 M1 Q* {: d
% i0 E9 q$ D/ c/ R# G8 g! H在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 909 e  \% w" n3 {0 i

1 s$ L, p) Z0 l% M9 u) E6 L这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection: \2 A4 _- Q0 L) h
* H- O* C9 N9 H7 U% ]4 v1 U: v1 E- R
我们只需要在他的所属dll后面加个20 90就可以了
$ X8 w$ r- w7 j% c5 c! y
2 X( P. G/ }; l2 C8 y; M卡巴目前还不查杀此免杀方法
, h6 d5 W2 k$ f2 I* p
! d* q4 ^* \1 K0 R) \! d6 c9 p4 ]/ a2 m% R% t
唧唧歪歪这么多,打字有点累了9 C. C. u! C! k- V7 I
9 h. z- s5 S$ ~! b' V+ y
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
' D1 G% T6 d5 M) _1 ~
" _- J4 \% s8 n; V0 t[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表