返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,8 e- ?5 s' x& x. B0 l

/ r. o0 @& j% j6 Z' a: L1 {特拿来分享给大家。- e3 n( f5 h' @2 M5 q9 K5 p% Q
& {/ ?* T8 n. l3 |, Y
今天我们不提我们国产的那些杀软,真的垃圾的要死,: e! R3 |# T4 J' h; m2 P% R9 N& ]5 \* }
9 U. o8 j( k" L: F! a5 r( i
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表5 B7 \. ]8 k  V# d" B
5 R) K6 |; i+ g+ i: I4 z1 v& q
我简单的重建了输入表就把瑞星搞定了,
% l. v1 K, [/ q) d: |( }/ y9 g' s1 `, p. F* z: k
失去信心了。我曰
. v. p0 b- ~3 `9 u
$ R( s- A1 u4 I8 J( ]5 a今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
: A" C8 y# o$ U+ ?. D& `. Z$ {; r  v
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
2 n% w4 z- S0 c  v+ ^
; e: j8 g2 h" [  M* [外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
9 d) N* q2 k: m5 Z
( n- K. g, }' o高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低2 C, x- G$ @4 E9 ]' J' B( Z" a$ F
$ u* T  v2 U( i6 Q% b
过了以后再调到最高,再做免杀。6 H8 o/ b- K  ]# c  d/ {# D! b

