返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,4 S; T* {: j6 E7 y& L

/ h5 S, o; m* i. Q  r' a( E4 b$ `特拿来分享给大家。
* k; i, x2 ?4 [$ e$ Q7 H" _* H! q; }6 ]$ ?7 M
今天我们不提我们国产的那些杀软,真的垃圾的要死,
9 J: g7 `2 R: I" t
* X/ A) M( i5 i2 c7 [  T$ `8 }上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
* E6 _1 r& _5 f8 H/ Z- |# @" k. w& a2 O+ Z* h* U
我简单的重建了输入表就把瑞星搞定了,
0 I& ~  A# {2 M) n9 h8 G4 ?0 d+ }4 m9 T& @8 V) w# K/ v
失去信心了。我曰; y& m' t; v) p; L" s7 X4 w* \
  l1 |0 h2 W* f, x
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
0 L* d" _3 c. T: w1 I% w+ y7 C* `) r& [, Y. O& n: r  |
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。& l1 F$ {3 W7 n* y

/ y$ `, }8 P' U+ m9 r9 a0 T8 x外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。7 W2 R6 x6 L7 \. A
( N) x5 ]) S1 b. b/ H1 _
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
! d+ w: j# l9 I  [* d" ^! G
9 T) |- H, v4 w2 d8 g. A  J; b过了以后再调到最高,再做免杀。
. ^" t7 K. N  \( k# `8 u, K6 Y( x& O% T- O: ^1 ]7 \
以上是废话,
$ F, P' t7 w% i9 D5 d  q
6 F" _3 d, p7 \  I) b好了,下面我们来说下常见的免杀输入表方法。
4 z# T1 y* Q6 y7 @7 H- Q- G$ ^
一。移位法
$ A4 ^2 _+ Y$ V0 D0 {, x' k
* R3 L. p2 u# H# c( o9 p这个已经过时了,我们的国产杀软及时的跟上了时代,* U# ^- F1 A/ {7 \3 m( V0 Q/ a& {
1 ?3 z8 M5 u/ y, f
移位法在去年过金山和瑞星,还有江民都是可以过的,9 }9 U  p. `$ ?9 t$ e0 L

( Z! _% F6 Z0 \& q7 n" O现在的杀软智能化了,移位么?呵呵 ,追杀你。
. ^  ~1 V7 U& E3 R4 d, n$ I4 P- A6 [5 G1 N2 s  z
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
5 p! u: x( \% N' i5 P( \* f  F, A* [
+ O" _5 z! K* f$ l" ^& k, D二,重建输入表9 z/ L" L( s% t+ X! I& g) L2 w
: F- w7 K6 V" {/ a  R6 l9 D7 K
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
5 b7 Y/ O4 _$ {: R. ]
# u% a: Q. j  ?这里我介绍下,: |1 q$ D8 T( i3 l
% ^1 B$ M6 U: o4 c+ V: n% i/ _
用到工具:
0 N+ w- S. z7 S8 @importrec1.6
- F& t2 ^+ X% r" [+ j5 e# X5 s* iod
2 Y( r3 C, D" B! Kc32asm
4 u) b$ L% v8 `6 y5 ]  Qloaderpe
- _' _4 I+ ~: U% `/ _这里我们简单的介绍下,如何重建输入表
- l% n9 y4 ?4 {7 `2 ]. ?
. ^6 I) ~. A# @1 z) [; l4 U6 H首先吧文件拖入od,打开inportrec1.6
2 B1 p$ C7 e6 K8 h, S- A8 c
! q6 D# [( m/ I7 |2 f如图 选择拖入od的程序,
( ?! U! a3 n2 A
' p; l9 e3 V. \, T* `  s& w1 x
7 Y! B0 S2 _, J7 N2 f这个时候,我们打开loaderpe,& T' p* w( e* D# H# G
7 n6 u/ X2 ?7 a, g. S! P- T
拖入我们的木马
) G' F* Z2 J; @0 I4 s
+ ~# D& ?% I4 _  w( m2 S; [选择目录,
5 N2 N  H6 U8 L& d. |" p# G
  T& a) G+ p) V9 F3 u2 n. m) \& |我们看到导入表这里。。。4 s, j; T2 R0 n
