返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,8 n: r2 D: N! d7 V8 {8 L5 Y

. @0 U0 A  f( w' V3 a- T) S% M特拿来分享给大家。* V' d/ r: l' c" v
9 v8 U9 h) m0 X' Z* p3 u
今天我们不提我们国产的那些杀软,真的垃圾的要死,
1 @% {( p! |0 m6 D) v
1 f* S7 c. e1 L- F8 w- E, |上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
4 |' [. G6 u4 v- t( l4 R6 Z
9 O, c5 b& C$ |$ S) A我简单的重建了输入表就把瑞星搞定了,
. n1 A6 ?9 ]7 i# `! n" G8 N& |( D' A9 G, y  Q
失去信心了。我曰: j9 z1 m0 e1 p( v1 Z

. d0 c8 R6 L5 L( d! {; c今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
2 ^' o8 N9 M) t4 w+ |' m$ l6 B
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
. a/ X+ C1 ]) g4 _' T* X9 \2 @2 I& w# N
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。3 z! V0 B# e1 e: B7 g$ r

, Z+ }6 @4 z4 ~& W, d0 V高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
" V2 n+ Y/ P7 I% T
; b+ t+ [5 u2 d过了以后再调到最高,再做免杀。3 J3 E& }  d7 i; N( L
2 P' n2 S: A" I- y- x& d
以上是废话,' V6 {( _! k" x$ i' ]' x& M
% B4 Z0 a  B" t; ?( t8 ?4 G  O: r
好了,下面我们来说下常见的免杀输入表方法。  a3 j: s7 l" Y6 a2 E& z

$ `! `4 k! l9 B  N) w# d一。移位法' X. {5 `3 @# E

