Board logo

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

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

最近和一位木马免杀牛人交流,感觉新增进不少,9 d; \, W4 ]* }# i* L8 t6 H; ^2 Q0 Y8 U
  x# W* F, C6 O0 V7 D  T* K/ [% o! _* i
特拿来分享给大家。1 {0 C* J. J4 C' X: K3 Q& s
6 @- O$ J- [) P, }3 b
今天我们不提我们国产的那些杀软,真的垃圾的要死,
2 B6 P/ C- ?: E; A# r3 D$ i7 Y3 v: w$ v; ~/ T6 w; \
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
  M+ S' ?) G- o& K4 O" V* K$ H+ {) V, ^2 ?7 T- C
我简单的重建了输入表就把瑞星搞定了,
2 c/ K% F) E- \2 R8 e; b' D# o, P8 _6 ^5 A
失去信心了。我曰( J' r/ j8 H0 a$ E' m

0 w0 T* u1 @* v6 V今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。0 e# I- b0 b' c! S/ R
4 b  M4 M# F* ?- U' E. W
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
: @, R& c1 ^4 ^7 F2 s* d6 J7 p" `6 i' g% D- o. k. @8 N
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
/ r3 J8 l. e  f
5 J. e; j5 ?# m6 z9 ~/ u$ `高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
; P6 d7 u. W+ @1 v+ @: t* |0 U' \7 N3 Y
过了以后再调到最高,再做免杀。9 R4 q, {/ I) R
0 {8 c3 r5 ]& j$ Y, ?7 \6 [
以上是废话,. X/ _$ s# {- ]- ]+ u, h

3 K6 K* p, o1 x1 `9 l" q5 }好了,下面我们来说下常见的免杀输入表方法。9 [5 z# [$ g% X) e2 {) R, V# s
4 K1 Z* Y9 v6 y' k2 w
一。移位法
9 t4 O; D. \: m8 P% X
# O  O9 E- A" v1 ?这个已经过时了,我们的国产杀软及时的跟上了时代,
" |) I+ ~0 b- s( W* M: b; [% P6 b, y6 b9 k& @( p
移位法在去年过金山和瑞星,还有江民都是可以过的,8 N& i9 ~7 W) s  Q

3 i1 E( R2 b. K4 o, n: T1 @现在的杀软智能化了,移位么?呵呵 ,追杀你。1 L: l! n) E8 s9 V

  p! Y0 F* S6 z0 [# R: }2 j如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。1 ]) z7 r  X; z& O; H5 G
6 k6 K" D, w# ?! e+ s
二,重建输入表( V7 J" O, [! h) b4 F& }7 ~" _
  K0 S7 |, G/ _' I
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
4 O1 q. b) G- k' t3 c/ t! f7 `/ K3 e$ z- p
这里我介绍下,
3 B3 T3 {4 {2 A* A0 t$ p# w# O$ M4 A
用到工具:
1 s8 N8 ~4 I9 }: O4 simportrec1.6+ z* l. W2 i2 O
od
( L( y. q- Y9 n, jc32asm% D) j' v4 H1 \8 ^5 O) n
loaderpe1 ?( M0 K* q) R9 K! W/ ?2 K8 f
这里我们简单的介绍下,如何重建输入表
0 i3 x) V# m+ Z% v& j7 a/ p6 `* {
首先吧文件拖入od,打开inportrec1.6
( H, M: Z0 o8 _/ P! F% t, h6 o2 W/ [6 [6 S
如图 选择拖入od的程序,
: I9 G  }: L1 @" b& t) D3 a% w0 P1 u
* ]+ o% i2 x3 @4 u# w) V/ B
, _% T$ X( W* W- _5 a2 a$ }这个时候,我们打开loaderpe,8 t7 d" K( J9 f8 \1 f7 b* x+ }9 t* }3 O

2 A, Z3 ^3 }" Q) R. K# v拖入我们的木马
9 S+ R* K2 o/ P, o" i% \6 D4 G; F- X" o6 }
选择目录,: ]) u% j' ^  v
$ E1 t& F( K% s* i
我们看到导入表这里。。。
1 w# ^4 A+ g  z% H8 L7 I4 _% r  w1 M+ Y
如图:
# k  M" B/ e9 J9 g- O% ^
3 k( Z: C2 l; `7 g* q$ G& N% n
RVA地址是0001D000  大小是0000154C/ Z/ E. {, k; T  @8 W/ Y( l  v! \
- y$ x/ k! x. m) I' I
好的,我们把这两个输入到import1.6里去
! w+ O! ~1 m0 G- d. A7 z- W
4 M8 [; A+ u1 B% W4 ^就是在“加载树文件”那上面一点
/ m5 q4 {5 L) }4 _. g; x/ H* t- _, V6 E/ N
输入RVA的地址和大小。# c! M2 Q% Q, `) K' r

9 U( u2 R( T+ X) N/ |" ^3 `3 H点击“获得输入表”, l0 W; t% g4 s
$ Q7 |4 T9 z3 W) N9 q% i
然后点击“显示无效的”
& a2 e  F! \* e" G$ ]" a' `! p5 }+ r. F+ u
接着importrec会自动列出
0 b! }2 ~* X# @5 R: C
! {. Y$ m+ ~$ `) ^& r我们把深蓝色的字体  右键   剪切无效的指针& q$ w" l- [+ b3 Z1 A: }8 V
9 w8 h6 \) f$ H) }2 d$ o$ F# {
6 \# h  J. Z# J' z- P/ `0 N2 L
最后,我们点“修理dump”
' M( F* Z7 |& o7 r% A
3 v1 a( d: Y% o2 p7 c选中我们的木马就可以了
7 ^5 H( |/ H# u8 U. q8 S
7 P0 b% t; ~! u$ ?! N) L8 S" r! E5 l6 _/ J最后我们要用到c32asm$ q6 d8 b. k& `4 x
; i2 D4 J3 |$ ~: Q% r9 |, i& H7 l
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
( H6 S! D' p1 F! S  ?
2 Q6 x0 a+ {% @  o这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)' y5 ~/ F6 H% z  n3 |# ~  }
" r5 L! L1 z4 ?7 f
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
' e- e: r% {& s" i" M2 V- C% _! F1 ?! h# Y3 C
我们把马子拖入od的以后,打开了importrec1.67 o: ~6 m! m6 ]  w7 m/ k) D
/ k$ X, |+ D# H; J& t
在选项那里,选择根据序数建造输入表和创建新的IAT. _/ g3 P" O5 q7 @
' E+ Y& ?6 g6 A+ z: Z0 V  K6 h
如图: D! K9 c* S. N$ F
- }. @8 w2 p9 @5 i1 ~. M
( G5 H/ Q; u) l, X- Z
以后的步骤照上面的方法继续就可以了
; F# J. \; \1 u
& U8 L1 c& [5 u* L; I, K3 }' b6 K不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
+ k# E) H% L( ], {* {2 f$ a( a) S
& s. u( y% [4 ~$ }& A因为kernel32.dll的大小不一样。" m7 o; Z3 c$ C

3 H% o1 @, l% e3.修改originalfirstthunk
& o. b  p4 a! P
. S* d+ H# b4 v% }% y3 h! e如图所示
8 l* F; }, Y. X) H- L1 j/ Z% L1 `
$ T+ L, B; l- Y+ [  g# ]& Q1 R8 q7 N( L; {
我们打开loaderpe,依次点  目录--导入表(后面那个横线)6 t5 K/ d0 q' I# N4 a

0 D  |- L. D# N0 v8 j8 c* o: v# l3 b我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll: Y  m& R9 A) E8 ]3 X6 ?

% q# L, G4 w+ ^  I# B7 M我们右键--编辑--把函数后两个00修改为FF. Y: V3 o& N0 K' g  J
9 c  J8 Z! ~; \/ Z. Z% J
这样可以过小红伞查杀。  虽然会出现错误提示
9 S1 z* h$ b1 R- r! ^' [
/ z- C6 {+ a3 g" v但是不影响木马的功能,不影响上线。+ s7 h; p( h+ x+ o3 [8 D

+ }( b+ ^$ j0 Y8 k4.dll后面加20 90法过卡巴查杀# W9 z) a0 ?' G' K
1 T, O0 @3 x( r& {& l+ q
需要的只是一个c32asm而已,非常简单但却非常有效& Q7 Q, Q1 k1 o- x
: v7 @' d. }5 L& u! j
如图1 I3 X5 l- a$ B1 p3 n

! r, e$ k  y4 o# v9 a$ R) z: v- w5 s6 A4 r8 ~6 \9 ]

  M4 L: J  Y* @1 U/ Z! }$ h: v* c) t; [我们可以看到,
5 g) [; n7 f8 J. }
) |- F4 O  ~5 o* o# @" A+ E# J在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
6 s( J& T. B: n! k4 T$ g" Q$ x; M* [: |8 q1 h  n5 D
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection- Y: T# u1 [6 T6 }8 e
+ r4 {: E: x) L: s8 q5 b; x
我们只需要在他的所属dll后面加个20 90就可以了1 H. G+ ]$ a; P& Y5 W# X) |, y

& e, f/ {5 H# M6 r, X" h卡巴目前还不查杀此免杀方法
  f( W& W0 ^0 L' B: J9 d5 i: J. x

& A8 N* w: ]1 x唧唧歪歪这么多,打字有点累了& [8 B5 k% }8 Q4 @: g7 Q' [  Y3 K

7 j! A  C2 m" r& N以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
# ~3 R4 G' b  {6 X
9 I% I2 K) c9 G0 Z[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]




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