Board logo

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

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

最近和一位木马免杀牛人交流,感觉新增进不少,9 Z- L4 J) ~- V3 M
% T# N: [) C. \: I+ m, o! x" r4 p1 c
特拿来分享给大家。
% y' {; g- n+ v' I+ T* F. P; }0 l; V) d4 }
今天我们不提我们国产的那些杀软,真的垃圾的要死,
( Q. G" e7 {( }& C! ~( k* z6 a7 s7 Y! a% c$ s' p/ K
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表9 M/ }, A$ b9 U8 c" h) A+ F+ M

4 [- S( _# z9 F0 l" h" b4 Y我简单的重建了输入表就把瑞星搞定了,
" z1 @; {# V) Z
1 j1 m1 ~5 r: X失去信心了。我曰+ {0 ~$ O+ f" n: v% E
! q' n2 }: ]! M$ m6 R7 W8 P
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
) T3 d+ f+ p9 F- `/ I: h4 A) `) L9 B0 i; K! x
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
; Z  u, T8 M& J( f/ x% F& o; H) m; p* a! b: C9 h7 t+ ?
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
& o7 p. A- e1 ]( D9 K" M) j& D- o3 ~' `! W* n% e, O7 h
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低/ k8 ]9 \* q0 x+ Y( n

8 w3 c- U0 Z, m( s9 }" M过了以后再调到最高,再做免杀。
/ j# ~4 j9 Z3 ]" H" L0 x; Q5 g0 k) B
以上是废话,
( \1 F* B/ J" ~; Y0 ?' ^) s# F& R# j' {9 j, @2 N$ }+ v
好了,下面我们来说下常见的免杀输入表方法。
9 A' q& @2 M' e/ |, {& b3 ]5 G! R# y1 F/ B
一。移位法
' H3 v) n$ Q  i" a. g0 f) b: H  ]( K- A) w. O0 B$ U3 H& S
这个已经过时了,我们的国产杀软及时的跟上了时代,
' f, A! |, p( H* U# F" h
5 j1 @; u; T% j: ^; r  s8 g2 A移位法在去年过金山和瑞星,还有江民都是可以过的,
  B( o) i( e- ^& `+ H* M$ C4 k9 z0 f$ ~  o
现在的杀软智能化了,移位么?呵呵 ,追杀你。
: |% {: P2 `7 Q8 a, k
5 ~$ Q* y0 P- V- i* Q5 n+ I如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
4 ~6 W' [( u: Q5 q5 O+ g; O$ V
4 F0 ]0 H5 B7 A6 q, T9 n: O5 h二,重建输入表
  f6 p4 Q/ y7 C9 _
' _* G- z  p. ^7 k; r- o效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
( a& `2 U7 `  m5 U
: t: t, e" n6 h这里我介绍下,
4 L. S9 B4 ?2 R. B% P4 C/ |2 o- Z- V4 m
用到工具:
# g2 r! k8 M2 l5 Oimportrec1.6) n- }0 S4 i- N, x1 i3 }
od( U4 Z+ B( M% t
c32asm) _* M  ?: n# I7 \
loaderpe; O3 j& t& y! C
这里我们简单的介绍下,如何重建输入表+ w% ^. x: ^! S- b5 n$ {; W3 y
/ O2 R- y' J* [. e. Q8 s/ v  B6 e
首先吧文件拖入od,打开inportrec1.6
6 C8 X, [' ]8 F6 F4 l6 F. K
1 h* k- T( G4 n7 o0 I如图 选择拖入od的程序,( x8 E' {9 \: d' }4 @8 `. z6 z
- `% e$ t1 @& u# E
$ f0 `+ i9 j) `+ B( x3 F
这个时候,我们打开loaderpe,2 I5 I& }& d9 M- X

. h2 n6 o! c3 _拖入我们的木马9 L6 B( k, o. ]. i

) Y6 T. H! {  \/ U选择目录,8 a% K; [+ M4 I7 v1 ]' u* ?, ]

& n, `6 t9 ]0 h我们看到导入表这里。。。/ B4 t) u. n% c  @" I

4 O$ i; O3 x" a如图:7 u# c% a" H) [& Q9 [
# C7 A% x( ?2 R$ @

2 W6 V  Q4 K0 ]4 a- E8 _RVA地址是0001D000  大小是0000154C
% O: c1 x9 K3 l8 Q
0 L1 w$ K, L; i0 z. i! U, a好的,我们把这两个输入到import1.6里去
) w7 K/ l$ S- s
4 C8 [$ o/ G% |: R就是在“加载树文件”那上面一点
% t# }4 m+ E! O) @! f3 Q* y  g0 m
; Z1 [- t1 }5 _1 f7 m输入RVA的地址和大小。
7 {2 f; A3 Y. S- _5 V
5 D. @9 [/ w# U% B2 f7 l点击“获得输入表”
; X- r* J4 }; T2 l. w3 K& p1 F
& |) {- ^. k6 R* t( ]然后点击“显示无效的”% n$ T" u# r8 X/ X% h) v/ T: z

# S) D! {6 W: z$ v4 n# N# O, ^接着importrec会自动列出
  g. [5 N; n3 X  L7 |
& v$ i# f0 c% y- O9 A我们把深蓝色的字体  右键   剪切无效的指针
5 {$ h, K. i  |) V  B  w+ W; i% b

3 g9 x3 A9 Y% e0 K: G* q最后,我们点“修理dump”
; \; v. y3 k0 u; {; J/ U
  z7 P3 v9 Q3 Q& I7 p选中我们的木马就可以了
$ Z/ K2 n# m+ [/ u( n/ t  `  v% T5 C; _# Z! T/ s& K, n/ y
最后我们要用到c32asm3 r; I) L% {; e. K6 t
6 F& v$ ]& f. Z! C( t* A: |
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。& {$ G% C* L. M6 U" N
- N. W* h6 D- w2 L/ }
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
/ j  r5 B- m. W$ D/ l4 g
3 _" X: D& t2 x' u. n' G这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,2 u  Y# d: a* t- K+ L, G

3 ~6 n- t, j! x7 H4 h6 V  u: i我们把马子拖入od的以后,打开了importrec1.6
2 y* \+ D( ?, O; ]
) M  y8 F4 c  t/ q/ D6 w在选项那里,选择根据序数建造输入表和创建新的IAT2 S( ?' @, e& [* P& s

* w% G- ?8 _8 h; }8 l9 K0 C7 I如图
3 a7 ~7 u8 @  V+ b8 p1 G; d
$ z. J' v* R3 T7 k$ j4 F, K" p
) U$ n' ~6 `' T9 b* ^/ Y# r0 [! x以后的步骤照上面的方法继续就可以了
( {& N( c" q0 w' w0 V+ }  b) J- F( ?, k4 }
不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了4 v+ Y0 ~/ B' ]  o! F6 K
0 H8 `) G1 q% J/ b6 N% k% I
因为kernel32.dll的大小不一样。
6 `3 K( _  Y3 a! w/ n6 K' ]3 `& @  M; C8 M  t
3.修改originalfirstthunk
" s7 n7 D$ Q  ?9 O- G
. A# j) {3 u: V: q8 j! D如图所示+ z/ h( y4 e' ?0 M/ B

: R, Y# r  A/ G1 J" N3 n6 `' Z5 z. s0 C
我们打开loaderpe,依次点  目录--导入表(后面那个横线)
9 c8 M3 @- f# p7 Y
0 W5 i% Q+ f* c' ]9 h我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
, U, i, l3 U. L# \$ v# G! A: }' O" L1 n
我们右键--编辑--把函数后两个00修改为FF$ j" N8 J- i, o, t& T8 q

8 j; b5 Q$ |: ~0 L1 F2 B这样可以过小红伞查杀。  虽然会出现错误提示
5 R4 y9 i$ j* K  @; |: l* E8 d: g$ \3 c# }/ l5 U. H9 O9 f6 K
但是不影响木马的功能,不影响上线。! N# b" ?& O8 _5 w- b

+ u' ~& B3 G8 ?; Z% v4.dll后面加20 90法过卡巴查杀% N7 e+ \4 @" u, ^! Y

. v4 U: K( x: L需要的只是一个c32asm而已,非常简单但却非常有效
# e: T+ F" z  _4 E, d# h8 N! {) ]$ X; u, y# O* y9 v1 z
如图3 m7 O4 K! {4 n1 I/ Y3 _) k8 X9 D* Z% m

4 A6 p( E& ?& |3 Y
9 T- v0 |. p. ]/ J; \  Q- [( P  I# J7 Q- X' O- c) S
我们可以看到,
5 l+ }$ L& L4 ^& F- T! Y
5 X' T0 a+ k4 e* F. k0 l在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90# R7 |+ d  l5 v% n6 Q( e
( @9 D( s) ]& @* |
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
" s) @- V( u- F$ K; T9 H( t- f9 f; Q* \  O
我们只需要在他的所属dll后面加个20 90就可以了/ i8 `9 O5 a/ u8 E: S

; U& e( R* G: A, j卡巴目前还不查杀此免杀方法
4 Y) a; o9 u# n% z& x- a4 k( T' Q6 W- J+ `
1 [3 g/ Z7 h1 n7 f1 e. Y) p4 J% _
唧唧歪歪这么多,打字有点累了7 I9 G5 m8 R6 U; ?7 {! E2 d- A

! @0 C3 r$ L( K以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。" b1 w% D7 ]- e" |; u, S: P

. _) }7 K' r" Y$ x" y1 ^. f& M[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]




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