! q& p9 C. ^& c. G/ T" i
如图:
7 K: ?( a% g9 W& t8 o. u
- S% U. c( S' U7 X6 x: l
* p- Q1 P# Z4 G7 LRVA地址是0001D000  大小是0000154C9 k8 O1 l, N, u3 f, u

2 n% g  v1 c7 w& w& P. Y4 z6 L好的,我们把这两个输入到import1.6里去1 \' P9 C6 T3 N3 d

* ^/ h: R! ^6 k就是在“加载树文件”那上面一点
  ^& J( d1 }  `, C3 n+ O) h2 d1 G' L: ?/ }
输入RVA的地址和大小。/ w* U( Y3 Y& n8 P% O3 Q# _
# ^$ c& W$ {. n% m- p
点击“获得输入表”% U8 O' I- V- Z# [
* U, D% a. K; [0 S8 Z: U2 d7 [
然后点击“显示无效的”5 a; z4 O( n2 x4 X  p2 v0 q

; t: Z. H' X$ @接着importrec会自动列出
6 k5 g8 }( M& B; f% x2 K6 Q  S) L0 d, E3 Y$ q+ H
我们把深蓝色的字体  右键   剪切无效的指针8 B$ A0 V4 C1 }% L% [' u1 ?7 G% }
+ z  q7 U1 i$ }6 j, f' h6 x
; Z. [8 B& I8 O: J. P) l: a
最后,我们点“修理dump”
9 ?! o0 }1 G9 q, q1 \$ Y( {+ p- L/ ]
选中我们的木马就可以了
$ H+ b0 F& l$ ?4 o: r$ [4 H/ u/ J% [8 ^' V2 h8 U+ p  A
最后我们要用到c32asm4 b* b# s1 I* \& D, i, I9 S

: m1 T2 u  i& w  |* A我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
( X) x7 Y; b4 O- o9 ]) F4 u- F( L- R* ?, K7 R6 D8 |7 M# _; a4 r
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
: @% G5 c9 H3 M8 Y" P* n3 h2 N/ z% a. S" w5 p# _! r& v/ j. E* m
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,4 v) U9 @" ?0 p) ~1 U2 m
4 h& Q2 Y% ]6 i; }1 t+ _9 W2 C6 H9 J
我们把马子拖入od的以后,打开了importrec1.6
# F! [8 n% R% s2 w$ k6 |  v3 }
: l/ L6 b' |, h. v, z* Q9 L在选项那里,选择根据序数建造输入表和创建新的IAT7 O6 }, z: t. K- a# L
' ]- f9 B! O; _- X+ Q& u7 X
如图
, Y) v% f- t2 X
6 Z& o6 N9 g6 M7 i/ c
$ E, c3 @0 c1 S, z) i以后的步骤照上面的方法继续就可以了
3 X2 o. e$ J; F4 a$ |' V3 A
9 y  D. a" W3 @1 w- T' j8 Y不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了2 j8 D2 ], e2 _+ ]2 W+ e

+ c, h$ E) o# i& z2 o. ~7 ~因为kernel32.dll的大小不一样。
/ R0 O6 a* ?# z0 O" K! J" `, I. V
$ i4 \8 K* \! L9 A  P6 r( \3 M3.修改originalfirstthunk) D2 u2 K: C# m3 O; V' N
0 g- A1 h# ~% u# ~
如图所示( @  Y5 p, V' |8 D1 J" z
* `; C! c6 X% E5 [% p2 }6 j, w

% g5 A8 |* O  C$ }# Q9 s我们打开loaderpe,依次点  目录--导入表(后面那个横线)
" l* v3 Q/ Q2 n
9 j6 G; @* m; \2 o9 e我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
# ~( s$ m" y0 P/ J4 n
! S* ^6 J7 d! {0 ]6 ?我们右键--编辑--把函数后两个00修改为FF
$ [- v/ j& S8 O6 Z0 n9 h% k7 J
这样可以过小红伞查杀。  虽然会出现错误提示
8 i: W8 s' x* g* M8 ~% Z: X- d! G9 d! @" q
但是不影响木马的功能,不影响上线。7 S5 y, T8 p5 u; W

5 M& s; K4 O2 i0 q. s( N4.dll后面加20 90法过卡巴查杀
( Q& ?7 Q- M; B% p1 \
* E, e  ~3 ^; V3 i1 k% Y需要的只是一个c32asm而已,非常简单但却非常有效
7 k  d" J. N  K7 @( P
9 D6 K6 _4 ~5 f5 t如图
3 ^2 j7 O: f# S, R; W) v+ l
1 L! p- V, G5 q: a3 ^' O3 Z9 u8 L* N# R2 P* A# d+ J
) X$ n6 z/ Q, _* v7 r7 d
我们可以看到,
) I0 u. s( b) i! S
, U+ J; @! S. ]: i' @在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
9 f) ?- v$ W; {6 J# [) L+ u; U! G
) z3 B4 C/ X& p0 z7 R% o0 z& }这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
7 N% p+ R# y6 v/ E0 a: Z% `2 E! K* o, l+ z; e3 p6 ^6 r' P
我们只需要在他的所属dll后面加个20 90就可以了. X3 I. B( w0 [8 @

3 h& U1 V" v) }5 _卡巴目前还不查杀此免杀方法1 i. k# J4 j) }& B" ~% D/ j8 S  C
6 V' [6 L6 _9 L. J+ k8 B- S
& s- l  U2 S7 y& V- n
唧唧歪歪这么多,打字有点累了
4 j* y( _) I2 M* b8 _
6 M* g5 S  R/ p以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。5 l& n* w  ?2 |# N/ f
- J" ?/ }+ y  I& h+ y  ^) D
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表