返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,5 O! G6 M  }; @0 N" m- {

. w( g$ C* s5 O- b- e0 X) @4 Q特拿来分享给大家。5 b: p  O) r- E9 N( C$ R9 f  Y

9 z# T9 W. _( }3 H& [: ~今天我们不提我们国产的那些杀软,真的垃圾的要死,
" {/ O1 q( D4 i- K6 L& H! A( ]. D2 w' B7 u
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
0 I7 Q* n! X" b/ L& {8 I  x& ]* u' G  Z3 ]  u' V% ?
我简单的重建了输入表就把瑞星搞定了,
8 S) k3 L5 r& o( Y' n6 m$ U. n$ n* B7 x! g8 z6 H
失去信心了。我曰7 @+ I, f$ y* I
0 Y# k8 V- R( A# K% Y. f
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
' G" R  z; L6 q' N# P4 w' n8 f& {0 X& b; x6 P1 n$ O+ a
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。! F- `7 x0 h+ \. S& a- c

4 L; b  O# ?) C% M3 w. w外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。% \% o% h, M7 }

9 |' [( D6 v) ]3 E高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
1 D% l& A- {& U: t; x. w0 T( m) Z
过了以后再调到最高,再做免杀。# w+ u) h5 [! F1 G: F
9 i, ~; e9 u7 U& i
以上是废话,
& X7 d1 k7 V4 [( B$ @8 a7 J# r" h" @/ D4 z7 H7 I! d* Y! M
好了,下面我们来说下常见的免杀输入表方法。
6 Q% @( E' ~- F) \3 \2 O1 h
6 b3 M1 k" Y+ U一。移位法
  i$ p2 c" S# ^7 h! m
+ ?7 D3 d6 c6 n+ S4 |: L8 W这个已经过时了,我们的国产杀软及时的跟上了时代,
- \  f! [1 }- s: q- a5 k/ K2 l; L! g) L+ j
移位法在去年过金山和瑞星,还有江民都是可以过的,
/ f3 E2 J+ g+ W. d, t) p; P7 o. a- W4 o4 a/ N- M5 t
现在的杀软智能化了,移位么?呵呵 ,追杀你。
, O9 C! B8 J$ T. D) _! ]+ D/ U
0 v  g: M  E3 R6 G0 s# I如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。9 f4 @: K1 _/ m2 p8 q3 g
/ k! Z+ s2 U2 n6 L5 f
二,重建输入表4 a% T- \' J4 l+ Z  ?
3 n& V# h! ]# w( O1 S# g! x
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈$ X: F, d7 ~% T
8 H- f7 _1 C+ c( ]: Q. D. V
这里我介绍下,
8 I- R7 B; h7 K/ R) [0 x, t  n$ U  c- g, n. b
用到工具:8 S7 T" p6 x8 K% F0 U
importrec1.6
: b& f1 F7 |, k7 y; U% A& nod* m  x3 H1 B* l$ ~6 Y0 }- M
c32asm( N/ |+ @* I; V7 Y; z6 Q( H
loaderpe' t3 F! f0 }2 B& n& [
这里我们简单的介绍下,如何重建输入表
' n4 n" G2 _% d2 |" P
3 C; k) ]% O5 U/ d: W首先吧文件拖入od,打开inportrec1.6, i- s. ~' ], Y  K# V
/ v0 ], G6 a$ [( e& D6 O. x
如图 选择拖入od的程序,$ \; I$ E& t) T5 ~* n
8 E( w5 z5 C4 @$ U
6 S6 ^$ C: C) ~  D7 c
这个时候,我们打开loaderpe,  A8 S5 P9 Y" z5 O
  \0 V2 f3 u) h  w
拖入我们的木马
( C- x/ l: `. M5 r/ s1 n; f$ m, k  w7 N' |+ F& O
选择目录,
+ Z7 R! Z+ k* R! ~/ N1 q
5 T7 h" X5 S4 J4 ?  I4 o) I6 D我们看到导入表这里。。。" x1 q. b) r  M; e

3 H" q8 \( F* `. q) L& I0 r如图:
8 e! O3 B% R$ f9 F7 G6 f# e! {7 ^; e
/ d% P4 b: V5 {* x$ _0 |1 B
RVA地址是0001D000  大小是0000154C
9 o' M: {. b. O* a2 Q3 v4 Y4 u: v1 B
  K: G  f: Z4 v/ O- f) Q6 E  H好的,我们把这两个输入到import1.6里去' z$ {( v% J' n

$ Z/ }8 t$ C& N2 U! E0 n  U就是在“加载树文件”那上面一点
% V* |7 f, d6 l2 U: o; @7 p
7 }) c: k" s/ A! D9 d输入RVA的地址和大小。
3 _# d$ ~4 {7 x6 x2 S+ k4 t7 ?2 d0 ^  M
点击“获得输入表”' L- q; v% o% F( W