9 ^5 }) k1 ]& T! f: s以上是废话,
- L: ^' V9 p5 z3 K
$ z, m. d4 m  S. a7 L好了,下面我们来说下常见的免杀输入表方法。7 `# i2 ?: R/ k
/ @6 c6 Z0 z& I& P3 h" N
一。移位法
6 h6 V. y: ~; T$ l# y0 Y1 S4 d$ h' ?8 U5 ?
这个已经过时了,我们的国产杀软及时的跟上了时代,
: F9 r& x" q; N" @( y
+ ^4 G1 @% ~$ _( B6 f% q移位法在去年过金山和瑞星,还有江民都是可以过的,' w$ ]6 M6 B+ d

' e* Y4 \& l! ^. L" j现在的杀软智能化了,移位么?呵呵 ,追杀你。
* `9 I4 L0 n( o1 j3 V! _' {$ o. k! f: T7 E" t% p7 C
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。5 M8 L% E4 F) w' P; z, J! }; T5 N( \
! k9 \6 K; z4 M5 @8 {7 n& c8 t+ D
二,重建输入表2 {: _& C, x3 n( f" x! {

4 H1 ?: w$ q: z4 R# c5 s) L2 R: Y0 f效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
, v# c: }! A4 Q1 w. j; Z8 u
5 j# ?. h; c" l0 g1 h这里我介绍下,2 ^7 h3 \* J* y4 C" I2 T4 T9 u5 ~
0 i  d9 q$ v. u+ S; X
用到工具:% x# }9 ~! P* ~
importrec1.6
) z% J: r' T( Vod: i: a8 K- a6 x# d, Q
c32asm
& h2 p) D; h7 Bloaderpe4 o3 e5 |- P- F; H
这里我们简单的介绍下,如何重建输入表
  h2 x+ L. {6 H' X0 h
3 ^8 ?% D7 K9 w: T/ @" j+ T首先吧文件拖入od,打开inportrec1.60 V7 d1 H. d" ^) ?! ~

  I5 s5 o- N3 W4 b$ O! w如图 选择拖入od的程序,+ I7 S3 {1 k% H2 ~# r
$ s. j2 W* v" d7 K

# e4 ?) n3 \$ n4 V% J这个时候,我们打开loaderpe,
% J! f1 y- C, b
3 {4 z! T8 ^1 k! x1 j拖入我们的木马% ?7 _- m" m* l2 P

$ D; n8 K* `/ i4 n' k选择目录,6 a9 Q% F' Q; `: y

7 j. i  u. E- X* Y' V* R: F我们看到导入表这里。。。
6 `8 S* z6 R, V) L/ D9 O' U( v: t2 c
如图:
7 q4 g0 s# A  Y0 Y; P9 t% F: T  V1 J) |% S6 p4 y3 t+ E( X5 ?! M
3 I/ `  i  x; P( f, ^; e
RVA地址是0001D000  大小是0000154C1 V! j/ A9 Z9 C! b8 x4 H+ K2 r

% ~2 G" S9 H) E6 u, x) R好的,我们把这两个输入到import1.6里去
: x7 c4 R. E6 I. [" H+ b' N3 c" \7 ?, s: |, I7 k$ Z
就是在“加载树文件”那上面一点 ' k( b. O% [: h& A* _

/ |9 H& ~/ _8 K9 i输入RVA的地址和大小。
+ E1 s0 b, v' `) Q" |9 b4 p" {; M0 T+ `; y( O$ S
点击“获得输入表”6 j6 x6 D9 r& E5 x+ |) T% V, f8 K8 e

7 {* N; V7 Y; b( s然后点击“显示无效的”  Y5 Y  j- {! ]* j
0 o; p( q3 P' z/ W8 n
接着importrec会自动列出
) F$ _) A1 t, X+ f
; t' s2 c8 A7 b4 n, e  p我们把深蓝色的字体  右键   剪切无效的指针
" s/ _  \/ ^) v. M8 S+ r
/ b  ?7 _; N/ A8 @: D: e
& v7 @% ^+ L& q8 v最后,我们点“修理dump”, _; _; _# z% `+ E9 L
* x) G- Z# H7 `7 t. q# w
选中我们的木马就可以了5 H) d5 {$ a# K" ^# c' p, |& v
- z  d* c& K8 e" q
最后我们要用到c32asm
8 e4 y+ t% V/ ^7 n8 \1 Q# `1 J# R* Z6 r) E  K
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
+ F; x/ s( B( F6 t! e- g( K
  C4 E, U5 p2 W% V. f4 |这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
+ ]! Q& j* }. A) _' E: X% w
0 b8 C: N7 j' A7 P8 u% r. \$ N这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
2 @3 Z  h5 g( U' I- ?- j# g6 i
我们把马子拖入od的以后,打开了importrec1.6+ s9 F3 v& E3 e/ h% s: g
& {* \! H" a0 M7 m: X
在选项那里,选择根据序数建造输入表和创建新的IAT
& }' P, [; R6 M' y- e' C% Z* c* k1 M8 F& C& p+ K
如图- Y. Y. z& [$ L, j, b! N

5 s2 R4 G* w- q
& j; G8 w& x& V6 }& P以后的步骤照上面的方法继续就可以了
$ P0 {" Y# r' Y* ]5 h; K  K3 X2 W# J+ M
不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
8 ~; r9 g2 S) \6 g5 _5 Y$ r& H. ?" I2 V) p8 b( A
因为kernel32.dll的大小不一样。7 o- A: ~4 `. R2 ]2 s, H; n; J, m
0 x( o6 S. ]. N+ w
3.修改originalfirstthunk
+ j" A  d9 }4 f# x9 G$ y
: H2 S; G+ z: u" m( x8 C3 x如图所示% h1 s8 r! q  g4 E4 I* v
4 F/ e! @2 ?9 j' a( h) s, f

, Z2 L7 W8 f5 w* ^) Q我们打开loaderpe,依次点  目录--导入表(后面那个横线)
  w7 U1 w! A% ^& K) f
, L4 c3 ~2 H! X8 l4 L: e. Z我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
  i9 a6 u+ F8 x  M3 n+ t! Y2 A! M4 q4 K8 d9 ?5 }
我们右键--编辑--把函数后两个00修改为FF
" b) k& H. A4 P3 K( q) U
! E! r& U$ I$ ?5 B, w这样可以过小红伞查杀。  虽然会出现错误提示
  I) p3 l1 d) V  r1 [0 ?0 M% M$ ?; X8 d
5 N( u5 X; J% i' l% c& j  R但是不影响木马的功能,不影响上线。- R) \8 ?7 ~4 }( q- u# v
" _; z  }) [4 u  F3 F
4.dll后面加20 90法过卡巴查杀! q$ [8 G. O  _9 ~( i: N# G

3 V4 S& \: z5 [: Y& [需要的只是一个c32asm而已,非常简单但却非常有效
% j& {8 N+ v- O- J
5 P6 X/ V% x# x, u$ z: V如图3 n6 H. C0 B; e0 `8 `5 l. P
! ^/ a4 L& I8 F$ j% S( c

. v  O  w, o  y$ m  a# [" D
. e" Z& _  D# U) D0 S我们可以看到,6 E. N' R& n3 s6 ], z

: m, A8 @9 W2 M( q8 }在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
6 I! M, t3 E: v
( M3 ]$ g( t, K8 f& f% k这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
7 h$ F1 F2 S- \: Q9 ]4 k0 _( v& n# s$ g2 e4 K, D# M) x& Z8 t4 H$ ]
我们只需要在他的所属dll后面加个20 90就可以了
4 k6 F1 w4 e6 l1 H  u
& B* z3 Q% m! w0 F卡巴目前还不查杀此免杀方法9 Z  [6 I7 ^- @5 U( L1 h, K, v

) Z6 S3 o# {- F* [7 T$ ^) y  t
6 D, e5 W: U" u" A唧唧歪歪这么多,打字有点累了
/ G8 I9 ~- g! `+ c4 ^
* p# f9 E+ X! |" P' e以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
8 Y2 ^' e8 s9 G8 h
2 {  c  P: y8 y' H[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表