返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,
0 @+ P6 K* V3 G- k
7 j+ p9 t2 B+ |5 R特拿来分享给大家。4 E& W* q9 g! g9 b" k

2 |! g/ L5 u" @1 ^3 Y" F+ E! o今天我们不提我们国产的那些杀软,真的垃圾的要死,7 r1 e/ o# r: }( @% p9 |

/ }/ v5 j$ n4 I0 L上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
5 W% @. M6 d  P0 r' X( w' q% _& R# f- u
我简单的重建了输入表就把瑞星搞定了,' m, @' [9 X6 j

  o! F0 ]; L( f; d8 ~失去信心了。我曰: w$ a% U: o( B. g! g* J* c

" m2 r% T- p1 Z- O0 H今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。$ O3 N7 }8 u8 u7 a& V; n6 d3 W
& `3 U2 z9 N: Z: d2 t
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。  K: \9 U7 R9 p/ m2 a

4 j  ^3 D: G9 Y) x0 b0 I外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。) V: ^* S  h4 o; c1 A
. j; U" y0 F# L/ D
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低, Y5 K3 R% U' G( H& j7 H  F

$ ~" h% d7 d, e. h过了以后再调到最高,再做免杀。
) B0 U  A1 r4 @& V7 c' Y
# M; m; x+ K) [: `9 V6 I. I& C1 x7 s以上是废话,6 A  U+ `6 d; |3 X
: [2 D1 F; o6 F- w
好了,下面我们来说下常见的免杀输入表方法。
! p3 r/ h& I' W6 |
, |8 A% M2 A! {; h% K一。移位法. N" }% V- _/ t/ v5 x

- |  @' V8 X, I, _; F3 J# M; w$ B. C这个已经过时了,我们的国产杀软及时的跟上了时代,
+ r5 |. P1 W# v( Z8 \+ ~2 E+ |) ^: k6 b$ X4 G
移位法在去年过金山和瑞星,还有江民都是可以过的,9 l1 Y) I2 g7 H. e% E

4 P1 I) n5 |. ^6 G; \# H9 _  c( c现在的杀软智能化了,移位么?呵呵 ,追杀你。- c( ~& y4 n. T& x
: ?9 C. h" v: @* C! w, w
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
5 `8 _, }; h; g; y! [# A5 i" C2 D" [3 e9 X7 _1 G% X6 j  @
二,重建输入表
# o9 `% K8 b( K* t7 k+ ^5 M$ x( [" _( s5 k
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
+ y* w" O) {8 u8 w- ?0 P) }5 G& T' f/ D! R* i" ^1 q( x, O2 F- g
这里我介绍下,
0 [5 |1 q% e# p- M2 A; V  T5 q: d  |0 v
6 O5 j2 X  g+ N) r用到工具:
% V$ k  d* J; K  B% U- i$ r" jimportrec1.6
& G8 ?# b& U/ `2 _, l! Y$ \od' |1 ^+ m0 ~7 X  c/ X5 y! \' }
c32asm
" T5 p! F2 K6 R, a$ {1 wloaderpe
. b4 @5 @7 I4 ~: I# _这里我们简单的介绍下,如何重建输入表
3 R" n0 j5 q+ Z- ]  Z; @, X
+ Q2 ~7 S6 K( S" b" f5 e' ~1 S* u5 @7 r首先吧文件拖入od,打开inportrec1.6
3 P: H0 h: k* U# h( @- g  T& s4 n, X/ c. M
如图 选择拖入od的程序,6 N3 [1 `$ k  g) z0 M5 l% J

) T6 a$ m$ v5 Z) W3 d" d
" B/ a8 M0 {/ Y5 p8 U# r  @6 a这个时候,我们打开loaderpe,1 L% v3 _' V0 x# w- d# m7 f

9 B% ~3 G+ @9 T拖入我们的木马0 S; m1 F3 d7 N! N# R
" e6 G" ]0 B* @# i4 I. B
选择目录,6 x( I+ F6 i/ W( C( w

; h* t' e6 q# v+ e我们看到导入表这里。。。
1 N+ G  O: [" F1 b$ c
0 n" ^$ |) a) ?- X- V如图:$ f  s' C6 l7 K5 W; S8 j  C
, m! T& T( X  j
$ Y" w0 f2 W- s' y, K: w- F
RVA地址是0001D000  大小是0000154C
+ k) O7 {) n0 c0 {/ x; W  i1 Y) b9 o, T9 |# z0 Q
好的,我们把这两个输入到import1.6里去, N0 x: g! c2 A) R2 ^
* ~" W% C3 ^$ V) w+ p& ?, T
就是在“加载树文件”那上面一点 ; U9 ]9 D( _" ~3 F
' L# B$ O1 a" E" u$ i
输入RVA的地址和大小。3 O  V0 V% V! W& T
+ }, ~" {, U  M
点击“获得输入表”
% C* Y4 N. r, X7 ~/ n  s1 J* `+ I6 W: _
然后点击“显示无效的”
5 X/ j1 f) U$ B/ w; z" H) H7 F$ d9 m* k3 p$ ~4 v
接着importrec会自动列出/ u9 I3 T3 q; O% p* K# }
( l( X# _. J& i
我们把深蓝色的字体  右键   剪切无效的指针
* s- @4 i7 H' x9 V
3 Y$ [* \. I7 a& a- ~. C; Z
* X6 M* u0 U$ G" ^最后,我们点“修理dump”  P. D/ F  m$ C8 a; I7 ^
- T$ ?$ p3 h9 g# X7 ~
选中我们的木马就可以了
# ~9 N' a- R4 J6 q& f- Y
6 S9 w+ \2 V4 q. G  g5 z最后我们要用到c32asm' R: F* m' ?" Z# {* q! e# J# l
0 ?! E0 j, k) {& a! i4 c
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
. M! f& f# V6 T3 p8 {6 k+ A0 i% n5 O5 V7 ?! \! k
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)" M$ }. _& w" H1 ~0 X4 q& o
' ~, q' n! N) p' S  B
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
, Y. n8 w6 |: L/ J! E' q3 L
4 G  w8 e. x' C我们把马子拖入od的以后,打开了importrec1.6
0 V8 U% r$ l+ M, x. l0 R
2 G- b2 T0 @+ U- H& {) p6 D在选项那里,选择根据序数建造输入表和创建新的IAT
$ l/ H/ _6 S  y+ K! J5 Q  s/ Z6 Y- k: N. \2 l
如图
1 o- e6 H0 |8 H* T  s* g; T/ c  q5 s0 x% `8 _0 p* d0 P* ]
. L0 ^( H8 G5 T4 m' s
以后的步骤照上面的方法继续就可以了9 _+ [9 n5 T( Y5 C1 K5 Q
, h# T  i7 w6 |. z5 B* n
不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了0 x" j1 K6 \, ~' d) ?

/ }( {4 B9 M# I0 O8 a因为kernel32.dll的大小不一样。
! L0 z' I( ^) k* o% w" N' {  x7 C! k; `5 J' S
3.修改originalfirstthunk) x7 J8 E: I# j! o4 c$ o
0 M+ n% ]" X. N2 E8 f' W
如图所示4 p6 L' c7 E; ]) e0 X2 d' X& K

1 w; m5 Z) R0 Z" z3 o5 i7 A$ ?
3 ?; T0 j1 ^" {) w1 C" G6 u我们打开loaderpe,依次点  目录--导入表(后面那个横线)
2 w8 v1 c$ o- M; o. H& O" M/ y, _
4 M; U3 Y8 B' ]我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll# }" N; h3 l8 s! h8 P

7 b3 j! z9 T0 q! _/ ^我们右键--编辑--把函数后两个00修改为FF5 h9 y1 i2 }$ t2 r7 w; n1 @
8 {/ }1 a4 s5 S% H
这样可以过小红伞查杀。  虽然会出现错误提示
$ c% }  X+ c' A4 {  b* N" [, H# b5 E6 j
; M8 N; D9 {$ q6 {8 R. x但是不影响木马的功能,不影响上线。
  S# V8 h5 H% V+ s0 I- U- a/ S* C, T) c% g( h6 `3 B
4.dll后面加20 90法过卡巴查杀
2 L' h# Y& E4 ^9 f' {/ J! j& G# h3 T& X6 `
需要的只是一个c32asm而已,非常简单但却非常有效/ t& c7 m2 E( q, E* p" C- F

9 @  G2 @" f* ?3 _' [( Y如图8 F1 P  i+ e) t9 F& M& ?: H
: x5 ]8 V8 O" k3 S; V3 e
. r: I+ e$ m/ Z2 k

2 \( s5 G" l* q4 o我们可以看到,) k3 K: V/ O. K! V$ |) n2 w

, O% s, F/ |6 v1 C& w: M0 X在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
2 [. ?( I( s+ h( C2 n$ o( O: C- _
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
1 ]$ `& _. c; H  C* `1 ]1 g! k# O% f' ^5 L9 g
我们只需要在他的所属dll后面加个20 90就可以了- N5 M: n" {% U% J( J! E; u0 f/ U
: l7 i/ r  e$ H- N
卡巴目前还不查杀此免杀方法
, ]0 e7 z0 P5 [( c5 K# Y
0 A  E3 T8 P! f+ u3 }6 X5 ]* r
$ H3 a$ |1 }' k5 f& _* g唧唧歪歪这么多,打字有点累了
1 E6 a8 v* C/ l, ~) H8 G; i6 b4 Z$ v, h4 E, q' T
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
& ^/ x1 X" e1 |+ p
0 [5 u, d# B2 ^9 r# X7 ]( W[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表