返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,3 V& z/ p' y6 b9 ?! K
) _% o2 {5 h' ?: D8 @7 M) u$ _) ?
特拿来分享给大家。* \" _' F* N# V' Y  [

+ F% y- n5 o5 `3 A! v; T今天我们不提我们国产的那些杀软,真的垃圾的要死,* M2 B* @" n# \6 w2 H7 t
# j  o. R# B- z0 A, i
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
2 D+ w- y. M( w. ^/ b2 x& K8 B' S, q6 h. v, t/ y
我简单的重建了输入表就把瑞星搞定了,1 L% T9 {2 x5 K* k3 I+ M) S
, o0 o! z2 W. O1 r" J
失去信心了。我曰( b2 l+ T4 T$ T7 ~( B
" @0 E2 ]4 q( O( `
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。( O- p0 i* ]4 c8 R6 S' n  m3 c. r& b+ N% ?
3 V( r( S9 _5 y% `# S
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
; Y# v- M7 S7 {  h" p  J1 m. n7 N" M, E$ G% T' A
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。& q5 G) u- b* p8 _8 c
) u. @' b* W7 S1 D/ v# l
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
9 s7 l  K. j8 W3 y! o. z% T
! X, }. J5 z5 T& }$ R/ x+ R过了以后再调到最高,再做免杀。
' w- x9 J6 W9 \1 C" a1 z9 x. K5 g1 S3 S+ b  t4 a+ W
以上是废话,
. s/ \/ v; {  n: X# _8 P- I& Q3 P- }1 j0 V4 N2 Q: r9 F
好了,下面我们来说下常见的免杀输入表方法。
0 S5 e# h! t/ y& U
7 f1 r) ^1 ]7 X9 h9 f& g一。移位法. x* F" N1 T0 S4 }- A
8 {/ |5 P+ g, j* |- p
这个已经过时了,我们的国产杀软及时的跟上了时代,( _* }1 {8 {) f& D9 j9 L# d
7 L( T1 B5 G& {* A8 {9 }7 R( _* Y
移位法在去年过金山和瑞星,还有江民都是可以过的,
" p' j. ]  l. A+ t5 R6 Z" X( U  M, J$ `: M  O
现在的杀软智能化了,移位么?呵呵 ,追杀你。6 U9 ^$ ^6 n4 J2 K5 o

$ m- \, c( w. u* Q+ T如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。& g+ _  Y# L2 j

/ l$ t5 v4 P. b+ o- q7 A0 E! X8 z二,重建输入表
: c/ }9 A# n4 C6 a- Q% C, }9 O) j* t+ b: p; j
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
6 X! y5 H( w0 Q4 i1 [8 G' y& C, X* B3 s& i1 K" B: V# X
这里我介绍下,
" z) C& C9 l& y7 H, n
1 K! \9 ?+ R* `* K用到工具:/ y% z3 L% Q3 S+ c4 U) \, e) j. Q
importrec1.6
5 S! _4 `3 K, l$ h8 a/ Ood
" I3 d' a, W+ r9 J. P- k" F) sc32asm
# G4 _. j) J& E( K( K2 I- }loaderpe
3 D# k' c- {, o' I/ r' I1 g这里我们简单的介绍下,如何重建输入表2 m" s, e& _$ D* C* A
  f' T6 @( w$ Q4 D1 x& v
首先吧文件拖入od,打开inportrec1.6: E) Y* A" n$ F* q

+ p& [+ e5 v* i% N如图 选择拖入od的程序,: ^' K$ `- ?: t( o' i: E8 s8 c6 e# u

, C, B  Z. `5 b& A9 S" M6 ~8 T5 [2 g' m! o/ B  h% a, Z- n/ q
这个时候,我们打开loaderpe,3 Z! P* X% G" a8 B& S( @

. k8 O. u: m3 y% Q拖入我们的木马* I0 H( [" h4 i6 R
1 D  G0 o& @7 W0 \$ f
选择目录,
' N' A4 k% w6 Y, i/ L9 Y' {
- F- s* N8 d% ?' S! H2 q8 m我们看到导入表这里。。。
  y( a+ H9 p. b1 {+ `# G" r* c. o8 t
如图:8 R, O% B" w  t0 V( M, r& U: H6 S

" m3 g1 Q/ L4 T  {" d7 q" l  i+ a* U' J- {5 v; I
RVA地址是0001D000  大小是0000154C
' X  `0 t. S5 I
8 D# [5 c6 @# S5 }2 r2 ]6 }# g好的,我们把这两个输入到import1.6里去9 x% J. i) r3 V% V! j0 g
: ^: i2 e7 \- E% ?
就是在“加载树文件”那上面一点 0 D7 w! S0 A8 X# {

3 ]9 v& h8 q2 m: M8 ^9 t, z1 c输入RVA的地址和大小。! `+ w8 D$ O* S  K& D% c. |$ x0 W; V2 j& P

4 E& t5 Y6 U* U5 W7 I点击“获得输入表”/ M2 p3 f, X  T5 ?9 m

! j! ~6 g  L8 M然后点击“显示无效的”; n5 M& {0 ?% D; z: ]$ g; i
' j& Q6 z0 d$ l* V9 M. _) o. n
接着importrec会自动列出
. A+ s( \& i" C- q9 k& p+ [
: B/ _# ]: F; V9 n4 D) R1 P& U. R我们把深蓝色的字体  右键   剪切无效的指针
  s8 P" ?- y% \+ v6 U" J/ B3 P, f' ~) U" }( t4 x
! s& }7 d( b( `$ c
最后,我们点“修理dump”
! n4 Y. M8 ]- T2 R7 c5 ?3 C6 y4 f5 L0 @: n3 f7 [1 N7 @
选中我们的木马就可以了
7 K. V. |; M3 ?# P3 G$ ?
% O) H4 Y* I- g, K- F9 _: u  o最后我们要用到c32asm" E1 M8 K) D2 b8 p) g
  R# o- w9 u0 l, q" l
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。7 v7 G: C' r1 Z& `  X0 [1 Z' Z
6 |: i& B( ^7 C! e. @5 @4 ^
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)& i6 k2 h$ G9 P

: `' s6 s, N2 l" J这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,- k# @! X6 @* q9 ?, P6 l& h

. s; G2 s, N' s2 |$ u0 `我们把马子拖入od的以后,打开了importrec1.6
8 `3 ~. d* }, |! ]: o3 P6 f- e  A  [1 A
在选项那里,选择根据序数建造输入表和创建新的IAT3 P' ]0 S) y, ^4 X  }) {# j* h
1 }0 M: I) @( I  ^1 K
如图" C- G* z# B  M/ ~
+ y; j# @- q% Q, y
1 Z) I. ^9 X* I2 Y7 [' K% O% O
以后的步骤照上面的方法继续就可以了
+ n% Z3 ^* g* u
" m" S0 K. |+ A/ ?' [& X( c- D9 J- W不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
, [( D! l9 I8 M: \6 j7 X, `: j# M8 n5 s" H
因为kernel32.dll的大小不一样。0 n4 Y) m2 k5 {! |# m' t6 m# |
6 }# j( V, p0 Z3 B6 S
3.修改originalfirstthunk$ L6 I1 {2 G5 r0 V# R) {6 O

* e4 I+ o' k- ?- b) g& l( ^如图所示
% i! S* k: j: J1 s* L7 T+ v/ [7 A8 a- e; b

8 h6 [. p7 Z# [7 t3 S& G+ B) L我们打开loaderpe,依次点  目录--导入表(后面那个横线)
* I7 n# t, N1 Z7 v
, f3 O8 Y- K0 n! x& l) V我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll9 G+ u/ k" W# s+ o

8 e  |2 B7 D3 i" d  V" |7 y我们右键--编辑--把函数后两个00修改为FF
* H( ~7 D9 e3 _0 Y! |2 i
% {) q9 \7 F/ ^* x  W这样可以过小红伞查杀。  虽然会出现错误提示# x$ I' V/ N, ?- j% b
2 w3 L; U* m6 H& r+ _
但是不影响木马的功能,不影响上线。
3 \% I9 H( e6 P3 e$ \  {7 t6 Q/ w0 v5 u/ q. O1 a
4.dll后面加20 90法过卡巴查杀
7 M/ w+ B' O: C5 [
$ u% J) e& `4 [& l( {5 X. b; {( s需要的只是一个c32asm而已,非常简单但却非常有效# K9 c# y& ^2 H- x% R9 S* p+ f# z
: y9 p# W3 l- d( R& q
如图
' N% y5 T% x# ?/ U' Z+ U- A) j) W' i7 `2 E7 c
% Z/ K/ r. [- c. r- `

) b2 L' [7 \* D/ V$ i5 t( }9 _我们可以看到,
# |# z' c" g+ _, {7 x  K' H
' o7 r& z3 K( {  ^# [/ P% X  N* d8 w- R在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
9 L- R3 e/ e& z3 u: C. g5 n
0 }* a4 k& j" l" P% U7 W* n5 C这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
3 p/ ~. R3 H8 z0 ]3 D; A2 P0 k, |& I3 Z- y' p3 P
我们只需要在他的所属dll后面加个20 90就可以了
& k3 Y2 I1 u: U9 J' m2 I* f3 [- Y9 B3 o; }8 c
卡巴目前还不查杀此免杀方法
* M$ r* ^  q3 r( T
4 X9 j3 K9 R$ K8 ^7 p
) o; `* T8 \) g/ C唧唧歪歪这么多,打字有点累了0 |, d1 Z' X. I9 w6 V

( t  ?# {5 Q4 r" b. z以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。/ }  |; s1 x. B0 y
( c0 _: H: l; N) v
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表