返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,3 }# \9 z6 w& u# l9 F% [

, g5 I+ r7 h% Z. Q3 P特拿来分享给大家。# B! M4 _) R$ j- `
! |* b' r8 y6 k
今天我们不提我们国产的那些杀软,真的垃圾的要死,1 ?! F- S# y6 N
" t% L! d3 S6 S
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表/ a1 B4 j3 S/ u. e; P$ T% d# H: {
) Q0 f: d6 J! [' r# p& z1 N1 X) S
我简单的重建了输入表就把瑞星搞定了,
* _- {7 r* [. _/ O( D4 u
1 C8 s$ f. I" Z' a$ H" @失去信心了。我曰9 ?7 \# A" d$ v2 [$ b* ]

1 g9 R, I2 q) e6 U4 k9 V今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。3 U. L, ^7 F! a9 U
) ^) R' O8 V4 V5 P. Z
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
, R8 s! i7 }. L  _. R6 x  |& ^8 w# S: v
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
5 v0 a+ c3 G" @3 N- M6 _
3 ]1 K1 `+ B  W; G) e5 {- N2 U高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低5 H7 ^" x! a2 z& \
& N9 J- p( _% {
过了以后再调到最高,再做免杀。
, U6 w, [/ ]) p8 h4 o" j
2 c+ c/ O  y8 t8 V以上是废话,
! z, P& M! |1 m; w/ L4 ]2 o  J
0 [$ j* w! a, r0 T好了,下面我们来说下常见的免杀输入表方法。
* m$ I" z5 ]4 H9 U' n5 _
. _0 B' Q# y4 t- ^$ l& l- M一。移位法
4 n9 W9 u# @1 h
& |; R! ^, [4 ?8 z% @. |- d这个已经过时了,我们的国产杀软及时的跟上了时代,7 g! Q: F9 F) i$ G

: n5 _5 m& Y. _1 ~3 n移位法在去年过金山和瑞星,还有江民都是可以过的,  `! R  n! d$ T+ r

. |: J  w# o$ g  _  C. S2 m: s4 g现在的杀软智能化了,移位么?呵呵 ,追杀你。  D, L- N/ c; z$ G' A! r) b$ T9 `0 O

% c1 s1 g6 F) ?8 s' [如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。9 W% G4 G$ p) p# O; \# C& N

1 ]  ]$ A0 D, ]二,重建输入表
7 T% E; U1 L" E* y- r# b/ B+ }. G
/ C- z! R, z9 s! O; Y- q效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
, A- `$ z2 i7 u9 r6 d, T7 W2 H
1 {' o6 {& {& D1 d( Y) l( [8 e) O这里我介绍下,& u5 ?& g0 @+ W7 P  \3 Y: A

: H. S* e- N5 }' ?" S3 D! K用到工具:
. K& b( x; b" Q- Pimportrec1.6" l: V6 F% m; ~0 q
od
  s: H$ }( r# U. v* R- M% Sc32asm
4 c( W3 a8 Z# A! `( \* qloaderpe% F. ]! @7 k8 o5 m% T& a
这里我们简单的介绍下,如何重建输入表
- ~( j9 B) r/ ?4 P# b+ i& H: c: i5 T) C1 }# M) z6 |7 ^0 U+ [
首先吧文件拖入od,打开inportrec1.6  O( p# D8 Z! J) ~# |' g$ ]' Y% b. A4 v

% s* T' E! h. {6 W5 o+ R& t+ B如图 选择拖入od的程序,
6 h" k- ]2 W3 e' b7 a7 J: n
) f3 B& k: [# K  D9 x) e, ^8 K( K. U; d$ c3 f5 U" y/ p' A% i
这个时候,我们打开loaderpe,. ]: I( ~+ F/ ~3 ~7 g2 Q- I3 u

3 T; B' I) q1 v7 @5 _/ a% s& ~% D拖入我们的木马
/ C2 j: t" \: ]6 F& b! F5 D# v5 K. B6 m' ?
选择目录,- }1 R* d- D0 h

