返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,2 s- Z, i( w; m; N% A, U0 o# M

  P! q7 |  {% g' C3 S% V# S+ q特拿来分享给大家。4 i  f8 P4 B, `7 p

+ W; ?, @3 }+ x- Z; {! P) V3 w今天我们不提我们国产的那些杀软,真的垃圾的要死,6 N0 x2 q% U% N/ w

! a0 z+ J  q; g6 x1 T上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
" x# s5 @( m2 d2 k/ ~
% Y4 c4 I+ L( h+ |我简单的重建了输入表就把瑞星搞定了,
9 D, U2 Z4 j2 r. n0 s6 G+ [% Y$ Z. K. W; q6 u
失去信心了。我曰/ q5 Q; T0 D3 d3 [5 r; ?) E6 ?

" T+ z4 W+ V* }' w' k8 `' T" k今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。8 J1 f7 H# D. n& ^" J1 F
4 A  b$ [- ?/ I8 T. E' q- h' m
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
4 ]5 z8 ~5 J0 ]. l
5 T$ J; Y+ {& h0 f3 r, h外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。( J: z9 ^0 m' N' |# h3 ^0 x3 y8 X- `
6 a  u* }5 q6 W( T
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低7 H: I$ m5 U, P9 }' f- E( r/ w
( p3 {! [  u4 E1 B/ S: P4 I
过了以后再调到最高,再做免杀。, R4 i: H% f4 \5 T9 T" \
- r. Q0 f3 u, S- o" h
以上是废话,5 _2 k) |0 n) S8 i" d. o2 i
, ]$ g9 Y6 l* U* Q: C4 p( [* ~
好了,下面我们来说下常见的免杀输入表方法。
4 h3 L* s) @( l2 z9 ]' C" N( ?0 F! @9 [; T; \; ^
一。移位法1 ?$ J, S! a/ p; [3 v1 |
; B0 _* j) x$ C
这个已经过时了,我们的国产杀软及时的跟上了时代,
( q0 J! z+ B( Z: Q# K1 b" F8 j+ w. E* m" e
移位法在去年过金山和瑞星,还有江民都是可以过的,6 A0 D9 r$ B8 Y5 d

! m' F$ T- c- f3 F4 ~: m6 t现在的杀软智能化了,移位么?呵呵 ,追杀你。
3 R! P  P3 r5 [5 l9 M% d+ s
* y' `4 w6 U) N0 u如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。% \( g! A9 f- B1 y# m% ~  }- z

+ b6 A$ E% U  n9 D二,重建输入表
1 n, q! _& L# u) c5 c3 ~7 Y' l; n1 ~4 _5 B0 c  Y) E5 r
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈% U5 J- p: X/ s" |3 b' M$ {8 s
, [: V# L' N5 U
这里我介绍下,
& m) P2 F+ @& \: N9 x. f0 h0 W/ I7 G, b, c% m
用到工具:5 [9 [! E4 ?( w9 f% ]  H& M1 M- p
importrec1.62 R1 N: }0 D7 R1 L
od
5 G  `5 y7 o9 U" bc32asm0 a( g8 A/ `5 V/ D+ U% _3 c- T* C
loaderpe
! `% l; V* T' O& G( w这里我们简单的介绍下,如何重建输入表6 e' v6 l* _8 ~
5 s4 U7 p3 m1 \+ ^  L/ A2 Q$ s
首先吧文件拖入od,打开inportrec1.6
* @2 R* t' v' S. ?; I# t$ s! b
如图 选择拖入od的程序,6 Y! O; H+ Z: k0 O7 ?) G) T' L

, L1 |# f5 S. ~) u9 H) @1 @5 r8 W& F, }
这个时候,我们打开loaderpe,7 h. l3 Y3 G3 V  l  o

! G/ [+ E- s  m0 d  r" Z  ?拖入我们的木马
; w6 r5 x5 j. g7 z( g% W+ g0 _( e3 E- [
4 K1 G$ `, }9 ?9 \$ F6 f选择目录,
9 O1 w* e8 W* t: {8 W
% W- ?$ p1 ]1 t9 U0 \我们看到导入表这里。。。. P( d8 D/ V3 j) v
7 U% \+ e0 v2 v, T2 A8 y
如图:  I& w) _% ]# z/ j  W8 R

$ @  b  B! {- o+ e* Z
, t1 u3 k% W( H2 XRVA地址是0001D000  大小是0000154C
! W' ?7 \" K% v8 p* i1 b$ Y
: Z8 o+ }+ j3 O# E. K" k好的,我们把这两个输入到import1.6里去
$ j3 f& _; R! v& p  n
# E% T  Q0 G# o* }9 X就是在“加载树文件”那上面一点 $ K( V7 {- H/ O$ R! ]* O

6 V3 A( p3 H4 B, q7 k$ d输入RVA的地址和大小。( W3 L6 C2 c, L
, J8 g5 \& f! N- F  J7 U% n% h4 m5 X
点击“获得输入表”" Y; P$ X$ D2 K$ F  M
) y: a5 D7 R3 q  R! q: F
然后点击“显示无效的”
* Q! I* |+ |9 E& e! M
- g; c1 j% t" k0 g- T, y3 M接着importrec会自动列出) I' e+ c" }7 Q- e0 }: ~- E9 L! s

6 G6 a6 Y# L  p2 R9 y我们把深蓝色的字体  右键   剪切无效的指针( P4 D1 b# _* i9 h6 ~2 G7 G

- t$ J( {; L. y; @# h! g9 w5 f; J0 a# m
最后,我们点“修理dump”
# v3 n8 s$ N# C1 H2 i. g5 g4 ]" B, b
9 v+ e# e3 b* h' }( Q选中我们的木马就可以了
! _* ?; V7 r. N0 p8 {0 S, C- D( U+ u, K7 @* x8 l5 i
最后我们要用到c32asm
* s% W' |) d$ |9 u7 L. {/ Y1 r8 f4 l; f
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。: F/ l  `! C; v1 N* U

0 N. \3 P+ W" g5 p9 \, {这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
; h& U' \$ r( ^2 Y0 s8 T: g) F8 k: X" q! Y
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,* O/ |! \0 L. Q

$ E; M# p& f7 Z' l# x我们把马子拖入od的以后,打开了importrec1.6
5 v) p# W  t8 g& t
) b$ J  p, \* B7 Z! V' {在选项那里,选择根据序数建造输入表和创建新的IAT
: F. F9 h1 `4 a$ s
) m6 o0 r; a' O) g1 ~如图  F0 G/ s( Q: m/ g
% W5 J7 J! g7 F1 O. J% d

0 B7 _' _( ^$ Y  w7 e, r' ^8 a) Z以后的步骤照上面的方法继续就可以了
& B7 l2 `# z. H; _6 i6 f
0 l$ A5 R" s8 H. ^: l  k不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
7 E6 x5 M5 a0 V+ V3 E' t* g% X
9 t  u2 M# N! p# @+ @3 m因为kernel32.dll的大小不一样。6 U. w( `5 [! Z5 {7 u2 o
, _' ~8 T: W& Z* Y+ }" p# W" r  ~
3.修改originalfirstthunk" e5 I7 R1 v  o1 _' b& I
3 u) h3 u: t/ ]
如图所示
/ X+ w% b! ?0 i9 m. ?
7 C/ Y( F8 A) F( h' m6 M# n- n  h( y
我们打开loaderpe,依次点  目录--导入表(后面那个横线)
. Y+ u: r* E) i0 p% ?  ~: t
1 v/ t/ L( t* @( H4 q/ s( y" `  \9 m/ f我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
8 i& k; m7 [8 |$ Y6 ?
1 J7 K  F' x) O0 V6 |2 K) a( Z9 u6 l& w我们右键--编辑--把函数后两个00修改为FF- g% b9 d. t, ]# j5 m; a

3 N. E9 N# O, i& E# c* _# d这样可以过小红伞查杀。  虽然会出现错误提示
% P$ K5 s2 `5 {* o/ K" K: ?' h
  L: c* p$ R! s- ~+ t6 t! a但是不影响木马的功能,不影响上线。
7 Q; T" l! A+ v2 i6 M0 R4 u
! f: O0 W& Q- l+ q. f# G4 j4.dll后面加20 90法过卡巴查杀
) y- n! X7 H5 W. i
1 O* j" y$ Q0 k- A' v3 ]) p需要的只是一个c32asm而已,非常简单但却非常有效" X& X2 y2 B# s! r/ T
5 P7 h+ r0 C5 z, W% Q+ W3 w
如图
# a; L6 s- E& b. d  T# [
3 {9 n; D( Z9 W: V; f+ V& _$ ]& |# Y/ ]; s) r, {* H

7 i% T) P9 W0 U3 H我们可以看到,
" Y5 k0 L# y) A5 ]( c0 V6 @+ _0 r  @
8 k, W% q2 b* V1 E: t在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
. e% g/ y; ~+ J) Z& c
, |- }. Q: M  y6 Q这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection; C" `& J- T' h9 f3 s  G

; R2 a" l# \$ l. I  r+ u我们只需要在他的所属dll后面加个20 90就可以了7 c/ L' C) p. @5 A

- s' O8 M: l) i/ ]卡巴目前还不查杀此免杀方法8 k7 r. E5 D( N: |  _. v2 s" W

" h4 c1 D! J$ \
, Q  \: x, ]3 d; }# y唧唧歪歪这么多,打字有点累了
7 i, H& f' z" k8 a- l3 |( [8 A$ K. j3 w8 g% z
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。7 J5 g( w6 Q# y0 [; g( G- p( ?  a
6 M5 d/ M  |* B* H' [/ ]
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表