5 U9 H5 a& K# S/ k这个已经过时了,我们的国产杀软及时的跟上了时代,
: [. ]" {! [: X" v# t+ A) {7 ~. v! o. H9 [; E9 y6 o; |
移位法在去年过金山和瑞星,还有江民都是可以过的,( d/ Y5 w- _! {* l
: _; Z# E# O9 ~
现在的杀软智能化了,移位么?呵呵 ,追杀你。1 g9 k* l) ~: j+ D. a, O. h
6 Q( }2 ?" x! M: w3 T# x$ n
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
3 A" u" u5 n7 b0 r4 U% Q7 W  S' w$ F( I7 {
二,重建输入表$ f# H6 N  A' F& X- F+ x  F& U
0 t3 ~+ C. B. A  N
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
+ D. C6 ^4 L1 C5 N4 {
3 q2 F) _1 p$ Z8 x: T4 ^这里我介绍下,$ B' s" W* k# I4 A# ?5 \
4 y6 r4 r* {: p: t6 M, }& _
用到工具:
( u3 A( y; ~. b% ]importrec1.6! ?: S; u( C2 d
od
) m  G7 I+ w) l5 y1 Oc32asm
% d& X& g! C; v2 f* T  Rloaderpe
, ]+ M* B; s0 I这里我们简单的介绍下,如何重建输入表
1 _" U4 `, W" ~9 {% F: N, A+ ^
4 {6 N) w$ F! }/ M3 {首先吧文件拖入od,打开inportrec1.6, [% o4 V+ Z( W4 F  u

0 l% Y' C. r) K2 X" _( q1 e如图 选择拖入od的程序,9 B+ b8 r' b% b+ {

3 i: C4 D& m! A$ j, s' O9 P8 a$ M
这个时候,我们打开loaderpe,
( Z9 a5 h$ |+ F8 J% o- I
/ F" \) E! s1 V! ?0 Z" s拖入我们的木马2 Z. N  ]9 h, D* V/ G( K# L4 Z
- d* h* E. u8 c7 T+ s- N: t
选择目录,  B" E" G, H" f. q4 s! [

( E* F! a6 q) }# W5 G5 K0 F# H) W我们看到导入表这里。。。
0 u% h% g5 u% ~7 n- I6 l) r+ m8 O
2 c) s2 [! T/ A" B如图:* W' `' c& p% V' V
5 j+ _6 B  T* t. i" C
! p& l6 P8 D# m
RVA地址是0001D000  大小是0000154C! Y' h8 V' x; s, ~. o
+ h! S$ D. ]1 b6 r
好的,我们把这两个输入到import1.6里去" X8 C  E* }5 T' D

" K! e9 k* [2 U2 R9 d- u; O) y就是在“加载树文件”那上面一点
/ ~2 S+ ~' V) s* X
9 _3 }$ W4 x3 s" Z7 A& p' [输入RVA的地址和大小。
: j7 u0 l7 z6 o, x$ N& n0 a
! k# X' `# b7 m+ J! ~" V3 c# R0 |点击“获得输入表”& p$ C5 W6 g. T$ D

! ]8 z/ G2 S# b- V然后点击“显示无效的”
. t. ~0 [  s9 a& Q
. n0 U( E& _1 i3 m2 w" X接着importrec会自动列出
( u( _/ V6 h2 S8 j9 {7 ]1 w( w( S8 }' K% p* p" `* W+ N
我们把深蓝色的字体  右键   剪切无效的指针
+ V' U( @/ d; ]' }7 g" m) u  r4 C5 {- t' w

; X! m9 f3 M- U/ u8 ]$ ~3 S/ Q最后,我们点“修理dump”
. f  g9 b; n8 r0 M8 j- u2 `4 o/ j" V
选中我们的木马就可以了7 A" N' S  T% [  H* A% x

7 x+ E* q- c" q( c+ s最后我们要用到c32asm; w/ ~! l6 T( i& ~1 T
( l$ _, n7 J8 W9 M
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。: A, [( l! X( q) D& a% r
1 r( ?& N& F1 |5 N; z0 v- J5 ?  }
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)6 ~# b2 C5 W% \2 R( {, v$ X
9 u- Q) m$ I6 |9 g+ N6 [8 t8 r
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,% [, N" Q4 |5 ]- T

( E% k) S1 Z% b2 `& I9 d我们把马子拖入od的以后,打开了importrec1.6
5 I& ~* I* g2 V, ^+ R8 l, x+ r1 r5 |* }- g0 {
在选项那里,选择根据序数建造输入表和创建新的IAT( E2 \% R  ^4 ^" ^2 J
* I2 [& _9 k" f' K4 ^) w
如图! l, n% A9 \3 v% u4 a) |7 n( `

! S# Z7 }2 L$ R5 E7 r0 k! U
6 C1 H* F0 T+ ?& V以后的步骤照上面的方法继续就可以了/ n# f$ ?1 N+ s

: h; }! A& ^, u5 }不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了' ]% o) e& i( c# v

+ w9 G* W, M0 k% p6 Z3 P因为kernel32.dll的大小不一样。
4 p1 ]; }. C4 R
0 k& ~6 E3 Q& h2 h3.修改originalfirstthunk
9 e9 S( J+ W$ a/ V
& k8 f6 `% ^& G8 x2 p如图所示
8 ]$ D8 U" F+ |5 T9 A4 M! c. B3 d* n8 s: k" w' c5 I# ~
9 }! Y: G: Q0 M) E6 L$ Z1 F
我们打开loaderpe,依次点  目录--导入表(后面那个横线)
5 g3 j8 {1 F) B! f2 ]% f1 v" J4 E7 M. ]: t: |; D& P% c: I* l
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll0 [2 M( v- E5 I5 s

6 r7 k% O, Y: E: E7 {' q我们右键--编辑--把函数后两个00修改为FF# W$ G8 S) n5 F9 t& X
& u: O- {, x( B% \
这样可以过小红伞查杀。  虽然会出现错误提示: u9 {4 ~, B# ]) O& ~$ _. }
- i" Y# n) W, R' W
但是不影响木马的功能,不影响上线。
& d+ r. m! O1 v: V% Z( J+ @3 U9 U3 g4 C
4.dll后面加20 90法过卡巴查杀& z* d! M+ s3 [  }/ A* Z% P2 a

! _4 R1 r6 `0 T6 j0 q6 K! _* h需要的只是一个c32asm而已,非常简单但却非常有效
; z4 n7 ~  J1 e* W8 j# s  J# _2 q+ n" u) w
如图" W2 D( n9 G7 ^- e$ S, R# O$ j
: r( S2 j' G5 e, ]) b8 K
' X+ m/ R) y( T

5 c! W, L; |0 Y, [( K我们可以看到," \& `/ H3 e+ l. L2 m) s
% ^3 X9 \3 \: [# S+ \  A
在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
( t* R1 \' p3 ^( b& P/ c/ o% T6 l2 l- t5 @2 l( ?
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
( A9 D7 i: Y2 z2 n1 O) Z# B: Q9 j) @0 I2 K# P
我们只需要在他的所属dll后面加个20 90就可以了$ }" B. C+ E! f6 L4 h) x

0 A1 W% Z# ]5 S5 N卡巴目前还不查杀此免杀方法" R/ n* U! n) h; I; g

# E! w/ c9 Z$ i- b, {: o2 S
) v5 R7 ~& |$ n4 T6 e( M" _唧唧歪歪这么多,打字有点累了
8 Y0 f3 W" F% z) c' y1 U
1 M5 ~  D3 v( E以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
6 y; m/ C4 {. n0 U
3 j- o7 v' R* t" _' c1 P[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表