0 Y  [# h& F) [* d/ J- P我们看到导入表这里。。。
: y9 J; ^. k9 ^
# {" D% F" W5 Q如图:: R2 }: ^- w1 {; i4 j& C2 o

# |' k- Z2 F! ?; m' C4 l# l- e$ \( y/ y& K  B0 E0 _/ {
RVA地址是0001D000  大小是0000154C
4 `% G. B( `# t2 M- L& B- p$ K' P/ ^
0 o/ n( u; d* E7 `好的,我们把这两个输入到import1.6里去
8 ]. q1 \1 ~4 q* S: X6 Z
7 `4 E  f3 ?5 J! J/ m* B就是在“加载树文件”那上面一点
: n6 _8 N( g: y0 q  }$ q! z! S; ^4 M8 R
输入RVA的地址和大小。& d; W! K7 ]0 d3 X

' w! `! {( U, p$ a+ @4 s点击“获得输入表”+ o3 N% T, {/ Q& E6 B

$ w6 L0 h2 q, C, w7 e3 ~+ J# s然后点击“显示无效的”0 _  F( |5 C& D1 u/ M6 C
" `* j; a, @+ I
接着importrec会自动列出
/ F9 f3 I/ ~* a* b2 {! T) i. P2 D/ q  W4 ?
我们把深蓝色的字体  右键   剪切无效的指针. N' m- ?/ k$ x3 S

- u% k4 [6 Y. h) v% b
* y1 |! ~# s" ?% O! ~最后,我们点“修理dump”0 r$ H" S2 A! i/ D. U

. _! ]* ^3 ^' I( D7 V; U3 j选中我们的木马就可以了
2 I* f9 P5 n8 K/ D" E9 k% l+ Y' D* f/ d
最后我们要用到c32asm
6 Q" A% Y# j. n6 k4 L& j! k
; O/ d; l$ ^( }. p0 l我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
6 D+ H3 Z  I" F* X7 [2 X2 ~: }2 d% r/ g
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话): g$ _/ y8 C) c3 Y- X4 N: t8 O
, [/ x) K% F% w- b9 b- T+ u* n; w. ~
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,/ U  Q3 O% `4 m6 n# n: n( T( T
) n. s* d4 l/ o3 y4 \( x. Y
我们把马子拖入od的以后,打开了importrec1.6
8 n5 o1 W; e8 j* `2 {& E, u0 v3 z" P" U' A" |$ \; _  s
在选项那里,选择根据序数建造输入表和创建新的IAT. `- G  K7 k$ B2 P
, y" a  d8 l# a: C6 ~
如图5 l( D# g1 y) Q! u: }
. X. K. S' q) p5 U  ^1 n! Y

$ `) l( e1 I- {, X以后的步骤照上面的方法继续就可以了
$ N3 g/ Y; j1 m- |3 b% x' R4 h& Z* i! k! I
不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了0 X) ~$ l+ I+ G" |

; H- a& m8 ?3 z9 @1 D6 g因为kernel32.dll的大小不一样。
) A/ U' T1 I: [8 Z2 k/ h5 G# r: ?! I0 U9 N8 C
3.修改originalfirstthunk1 z2 f3 y' ]" t) g- U% C! I, F' _

7 E3 W6 e* {: e% ?8 x1 l如图所示
0 p$ E) S5 Y' N5 m9 q! A" Y1 g) Y: N5 ]2 T8 f
; {- M* S3 ?$ L$ ^
我们打开loaderpe,依次点  目录--导入表(后面那个横线)
% C  M" D: f( C7 \$ ^# ~+ [1 F5 e+ m& H" U' t4 @& \* G( ^
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll. S- u( g# V! o$ X( j0 r: c0 e

4 C6 ~. D2 g2 `  o# L- S* R3 f4 T我们右键--编辑--把函数后两个00修改为FF# A% v# ?1 Q  t$ m/ n

1 b( p# z9 ^2 ~) [4 m  M' {% s, v这样可以过小红伞查杀。  虽然会出现错误提示# R4 |. Q! G9 o* F

# P6 {+ F. v/ f& `* l, G5 j$ y但是不影响木马的功能,不影响上线。. i: t6 A/ U# k2 Y6 }: T3 o

7 C4 b/ P9 h5 P4.dll后面加20 90法过卡巴查杀
; M" a* U7 s+ E) Z9 g; l$ V, o+ N; G0 t% f# D: U
需要的只是一个c32asm而已,非常简单但却非常有效1 f. ^+ b! z& k$ J4 Z  }

3 a; {* z, }& i! L$ W如图7 R& w3 l$ e8 I+ R
5 _! e5 {  B, _' C
8 f( h+ X, ^; T4 f

: M9 [8 K& t: N/ y我们可以看到,$ F/ z. v/ e7 ]# z, f4 U0 ?

( \+ ^+ r$ ^; A7 f0 P4 {在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90( q) G" c" D# o4 ]
3 x! U/ T7 z% ^2 O7 a0 ^% ]# I
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
7 a8 t; o% j$ R- b; P
$ ]+ z7 \, o5 B) Z# p0 j, k我们只需要在他的所属dll后面加个20 90就可以了2 h8 Y+ J$ H& J0 p
+ M: h0 M8 P4 j. O4 j' ~) [
卡巴目前还不查杀此免杀方法
3 @  @% d" f( X& M( @* b6 D0 i1 ^9 L; @& E1 D
& ?' @3 r. P+ z( x, Y7 I
唧唧歪歪这么多,打字有点累了- r1 e2 T5 u5 {( x! q3 X: }% K
: U( u! i4 R5 m  `
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
2 e! J; l" ?. F4 o9 j
  z. |1 N5 C& R7 _  M+ a, n8 f[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表