返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,
1 F6 s4 N4 x6 t6 q) E3 U; X( f8 k! c2 |( E- s
特拿来分享给大家。
" {9 N/ N) H! F$ A2 b! H* q, }8 C! J: K! C2 ^. z. ?8 H1 v
今天我们不提我们国产的那些杀软,真的垃圾的要死,
" [( ^9 F, a: F/ y7 h
4 k# p# i- Y5 W) I2 `1 T上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表7 M2 q. s% |+ m" w5 U

8 h3 v% W2 Z7 q我简单的重建了输入表就把瑞星搞定了,
, D+ c: i* q  v* v2 e
2 p  B7 U, [" w; B- D, b失去信心了。我曰
6 W2 d# _4 g) b" ]& K" e
7 H2 Z; Y" K, D7 H' \4 L; M今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。- ?1 Z1 v7 u  j) L( c) I* T  V
7 u% o8 x" w$ K
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。; c4 B7 _$ ?) e9 ]8 O
! L, R. a0 V. u, `7 u
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
% C$ o  N$ X( U  v# C- o/ Q2 ]5 O, ]. x
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
+ x- W4 |, d3 _2 V/ }. P, u. b$ Y- C2 {. R
过了以后再调到最高,再做免杀。
; H# {4 z4 K- |  U7 |9 p& P  |) J
* ~8 S" ?5 m9 H& A- e6 c+ X以上是废话,, o1 E" i# X3 K; V  g  k7 ^* n
( ?5 d2 k: [7 b# U  k( Y, m; J
好了,下面我们来说下常见的免杀输入表方法。
- v' }( i1 A' O/ k; m5 i; v$ s3 o+ U7 _! o" F
一。移位法
. R/ B5 S0 I# I* i' L1 S! Y% X9 g
% l' A1 H: W4 S+ n这个已经过时了,我们的国产杀软及时的跟上了时代,2 r" g" z5 c$ m  t$ H

: `! ]* n4 f5 R  J3 S8 I移位法在去年过金山和瑞星,还有江民都是可以过的,8 r& `3 f  ~1 S  a
8 w, ^; T' A7 @; a8 ]6 E; D5 K
现在的杀软智能化了,移位么?呵呵 ,追杀你。
' i2 S) W6 ~7 B: a( ]0 H
# P( H* k  b5 v& V! _6 k如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。$ `9 y5 L# O! m! n' N' h+ E

& F! Z4 J" L9 e$ k" g二,重建输入表' k+ m/ ~/ m+ i" t* p# q9 H

! o7 j# \* \5 H效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈* \: u2 X  L+ H9 r! C% X4 c
- H& ]; k8 y0 c1 W$ d$ m8 l6 S4 c* Q
这里我介绍下,
" Q8 L+ n, I. ?! G- W4 q1 w, c, }6 j7 M8 e9 j7 Q
用到工具:: w% l# c3 a1 W2 y
importrec1.69 ?# z4 u; y' b- ?" o& S
od8 @; |* u$ F4 G1 W$ O
c32asm
/ S- O+ U4 t  Jloaderpe
( v! s/ B! f: _; S8 t这里我们简单的介绍下,如何重建输入表( O* C5 ]0 z7 d" h3 P! u

6 q1 S: m, c' }  p/ z! W0 _& q首先吧文件拖入od,打开inportrec1.65 @% ]1 P% ]) |' W0 n
" g( G2 ]% o# i5 g* b9 X
如图 选择拖入od的程序,
* L; N! Z- B* ]4 ~$ e9 j* V: G; u# T; {( L8 ?5 J: |
$ g5 _% A' K7 S, g3 ~; Y1 z" q% U
这个时候,我们打开loaderpe,
, Q9 f3 A9 z" ?- p2 N/ |# v7 I9 g6 F; g. T3 f+ K
拖入我们的木马3 w- v. X1 \# h1 \' [( B, o
4 [. X; u+ d$ t. X# A+ V$ B
选择目录,6 Z! e$ d) t5 U
, O4 J: \& ]2 V! c8 ~+ E
我们看到导入表这里。。。$ R8 R' z% e4 {( ?& d$ x! h: L) C- x

5 L1 Z/ N' G, e  c" d6 G: L& A  q* S如图:) D- Z6 D6 c! e