9 i' Q7 l; e" _( q" w然后点击“显示无效的”, A1 O0 O8 \% Z

- s2 A& Z  x! ~) v0 B/ L* G接着importrec会自动列出. D7 C' t4 ^5 F# s
% J7 S5 F# ]! n' X7 J: Q% d; y7 P9 o8 J
我们把深蓝色的字体  右键   剪切无效的指针3 R2 B! L/ V# O5 L" Y
2 x6 z5 Z. S! ~& G6 D/ g( i
. H( w% W$ H' w* X+ ?; R* @
最后,我们点“修理dump”2 V- k" h& r4 D1 }
9 j& i! m. D2 f, l8 \
选中我们的木马就可以了
: P9 ]9 A# o' }; Y6 x, I
& J# D) I. K, f4 m, p: {最后我们要用到c32asm8 @( U  L% ^  R1 g' X. W; {0 M
4 ]! w3 M. f$ E( c: y' u! D# H) y
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
" N# _9 D/ B% X" l0 m" i$ b) J( F, ^/ V. Q. u' c" q% H5 E
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)7 o8 i- s% P, U) c9 i

+ y$ ^% t- U8 {4 a1 y% E0 F这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,& S% u) g# r2 ^1 T0 A

# \2 T+ [4 i) f7 |3 F) p我们把马子拖入od的以后,打开了importrec1.6
6 H* N4 M! |" W$ @0 h( M
( Y: c3 ^0 g& d* e3 M/ c; V% [0 r在选项那里,选择根据序数建造输入表和创建新的IAT( [6 n/ {3 W1 G

/ u7 b/ P( D: C6 x  v, _. T6 E& C) q如图: P7 t9 p" B3 u- r* ^6 s4 ]

3 L4 ]5 c5 {  I5 v) v7 l) N1 t8 {; n7 M
以后的步骤照上面的方法继续就可以了
6 r4 j6 H2 A, G0 U/ |
6 Q* y" S' y% X' V3 z$ l不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了+ ]* D3 k& M! i* f* {9 v) I

- v; f2 m8 b3 B因为kernel32.dll的大小不一样。/ O2 i- {9 X5 y6 v' k9 K' p

7 @; P7 k- @& Y4 e  [8 b& b3.修改originalfirstthunk
6 Z1 F/ @/ }, S8 F/ A; o# N- A* K
6 `3 A3 D1 {3 X2 W' f4 j如图所示( [  k1 d4 ~# }( [- N* f
$ Z/ u/ g% }3 i' V: y: s
1 s7 p; W' |0 Y6 ]; A: J
我们打开loaderpe,依次点  目录--导入表(后面那个横线)" e* z9 C+ ?% k5 F& r2 @

/ x) C% p7 x! W7 z% W2 i% W我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
( ~! s4 ]0 k' A& s5 E
, C( N% k/ W! n) z( q我们右键--编辑--把函数后两个00修改为FF
. |6 N0 p# l7 y8 n  X8 @: J0 D
, I! S! n- M+ ?这样可以过小红伞查杀。  虽然会出现错误提示
- c/ U! _! D8 m3 B. k" \8 l% c( B" _* r& _" @( \8 f+ g( u
但是不影响木马的功能,不影响上线。
" r7 T( d, E: @; \6 R+ w0 g( L4 j3 T$ E2 Q, S- C+ ~1 f
4.dll后面加20 90法过卡巴查杀! D; w; }5 b! _, x5 N2 n+ ~. G

: _6 q- C1 W! s% {2 p, H8 Y" @需要的只是一个c32asm而已,非常简单但却非常有效
7 u$ A9 {1 i; x( b" r, ^( @: Z- W3 E5 T$ p
如图
, L  }7 w! b& p" d7 y8 x' P9 ^2 ?' P2 Q- o3 g2 h/ w8 i  S
3 c+ I" V. a6 m% o/ j$ x

# y' g! d' O# D2 ?% |8 T. C我们可以看到,0 Y6 B% d$ f! h9 \! w: c
% \/ W" G( l! m! Y( X) g
在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
* W9 j% a- p8 `2 ]& y1 w2 d; J/ z: |/ {- m3 n9 P2 `
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
7 c" h# J8 |, Z$ c) R1 Q6 f6 x* b1 H, Q, T
我们只需要在他的所属dll后面加个20 90就可以了8 k4 J' C" C2 ]% V( Y; f) \
3 [+ P2 |% ]" U" C5 o" b" b
卡巴目前还不查杀此免杀方法
% a+ c3 F- }& Z# ?* i  G" U9 W9 }. q2 I  m- G: H8 t$ Z# a
* v- I( j4 h& L: s5 }
唧唧歪歪这么多,打字有点累了
& `1 C' Y; V8 @$ r- N$ C; U3 J9 M( p$ M3 u# h6 d+ |. p
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。, e1 f/ q1 m5 K- R6 ]3 q3 S
% U# Y9 b! n! Y2 x8 w' O" W' q
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表