返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,2 C3 x2 w3 t) m1 |( F/ [' _; R
2 b+ B; ^' z: N! `3 S0 f& A
特拿来分享给大家。% V/ v' O& |% g% F

" {5 `8 A9 z; @" W2 S& h- M9 _今天我们不提我们国产的那些杀软,真的垃圾的要死," M+ O. u( T  ^  u! @9 [

" ?- X/ V' W4 }3 n. W上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
1 U5 A7 C9 I! n$ K: g( Y: S: b( ^2 o+ y/ Q; W. x+ Z8 g
我简单的重建了输入表就把瑞星搞定了,
3 ?* k6 U( k* `, n" q% v, M" x6 U, G& Q. }0 t4 R0 h
失去信心了。我曰2 l+ r9 f! B( u2 a
. _" s+ f! ~8 |
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。; \) s8 D: P6 h( R9 ?( z# O
2 R: x: D8 x: D% g6 }( e
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。* Y* A" Z1 \0 r/ {* u5 F  o+ m

( E9 v8 ?+ L2 J' }2 e8 H外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。! H5 g' p2 q: c

# }0 W. N/ G: ?& p& t9 J$ H& S- I高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
4 @1 W- a. o% c6 h
* r- {/ \# |. W: C+ X  v5 m) W过了以后再调到最高,再做免杀。3 Z7 h6 o! D1 V3 R' O% N9 J0 @/ o  O

/ O7 E, |+ Q7 q6 P+ j# Y以上是废话,- g8 f' I6 l; A$ H

% K# I4 ^7 k% M. J好了,下面我们来说下常见的免杀输入表方法。6 S; t- q# J0 r. X' n
4 I: M) R) s( b6 h; e7 T
一。移位法; R- ]6 i- G) H' I$ g
3 t" T( U7 h2 ?2 b7 |
这个已经过时了,我们的国产杀软及时的跟上了时代,
- Q0 h& h: \# U  n* s
: `  w" o- P. d, r移位法在去年过金山和瑞星,还有江民都是可以过的,
+ t  o. e8 D5 I! R; L$ \3 d) y/ E$ D/ B* v. E
现在的杀软智能化了,移位么?呵呵 ,追杀你。
2 c) s. Y" _; f
. r6 ]- \. {  V. C5 h; ~如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。- V7 A2 E0 x3 \1 Y8 e" I5 Q

8 }' ^" o" k7 w二,重建输入表/ p2 j( S" U$ y$ K
! W* k$ P, E0 c$ W
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈0 X2 v+ ~1 |7 g  z+ J7 }
  }( M9 w, ^) h) `& J
这里我介绍下,
7 q" F) R, g8 Y' f  E1 z
5 f' i2 `' E! F用到工具:# @2 h9 _: [* S% e9 Z
importrec1.6( m3 h' z8 a8 `3 b  ~
od( u$ K  R2 w* I/ ^
c32asm. h9 e- c4 y& @4 J5 \; i* d3 t
loaderpe
# b1 f* u3 n5 B+ J/ N0 J4 H7 [这里我们简单的介绍下,如何重建输入表
* L" j! S# C9 _" l" w$ Z0 I  Z
' ~& Q  i2 v3 T# X首先吧文件拖入od,打开inportrec1.6) @- Q. i8 `, m
$ V- Z2 {2 p! c3 p  p  {- u, z
如图 选择拖入od的程序,. X! Y6 _' @- n7 D8 X
2 g$ m7 k# ]# ~

# R  l  b! |4 \) O  \这个时候,我们打开loaderpe,
& C$ E' v9 n* T9 A- E
5 A$ V7 Y4 Z5 O! {* S; }/ l拖入我们的木马
! k8 a# C; t4 k5 H7 S0 L7 T5 x3 {, e+ g% Q
选择目录,  r: ^, ?# r3 C# P& x$ P

% a$ I3 Q' C$ O3 ?我们看到导入表这里。。。0 P  A# w! r( l! u, ]( T
! }/ H4 ^" Q& N2 S4 o4 a
如图:
' y' Z& Q3 m. Q7 |: E1 x' Z! D% v8 q. K; L' F3 s* x8 E+ m
" s" i+ s8 A% `" u
RVA地址是0001D000  大小是0000154C8 O! J+ e+ x% L% ^

2 t% C! K4 g/ n0 j6 w6 o) J好的,我们把这两个输入到import1.6里去
8 f. V& t( V8 ~/ W5 ?( e  G9 i. Y; ]5 b' s2 }* M6 ]8 @
就是在“加载树文件”那上面一点 / p. B- a3 d1 V) z/ j% K. i

7 c# R# d/ l  \5 W输入RVA的地址和大小。: |! Y" N6 X( b5 W9 t* z. W  `; h
2 Z: n  h' g' j5 q. v' `
点击“获得输入表”
" E( X9 K7 A! d0 @6 {( a- d6 m, w- R5 X( N+ [! ^3 o; e
然后点击“显示无效的”0 X+ t( @9 U9 c8 \
; t5 l0 ^7 a. a: b- y5 D9 e3 b2 Y
接着importrec会自动列出
/ `5 _4 S0 F: B) q  [/ d7 j
& A4 B) b5 H3 G4 N0 V我们把深蓝色的字体  右键   剪切无效的指针
7 W; x  D9 N6 I: l9 u( {
0 z* i2 l$ x: ~$ `2 H' m  C* ]
/ ^3 Y  ^  c1 x0 M. {( q最后,我们点“修理dump”( `( @, o$ R: @- X& V! u6 ^9 R

6 c( l$ {- E$ `6 R# V+ r% U选中我们的木马就可以了. U6 z0 V5 f( E0 C& K' L5 J* U

8 R4 ]5 |6 ?/ V6 S( n最后我们要用到c32asm
( S5 M/ i; S- j1 N: T+ @  C! {& b7 k! m7 C
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
5 }0 L( f* e/ b( h) i+ T1 @( W( h: N
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
9 e. M3 {- K: s  R
$ q% d; C/ L; C! ~) L' u6 Z+ K这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,1 O0 j# V$ c0 S: Z+ ~2 ?; |0 I/ A

6 s$ O3 P- |( R1 O9 O我们把马子拖入od的以后,打开了importrec1.6- C1 \+ d$ a! E3 m8 Q/ e

/ q# N0 d5 S) S& o2 ^在选项那里,选择根据序数建造输入表和创建新的IAT2 v& k8 K5 V0 v8 o0 v  G4 G
* ^/ `# v9 |: @2 k  V7 Z/ u9 K
如图
2 s0 Q& \$ Q% ]4 z# J0 m3 r) w
1 ?# d$ |  Y; V0 U+ x# Z4 D+ O
8 j& P0 g. r8 ^0 r4 E以后的步骤照上面的方法继续就可以了
1 S+ W7 u2 R/ ^2 i
4 k% z  _) [& ?$ W: l不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
. ]* Y1 u6 j( `% _; J1 C# t& ?% P3 O
因为kernel32.dll的大小不一样。  ^# z4 V( ]+ W. I3 z% T
6 u: K) J+ `- r3 Q# L% m
3.修改originalfirstthunk
0 p0 A2 d4 I) N& Q. I0 r  u3 f9 s5 G& F, _! g
如图所示, K% F1 b6 i5 U5 N

% F0 e& D% u6 [) c
( c& T1 J% c2 ?1 L4 h我们打开loaderpe,依次点  目录--导入表(后面那个横线)
/ G# I: k* _, m! f; w1 N4 f$ l0 v
& k+ A/ @( M4 N2 E  G我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll+ M6 L: G1 A# @5 a- d4 C! U

6 P5 j* R6 h8 \7 H: d* P我们右键--编辑--把函数后两个00修改为FF) f, ]7 n- D( h6 D5 u; L5 T, s

2 C/ P) g  N5 {2 k+ D; e" E这样可以过小红伞查杀。  虽然会出现错误提示
% L+ o' _/ s5 J' \$ y5 ?, u5 k) c5 W9 k
但是不影响木马的功能,不影响上线。4 b/ V/ V! y+ D4 k( d$ X

$ ^; V' E  j3 I6 ^" s# k+ a9 H4.dll后面加20 90法过卡巴查杀
4 G( e* ~# H! h/ z5 `
5 U2 _; u2 ?# _! O需要的只是一个c32asm而已,非常简单但却非常有效$ G- X: H; f$ M& s" G
; a2 ~5 h1 r6 t* U. h7 y' R
如图" J4 q1 N( r) v6 j8 k7 n
  M4 F8 V2 G' O
6 U3 x+ P' ~7 i, f* t6 k
* ?( B; g( R1 {7 V5 S" `
我们可以看到,; `1 a0 u& H0 T  A! B+ h- r1 k9 y
) m( X! V0 ]2 A" S: I' {
在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90$ i. c# f! T$ p# @

# r, D4 _  G; E) E+ m$ \这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
* l+ P' \2 t0 c$ G- f# K/ s6 R9 e6 |2 s' _
我们只需要在他的所属dll后面加个20 90就可以了
$ E9 I( U( b, K+ R
% d4 v9 A; [; w5 `" F4 N* M5 j卡巴目前还不查杀此免杀方法/ F8 a% P0 }, w9 S% z$ P( N- S

/ `+ p: K+ U: W4 x! P: H) w+ t! }8 t! H- p+ V
唧唧歪歪这么多,打字有点累了, s% x6 d  E% R# a9 ?* }

0 O2 h. N% [/ M. A以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。$ ]! B  O6 g1 F3 u
+ N$ W) s( g8 H- M$ I  t& \: W
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表