返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,- B8 Z+ m) D% s0 c

5 s( b3 x) V+ _- s! b. k, N" Y特拿来分享给大家。7 @! W, h; ]+ e9 i4 ~  E

+ F" D. t- N7 ?  l' S: J. Y今天我们不提我们国产的那些杀软,真的垃圾的要死,
. G! p6 |: u4 \4 O( z# y0 Y0 A; a
, p5 P$ y  s& \4 i& R. v7 g上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
: e, g7 l/ F2 q$ R
" G- W- W" f! n. B8 E! l我简单的重建了输入表就把瑞星搞定了,8 _( ]7 Q8 {7 F* o& H

$ S; |5 b4 D, ]失去信心了。我曰1 G6 ^2 t) r! C, o  E

, n& [( y7 ]7 n( K9 {今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。6 a& R5 a' b, {8 ]! m& U$ c5 L7 z
" D. d5 f/ T" @1 [3 D
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
0 B/ u  |& q# U* y0 G0 v/ ]
9 u/ l# l; F$ e外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。( F' i: J3 ]  L" X1 d. b7 }

& Q, l& g, a$ x7 w高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低. S, h5 _- L: h0 T2 y/ q4 o

, k1 j0 M4 E1 y- _: ~. r, R过了以后再调到最高,再做免杀。
2 [& k4 J8 Q' y5 w' b/ h9 A
# R2 i! ]/ Y: D0 k9 P1 H以上是废话,. H+ `# @9 v" a3 y

+ Y1 J8 @  |: k# x6 ^好了,下面我们来说下常见的免杀输入表方法。
" ?3 d* I+ S6 M7 E( n! T, ^0 D" d6 @5 W: F
一。移位法1 Q9 c2 i: i+ U7 P2 E, e) V) P  n0 ?

) K8 @# ?$ L  {5 O8 f这个已经过时了,我们的国产杀软及时的跟上了时代,- Q) R, ]5 w1 M: n5 {1 `

' a2 M5 ^8 _2 D: z  s移位法在去年过金山和瑞星,还有江民都是可以过的,
  N4 T/ }. Q8 E8 h2 s  c1 y) ^( J4 c+ A1 G" X
现在的杀软智能化了,移位么?呵呵 ,追杀你。
, C3 w- N" Q5 M3 x' k% L0 l3 ?8 U; h9 ?5 W) N+ ~5 y
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。5 t# i2 h  q0 f

3 e# i6 C! h( \8 [- o二,重建输入表
# j: w$ c, N# k5 D8 G( t3 _. H. Z! B. ~7 h1 v& p0 ^8 X$ Z0 ~% }
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈& j1 ~- I, D8 N. j& G, B' k
& h, r1 D# l2 q  I( U6 b
这里我介绍下," [* z, I0 Q" W1 r5 E6 X: o% V9 U
  {% z; ?/ l, g- a$ W; j
用到工具:
1 w7 ]3 \6 M/ F/ N, e- ~( @importrec1.6
: `9 ~- m8 R% S7 iod
  v5 l8 P: I, {0 D, Tc32asm
+ {% e$ h' ~( ^7 `4 _7 e0 N9 w3 tloaderpe8 }% S% N6 g+ X
这里我们简单的介绍下,如何重建输入表
* C- e0 O2 r  b! L  B/ Q; Q8 s$ {+ |1 d0 v* g% [
首先吧文件拖入od,打开inportrec1.69 v) j' v# L6 g+ j6 T( b( F  ]

8 R& T, k6 ]2 `4 o: v1 w如图 选择拖入od的程序,
2 m, W' j, s1 _" U4 h9 T& O9 I5 s1 H( H- X; I
; |3 l  Z3 ~$ s" r6 T" j0 W1 _- E4 \
这个时候,我们打开loaderpe,
/ m$ ?& v& o$ x6 ?. O, @' G
2 A& n+ l) z. I3 i+ ~2 y+ P拖入我们的木马; t" q' L1 U: o; C  w

% P' w" c& l7 e9 C/ N% E选择目录,3 H; s5 t1 z6 I3 j. O- z  v& q

8 |* V4 J, W* ]. Y6 X我们看到导入表这里。。。
- {) J: R& K( ^5 a9 P3 I) q1 \% K+ O6 ~3 Y0 n+ H9 ?! L  a
如图:
- _6 I$ j6 x8 W6 [
, \3 {9 l7 f# Y! l  {( {3 F8 W% }, B& v% Y& l* I
RVA地址是0001D000  大小是0000154C( O1 a/ l# D7 O; ~6 x
8 I5 h, O) H/ x- M4 P2 O  s6 k: r
好的,我们把这两个输入到import1.6里去+ \" ?* d4 [( K3 M: w% x
4 [0 q( g8 v+ l, T- }; B
就是在“加载树文件”那上面一点 : H1 Q0 h! Z5 Y
. g( C9 @2 y: e( X
输入RVA的地址和大小。
' @* ~/ l0 e! T1 S- D' _& L/ B4 k( q0 Z9 G" J* ]
点击“获得输入表”
3 d: `( I8 V' B. r2 w
* u; o8 x3 `/ B* }( Z2 R" t9 L0 L然后点击“显示无效的”
: Z. X; a8 P/ |1 m) P1 _0 l) b3 ^  e9 b! j5 z( A8 q7 Z2 m" f5 p
接着importrec会自动列出: r9 C. p: t0 u+ g

! y' l2 [& q# i2 G5 s% S' b我们把深蓝色的字体  右键   剪切无效的指针
& x, T! w1 F3 y5 Z; E8 b8 Z. Y5 n7 h/ i6 n2 F
4 u6 M! s/ {- V/ M
最后,我们点“修理dump”& c8 y$ ^/ A: f

' T. |; w/ L0 q( A9 B' S. b选中我们的木马就可以了
0 Q0 @9 y% V3 O& n0 E6 r" W1 W* E8 n# Z& ~
最后我们要用到c32asm; w4 r) Y: F' f) p( g6 T

4 t' o" s' i$ U8 ^' K! m* C3 m, M! I我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。8 K& ]$ _/ k, F9 F6 _

/ @+ s1 g0 e5 b( _" B0 v. s* i: N" L这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
% j; t, d2 P* D/ x
* t" S$ c5 C8 R  ]! U8 L$ L& m( U这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
2 f: y/ N  ~% U% Z4 z- M
4 _% b' A, w4 q我们把马子拖入od的以后,打开了importrec1.6
. \/ `4 T5 s% }1 y1 d. J7 ~. n) {( Z; l1 r. f3 G
在选项那里,选择根据序数建造输入表和创建新的IAT
. ]! n% w# ?( f$ K! E% F/ g3 ^9 y& ^  T5 z7 A
如图, b' ?( Y! J+ `

4 D( S2 o" v9 {+ l: r
; @6 P6 O# t5 Q7 f" \- S$ [+ @以后的步骤照上面的方法继续就可以了1 G  I  }- P6 N) U; F
, R, p  t* u* F8 r3 |
不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了  m) R0 s, W9 D
* E! L0 F0 x% a7 o5 Z- {& a2 O
因为kernel32.dll的大小不一样。! ^1 |; a0 X- Q* u4 {
. q& P8 b8 A/ n3 o7 `% B
3.修改originalfirstthunk) k9 A$ e7 J) f& [2 H- ^

. {% p8 s2 J1 ]如图所示
# r( J9 M. w: r& c, a
4 h4 C+ R  L3 q( X! J
5 e& Z# \5 U$ X+ @; D& r我们打开loaderpe,依次点  目录--导入表(后面那个横线)
! w2 N* B0 K' d2 L: b% C% ]! F& N# w- O* q; a6 ^# q& y9 |( [# h6 E# C
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
; l3 ?8 d2 i- n0 u. Y# l. F3 F: N9 F, ^0 F# Y
我们右键--编辑--把函数后两个00修改为FF
4 P; F( |' b' ?/ D2 U2 [0 m7 x1 e( ]$ D& e: |; Q
这样可以过小红伞查杀。  虽然会出现错误提示
/ }  m4 x* p7 v# m+ w. i
0 i  Y0 Q* ^3 ?- S4 F但是不影响木马的功能,不影响上线。
3 K% x9 U2 Y9 f3 G) o
0 q# t+ {% E; ^; H+ q- I3 d4.dll后面加20 90法过卡巴查杀8 z0 `0 A0 ^! D
& l% a7 d% r9 V1 F# Q3 D' s1 l
需要的只是一个c32asm而已,非常简单但却非常有效1 S2 b/ w& [0 I; E$ x

# G9 |, ]$ ~3 x5 r+ }( r如图
4 M7 K! [  t( R* @
1 [% H; ~5 u$ @" R* O
! D- ?+ z! @( H; [" s& b3 R2 G5 u  @) G0 R" m' l; K
我们可以看到,$ H( V" q. `( r! [" n4 \
5 v# X, U6 X6 p( d, \+ F" B: ^
在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 906 E" Z% P+ Z1 o( {' M8 r

, K" w# K* g* a7 ^1 S这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection) [7 i4 p8 k. y/ {* `
- {+ M+ l4 G: e9 Y3 |3 e0 ^
我们只需要在他的所属dll后面加个20 90就可以了+ C- c$ h( r. s/ [( G

5 e9 a6 Z3 g1 p7 V0 I# e卡巴目前还不查杀此免杀方法# u# I/ |; A3 b/ N

" E# C+ Q1 v) S( `9 a! a8 J4 x- C1 }2 E& M
唧唧歪歪这么多,打字有点累了& }3 u% f; }2 r* Y# D/ A' l! b
( `2 Y. @0 M; B0 ]2 `) `( C
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。  g& X$ s8 Z3 ?6 m4 O& o

0 j- s2 f6 ^+ b. W# ~[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表