返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,
" e0 h5 m# K/ L  F  |; l% C/ J$ \$ c: Q/ w7 b! S- u% Q
特拿来分享给大家。
/ {  e% Q. o# F) A* i% D- k
. t6 e2 R# ?9 G- H今天我们不提我们国产的那些杀软,真的垃圾的要死," x  j2 K! _) b! g" H7 U
3 W9 h+ r9 X/ `( p; v3 H& L& I
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
. E! o0 z  Z  S& H. z
3 r: B7 B, K- r! d7 t我简单的重建了输入表就把瑞星搞定了,0 F% G6 r7 ]( H. J% Q) \. i
6 l' A, j( ^. u: i- a
失去信心了。我曰, z3 m1 E2 Q* I% K6 c$ d
; W: ?3 l0 r+ R# ^5 \! \4 D1 N
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
* Q! J/ i- P1 C7 w6 y) `
, m4 n0 {0 u  S- W6 O首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
% R  h+ t. ^0 t* \0 E6 h$ K& H+ T& }
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
6 v, X7 p- {( N- z  O3 a. }: J7 {' T0 `. u
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
! H4 I. L! @& G
# f! k& I" Z- F% d' [7 H过了以后再调到最高,再做免杀。. M; \& a+ n2 K7 y

$ A& h: k6 q' r! P以上是废话,1 }$ _" [$ I6 Q/ W& \2 F! x

7 q# Q9 w# P. `好了,下面我们来说下常见的免杀输入表方法。
- P0 l" ?- I& n$ ]1 c/ k; K1 k) N( }- S7 @9 B1 S& L5 M
一。移位法: _+ f; |% I7 k
; I* d4 W$ E- Q5 Z5 ^( M. {
这个已经过时了,我们的国产杀软及时的跟上了时代,) M; \; A$ T. G# e+ C

8 \: h* H) A  C9 E: a% q移位法在去年过金山和瑞星,还有江民都是可以过的,
6 Q5 @) E+ S, v$ b; T/ g! A! N4 U# k- D: d: ]1 g
现在的杀软智能化了,移位么?呵呵 ,追杀你。& }" C- {) D2 c& H
7 p8 ~, k- f& {4 N
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。7 Z1 E; O; X* W3 Z& ^1 o8 p6 |
' u/ b1 {% C# R. N
二,重建输入表4 m8 C& ^9 J/ l

3 T2 |( q! a3 v. H" R效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
% ~8 R! b6 t8 _, N. ^2 A3 a6 m% M. @# V, [- F) M# a
这里我介绍下,, E1 z9 G$ Y8 X8 o9 j4 k+ n: `

& M$ y* P* k) T8 O# T+ [/ J用到工具:
6 l) f! q9 Q: wimportrec1.6
* u# Y$ p, ?" k  B* _0 J/ Jod
: o! D6 ~: j' w" Q* x* T/ n% lc32asm. _/ [4 J( d& M) C+ D3 g
loaderpe& w) S; m: X9 O2 x! Z. T2 `1 B
这里我们简单的介绍下,如何重建输入表) p4 s, A  F- `, y' c

; G7 {, N+ r7 I首先吧文件拖入od,打开inportrec1.62 L7 f) A) _" e2 U$ I5 `: \

# y# k; ?! ^2 o: Y9 R如图 选择拖入od的程序,/ u7 [1 x& i9 h* [

; e9 b/ D. t- w/ @$ a  I" V4 |$ z) Y- T# k2 z
这个时候,我们打开loaderpe,5 W$ S- G% w! e3 M( d

9 o. F& h# D1 Z+ d5 f拖入我们的木马
4 I; \* v  t9 ^  R: o  L. z) ~# x7 X$ @/ r5 |! q
选择目录,
9 z/ u7 Q- A( R: j  h# k
2 B( h% B0 h4 }% Y我们看到导入表这里。。。
* ?7 S' T& S. y, d$ X# }
+ ]* I& d( l" n如图:
+ u' ?4 ?) L& X2 ^+ a8 U! |6 F" U2 a3 P% [. Z8 O# W

; @9 Y, B6 Y4 p* t  LRVA地址是0001D000  大小是0000154C  `* Z3 a0 f, M, y9 ?1 Y2 E  _

2 _5 K! H. O' a& D( R; c! _& B好的,我们把这两个输入到import1.6里去
; N& |$ U0 c+ @9 b% l  D9 I9 S  K# a) {
就是在“加载树文件”那上面一点
' i' w7 P, b9 p6 U& H4 _  U) e+ S) p6 w8 V+ f+ |0 L* S
输入RVA的地址和大小。
( @. V- z) x. J: \
  H  R# K1 b* A3 Y! x点击“获得输入表”
# }3 w8 b1 `- e  B; Z, D+ u# k9 {. l6 t& G$ A& j
然后点击“显示无效的”
1 s# q# O0 S; b5 \: B. C/ T4 H6 j& B0 G: i+ x: ~5 I* d
接着importrec会自动列出
! C6 ~0 x: B+ }+ e: n2 }% _9 r" {2 E$ O% P& h
我们把深蓝色的字体  右键   剪切无效的指针% O( t+ m+ ~& M/ J

( L) N" P! @( n  u/ _
6 W: Z" X3 G. [4 ^$ ^6 i! I3 K最后,我们点“修理dump”
) c8 R/ E, o4 Y/ R% M; t+ @2 v9 F
1 V! H5 N, X" j, n- f' ^选中我们的木马就可以了
% R1 Y! b: B  x( P' E! |( L4 ~" r" L- i5 t# c% [. X
最后我们要用到c32asm: {+ J  u) ]. }

) D( B: T$ _/ j# M! a) @$ V/ K9 W# S我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。  s* }% I0 t' v8 _& c! b- E( @: L
; V2 u( l2 N" V8 T9 t/ a$ @' U: f% S
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
" ~& E6 P6 J' N( m3 N$ ^* E
' {( q- p4 a! U! T2 K这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
( [- r; D* G  ~! A0 a+ b/ ]8 x, i* W* ~: s. b
我们把马子拖入od的以后,打开了importrec1.6
  Z; O4 @7 X+ w9 _
& p* U4 _" o* ?在选项那里,选择根据序数建造输入表和创建新的IAT6 q! v+ l0 ]% s( B/ m

9 S) M5 l& M) |0 p如图
7 {* j6 D' b7 p4 D, g) k
$ U- k' s" A1 j% m5 {
' S! {/ {" x2 X以后的步骤照上面的方法继续就可以了
& u: _8 T1 g& Z8 l$ c7 I3 K  Y8 W6 F
不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了& l, u2 E+ F+ [1 n; s3 f

  K8 }: g; f. S: F因为kernel32.dll的大小不一样。/ m7 V; P$ Q1 W! M% U
, n% V$ X+ B8 k3 _
3.修改originalfirstthunk" K4 Q6 O. f: ?8 [4 q' j. \
7 {, T% w! u2 d. r+ V) A
如图所示
9 D  R, r, z. \3 A9 z
( z# T+ y5 J2 I$ L$ e. \$ N
  l9 ]& n9 c* U5 l我们打开loaderpe,依次点  目录--导入表(后面那个横线)
. O7 i; A+ p1 l; |2 h8 J) x  ]- ?2 D
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll" G; F- U! H4 @8 h
( h; w# S% b8 N8 M  J; M1 l
我们右键--编辑--把函数后两个00修改为FF# y# j, k' m% d) y; B

2 n% Q2 Q7 r0 F这样可以过小红伞查杀。  虽然会出现错误提示
7 a. n6 o' R  V% W. t$ ]
; v+ D2 B! \( s但是不影响木马的功能,不影响上线。1 j2 r* ?' V% ]6 N
6 [, M' {$ X) v) j+ b! [
4.dll后面加20 90法过卡巴查杀
8 M' T3 P: m# {' {, \0 p3 w( D0 I
需要的只是一个c32asm而已,非常简单但却非常有效1 h* B' f, E+ P, J
/ w) p0 t! C0 l8 \5 ~
如图
( i. k5 H. ?" a6 o0 H
4 A2 r- w$ ?7 [$ t# u
$ Y1 j$ D9 A, w* f* ]/ K" e1 F7 d- l
我们可以看到,
8 [! {( E; x" M  o( S( y" i: G3 H
在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90  v8 m/ v. o/ ?

) p- ?' Y4 e8 d8 h4 [- A这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
8 r: \0 W" \# ~! X2 \0 ]$ L5 C) ~3 I0 G) K: G  ]
我们只需要在他的所属dll后面加个20 90就可以了& J1 N: A- v4 o, g6 B" j7 w8 ?
4 s: l7 y& U; P: O" H2 h9 \
卡巴目前还不查杀此免杀方法
' r- R' ^  Y- u4 s* Q" F& j
) j' u% A4 z" G" z5 @( I$ I/ C( e% M0 H! F0 Y$ i$ n- `
唧唧歪歪这么多,打字有点累了
0 S1 q8 e" Y9 Y- p, H) [5 e2 X" L7 P: F$ W; t
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。$ u) x, r4 _7 F/ }& u

8 K; c7 l7 S, A1 C6 ][ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表