Board logo

标题: [原创文章] 木马免杀之免杀输入表篇 [打印本页]

作者: 1335csy    时间: 2009-3-31 11:30     标题: 木马免杀之免杀输入表篇

最近和一位木马免杀牛人交流,感觉新增进不少,
7 R7 u% R/ g& h* ^) A( O+ V, [8 ?! o
特拿来分享给大家。$ {) K; I) @4 e! m: }  B: J
" m$ _4 e- |. {" z5 q; g
今天我们不提我们国产的那些杀软,真的垃圾的要死,
+ Z5 m- N3 `2 h( s. ?
/ s/ ?, L7 W, y! L9 |+ m上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表/ d8 Y5 a- E9 c4 G& F

: q) g  g- m: n  ^/ e) r% H$ t' I我简单的重建了输入表就把瑞星搞定了,
  g5 s, R6 [# d0 H4 f& p3 k! V( {- p
失去信心了。我曰. W+ w/ {8 Y$ J* G6 x: \

1 j5 A( S8 }8 f3 I/ c; S* q今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。6 l/ b. x8 M% n, u% y  c' E$ s
) s+ P) _' E/ M: O( j
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。; q: e, c5 X  F: Y0 U, l
9 c, k4 \( y1 m$ C& K
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。1 D" B, @+ L% u) H4 R6 [& {
7 e3 p3 i# q: ^7 n+ q! J
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
0 S( g: E' h0 v% }( b$ B* s7 W* i8 H0 w: y% r1 ~$ Y
过了以后再调到最高,再做免杀。4 V: s9 P4 J$ x5 q- {6 @1 B
! _- G8 u: U# z/ v
以上是废话,$ K& K+ |4 l6 j" K% Q
( I/ i$ ^5 ?% B+ V8 [: i6 \; F
好了,下面我们来说下常见的免杀输入表方法。3 p$ {' y" w8 \! p$ Q

1 H1 t" ]2 f* P! D6 [" K2 _2 }) y一。移位法9 z7 Y! }: P' l7 Q# c3 ~/ B
- `+ X; ^% Q4 Z+ G) h, S1 e
这个已经过时了,我们的国产杀软及时的跟上了时代,
' b9 I* V- M8 Z) K( S9 N3 R- t. t  [
移位法在去年过金山和瑞星,还有江民都是可以过的,
$ ?0 l( {/ A8 n3 s3 v: k* s
- C( f/ p7 L8 y& e7 f' e现在的杀软智能化了,移位么?呵呵 ,追杀你。; _/ K# T* A9 J& P7 I

- O+ g5 \% |/ i9 d如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
. H( v* T1 v8 y3 L, g6 s. T5 K. e- K9 A% V2 s* h3 m
二,重建输入表# P# n9 C  P( Q' L3 Y

7 E% @: l( E" H5 h; _效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
8 o! U+ V4 d! ~
& r8 f7 W+ ^! P# W+ m' P* }这里我介绍下,
+ B5 I3 i4 c" ^3 m+ p# E, l; ^$ d1 Z3 a) [
用到工具:* @7 u, ~! P+ O& |; M5 N
importrec1.6
4 ^/ o2 H. v  Z+ tod
# g' C4 A9 E; ~2 T6 @8 wc32asm
' }& e4 [# |/ O3 s+ }2 u" r, w* X3 Nloaderpe* b- A: B8 t6 r! Z
这里我们简单的介绍下,如何重建输入表
) z4 n) o# L% C1 |4 y! i3 C/ l* @1 t
首先吧文件拖入od,打开inportrec1.6/ @  W4 Q8 p" G3 a8 F
/ t# @% w' o- m  g$ B, u
如图 选择拖入od的程序,3 w) L( N" X- }2 N* \/ s

! Y9 _# @9 ?( p. Q: ~* E" G- q" z6 R8 l# t1 M8 x& [; c. A
这个时候,我们打开loaderpe,
( v- Q: q0 n, Y9 t( j
) I8 R( y4 M4 x9 u, r$ S拖入我们的木马4 y7 |& t% L5 T- e1 c
! `8 d  n- Z; O: B
选择目录,
- a9 ]: g8 s$ c5 N% y9 t+ J' P0 _" {9 S" U- C" @
我们看到导入表这里。。。# l+ R5 }9 p$ I1 L
' H- O- C5 C& B+ V# U9 {
如图:
9 L6 }2 g; j4 t% W; w& A3 K" O
, h7 T, ~; F, Q: W* @7 ^& D; _0 n
RVA地址是0001D000  大小是0000154C# n$ |. P- q" `, r. p0 S9 n
5 U9 Q5 D# h: \, Y9 d
好的,我们把这两个输入到import1.6里去
9 O' U- [. o* K( O4 H. i( S5 B  ~  u" Z3 j& K* P2 M
就是在“加载树文件”那上面一点 + y* J: I5 c) l8 b" O
) N% `0 N/ Z4 H) {9 d8 S7 P
输入RVA的地址和大小。
: K, m3 T3 y: I* ?  x8 \  p2 f$ t+ y+ G" a2 b* {0 P
点击“获得输入表”6 J/ _3 z" w' }
& `/ @4 }* Z- k! F! _* w) r
然后点击“显示无效的”2 _% [7 b- ?2 @+ ]) a4 t0 b& l5 D
4 Q2 @, C/ @. `' o4 U8 e
接着importrec会自动列出! B) ]+ G* n" J) d
( ~2 X( f" X9 D9 G
我们把深蓝色的字体  右键   剪切无效的指针
2 }6 e/ `1 {, k7 T
8 {" b" P7 P! g
* P5 ^3 U) ~6 n! S6 Q$ k4 M8 K最后,我们点“修理dump”
1 _3 X( B- D) j; o
8 `# \/ r! v( |: `6 ~2 Z选中我们的木马就可以了& y% Y/ _- ?% A8 t

5 F; C# ~( ]: j9 f最后我们要用到c32asm
# H. l3 ^4 J& x
, K- s$ E  j, d# a" E我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
( R, Q7 n- i, B  ]# h
/ M  u7 ^6 c, J这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)# {2 o1 @8 F! ?. r- a
# V2 L* A6 e% g  P  k" V
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
2 y. k8 e+ ?, M4 \3 K# `  T# R6 z+ Z. c
我们把马子拖入od的以后,打开了importrec1.6
; T+ U8 B& K; {8 ]' x% t
7 R7 c% U) ~0 U$ ]4 q6 ~6 l在选项那里,选择根据序数建造输入表和创建新的IAT
! n) K4 `& d7 k+ ?" Q. Y" I( r! m0 F% ]( A6 I: f% J5 A
如图
% j2 g+ Y& t0 R# B: S/ \* C
7 \7 B8 h/ e8 j0 [3 j' j3 F7 g( B& x0 _, b
以后的步骤照上面的方法继续就可以了
$ Y  z' C; Q) j% p/ M  ?1 t' |( ~' j# w. y) _: u
不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了) \( O+ b9 j6 z+ Q5 H
# y3 L3 R/ p! x8 S
因为kernel32.dll的大小不一样。
$ c' ^7 R( m2 v7 U" d
1 ]& H) t4 {- v3.修改originalfirstthunk
+ @% d5 }3 `* U; P% ^* R7 b) h
! Z1 d6 C0 T* f  M5 B! }1 Y如图所示
0 K$ H$ O  D: Y' O
7 q- x! j8 _! `- \$ X2 P; g. Z. b% P* n  {
我们打开loaderpe,依次点  目录--导入表(后面那个横线)$ D( P$ l: ~2 N, d% ^
# ]7 t" ^/ w1 u! ^
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll$ u9 m$ e1 J/ y! A$ }! u

0 R# p3 S, A$ ?4 f& l8 l0 Q( k我们右键--编辑--把函数后两个00修改为FF9 P9 ?9 u0 [6 K# [7 m3 F
4 S$ E4 Q& B$ B" V% U. |& `6 d
这样可以过小红伞查杀。  虽然会出现错误提示6 o" S( J* z$ ^, ^% J: U0 K