/ T9 d6 a1 F1 g
5 g( i9 v9 Q4 {# `9 ZRVA地址是0001D000  大小是0000154C
) r& s1 I  R9 z$ T! l( x( t0 w5 w3 x# |+ S3 t6 _+ J
好的,我们把这两个输入到import1.6里去
( m" o* w1 Z/ o# J2 f. f
' g) e- w: ]0 T就是在“加载树文件”那上面一点
4 P. o/ `, _* z: r- ]+ \
5 S, G. ^5 K: \7 ^输入RVA的地址和大小。
# O2 e6 a4 B7 Y+ x4 w, E3 g
9 D. ?, X4 x% i4 F$ J点击“获得输入表”
( j4 m2 w. v' D$ f0 G  c: x! ?0 N# }! f
然后点击“显示无效的”) k' V; w3 d0 T

4 [$ z8 l1 z0 w2 v" y: j接着importrec会自动列出6 B+ O2 [; A! H6 b

/ j3 d& W( k$ D4 o7 G* _! t& Z我们把深蓝色的字体  右键   剪切无效的指针
8 ^+ M- t6 H0 F" D' \+ N8 C  G% o, T" h5 s, c% B

, g1 [3 T4 |7 g0 f# M+ M最后,我们点“修理dump”
3 t6 {* w, g: _: N' p% O5 E, ?* i. {+ R; m- C
选中我们的木马就可以了8 t8 A8 \9 j. y6 W" i% v

: r/ U8 a* g, m& f# T( T最后我们要用到c32asm
+ X% d$ M7 A/ @
2 o* P! k8 U% i' x6 @$ S我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
* W4 Z  B0 Q/ Y. o: q) \6 `
+ W7 u, |4 Y8 x这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
  R5 l/ v" L; c# Y5 p+ c% e* f
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,- P& S) z, ~) ^/ r" S9 k
( X( \+ Q' F9 \" N. r
我们把马子拖入od的以后,打开了importrec1.68 h4 V$ Z5 q6 q: _; `7 F: C

3 e/ G" |2 H; a. `; g3 k在选项那里,选择根据序数建造输入表和创建新的IAT5 `& `4 |! ~0 @! _' o  r

$ z9 I% k/ J. }0 s6 j如图& J/ M- R- y+ B! O

- M& U" U7 E0 e$ Q
) w* M" p8 N  f2 k3 M6 T* T% |' H以后的步骤照上面的方法继续就可以了
# r5 s2 O) O/ [: W
) t3 q' m6 [: j8 [不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
9 n$ q9 R: ~' n/ [/ R0 D7 o( D! j! g& [6 \; l  T" L
因为kernel32.dll的大小不一样。
8 C+ Z+ R; t4 z' }* q5 f: |# O! f8 J+ `! b* q& B# Q
3.修改originalfirstthunk' g/ Z' x8 F* M+ F4 Z# P/ k

& f2 ~; [2 W0 b) \9 b1 O% j; O如图所示% J3 e8 W$ P4 l- E

% L9 {: y% B' x  ^+ G
9 K& Q- o! ^- J" Q我们打开loaderpe,依次点  目录--导入表(后面那个横线)
" }1 _, [# A7 O
8 S, M) J8 p5 z& d" u+ C, k我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll3 W" c8 p( b4 h) R/ x: G9 l

& b: p, D8 y/ }; ]0 s/ \0 H! E我们右键--编辑--把函数后两个00修改为FF
4 b5 z  G/ e6 Z& P; y3 L
* p% q# Y/ l6 J这样可以过小红伞查杀。  虽然会出现错误提示# K3 ~5 _1 ], }
9 v1 M$ r! m( B! x3 X7 G) r- ?. Z
但是不影响木马的功能,不影响上线。. j; P6 l* D5 ]6 T
' m, k9 ]4 s5 \6 I+ [: o' ^" S2 ?
4.dll后面加20 90法过卡巴查杀8 E+ K. i0 D7 J6 j4 C: |  M2 A, H* w
$ A$ `) _- ^  x+ m+ h* U3 N; o) h
需要的只是一个c32asm而已,非常简单但却非常有效
% {) x8 B$ N6 s5 K) X# b) w7 w" x0 d
如图2 d+ f, C+ M3 _

( R/ J7 e4 c* K" b4 _& n, x
1 J2 B7 N  p. F$ z: a
. I7 C  j# ^+ t4 _  E9 S5 Q% a! _我们可以看到,
: w4 E; A3 c3 ]* l3 E$ B/ j' i. O' |9 e% T' T9 |, d6 r
在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90/ s& N3 s3 j% N2 d- U3 M

0 X* y; e# N5 M+ |1 n0 W' ^这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
2 h# B; H& e% Y: Q, F  ]. d
2 p' L* f( r+ e7 _5 v我们只需要在他的所属dll后面加个20 90就可以了
/ e0 L1 O+ Q" g$ D: u8 l* |" o3 x1 S6 Z. i( R2 f/ X8 ~
卡巴目前还不查杀此免杀方法
9 f0 q( x" w+ V; `" R5 F
$ I; F) n+ M- k9 R4 B& M" X) }3 a% G7 v
唧唧歪歪这么多,打字有点累了7 x+ P/ J  [, V3 V! W' s9 K4 d5 i
/ X$ v, }( x6 w" S5 e5 g9 `' Q
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。. ?+ h2 h% a+ a+ w

) K# ~" E, f8 s, z- T& a[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表