( a; W4 U4 Z! T+ R但是不影响木马的功能,不影响上线。
. g, n8 w) I: q8 Q; [( {5 x) Q! F/ A0 v: x
4.dll后面加20 90法过卡巴查杀& f$ s7 A3 S, D3 R$ D* m: R
0 K; ~( \; A7 r- H9 J+ y
需要的只是一个c32asm而已,非常简单但却非常有效
4 w6 R: B% U6 c& @4 G% O! N" \1 ~! d' f; m9 A) v4 o
如图7 I6 |1 {1 p) A, O9 ~
+ e5 L8 W8 z) A# t4 H* j( x

1 x8 v& w- [& F8 d$ I' W+ C
& I3 M4 r" l' X( O; E; U+ D5 z" k; c我们可以看到,
( w& J0 ?! r6 e4 d
6 k# T; Q- z8 h- `$ ]3 F5 U在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90- Z& T- o4 V+ ^, y2 t) r& m

( y# J, P: g4 n5 P: X这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection) F! K$ i# ^8 J; m4 d6 n, }% J

6 E! c. ^# I* T& n! M. ^( C3 _我们只需要在他的所属dll后面加个20 90就可以了
8 r3 J( E- U3 A0 _
5 a5 s# E2 W# Z- R; n& q, U卡巴目前还不查杀此免杀方法1 Q; Z1 h( K- T6 l; s1 j! b2 D) M8 w

0 }, d" t' z% @/ d
# g, Q: l( y/ J7 M+ h唧唧歪歪这么多,打字有点累了; y% S+ @' K' |, O5 b

8 N0 g6 r8 r, }3 S  p/ V以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。3 \+ d9 ^9 A4 n& p
* ]2 `4 A8 x; }/ m
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]




欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com/) Powered by Discuz! 7.2