返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,* l4 A) x1 ~3 b* |/ I

2 S. Q" Z+ X, @) T0 T特拿来分享给大家。# p% A8 O1 A" }# X! y! ?+ [, u
; w' m) l, I- E
今天我们不提我们国产的那些杀软,真的垃圾的要死,
% @  ^* y& q2 _, j% E: S1 @2 x) m# o
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表2 D) P+ t5 E" f; C  l
' K& f. ^- ^/ O6 m, D5 i
我简单的重建了输入表就把瑞星搞定了,
( L9 M/ _+ {8 J7 l+ x+ K/ R1 z! M  Y. J- E
失去信心了。我曰9 d7 c) P. o/ r, x8 t4 A

0 x* W8 F: G9 Y" K8 L  W# a今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
. m: ?* W. U8 G# @9 x" J6 j) X  d4 F" H3 n
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
7 A) l/ h8 O7 t) {  J$ k. A" x4 x; U* `1 v
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。1 V  D6 m3 n3 Y* j' |

, i% b/ p+ Z/ ?7 G! W* l0 v* c高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
, e3 x1 s: M: R6 W) n' D$ ]
' ~. n+ Y+ Y0 z, @6 c& W过了以后再调到最高,再做免杀。$ `) E5 k. H8 w" q
% u  m- L3 Q2 w" C. ?) u
以上是废话,& C+ M9 S! ?, x) ?; d5 _* I: e( t& {
$ A  ]& ?- q3 M% H8 J0 k1 {
好了,下面我们来说下常见的免杀输入表方法。/ r# G: k" `3 [

3 C& y6 s' ~+ n& D; Q8 N一。移位法
2 g6 D, E- g4 i, E/ O
* g6 H: U- @3 I/ W+ D0 R$ ]# u这个已经过时了,我们的国产杀软及时的跟上了时代,
& Z; R! C1 Z  V" E, N/ ^8 F0 {) {
9 w3 c3 s# o8 M/ u( Y* Y3 n移位法在去年过金山和瑞星,还有江民都是可以过的,
0 B" {# _# P  U5 c& i
' v, _% G! t4 B/ f! A现在的杀软智能化了,移位么?呵呵 ,追杀你。
2 e4 O" k! h  `* @8 H( _+ @) D0 L5 W( {& g* |
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
5 Z- r( h8 s& R5 b. E+ e* u9 w1 ^- l1 U1 U8 Q
二,重建输入表. X; [3 x  M- N( M2 d
+ h9 P; |* g  b1 N: H& h1 s
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
* x* ?( m! ]/ t5 `9 x7 w) m
7 n; o: [: z* X0 ]. b, [这里我介绍下,
4 `, Q- Z) [, M; W1 x1 {6 `" n
用到工具:* W4 C3 p6 I! ~" _; u0 @" j! q- c
importrec1.6  U, h7 h5 J5 \2 C, k
od
$ R" i+ W7 U$ X: k% h! c3 C8 J: Zc32asm
7 B! d! m5 g9 {& M* {7 [loaderpe9 ?8 Q( S( \* W: l
这里我们简单的介绍下,如何重建输入表
1 P$ q! H9 E' ~4 T0 z$ {4 e, G, Z4 r# H
首先吧文件拖入od,打开inportrec1.6- J  X8 g4 ]/ l# y& L

' _( M; L8 h5 p# q; U( |/ y, R如图 选择拖入od的程序,! E6 E6 j5 I1 r) g) C# G( E

- V9 f& n$ [' f$ p% C8 G6 t0 B
) v: `/ M3 s1 p1 R9 F" f1 W4 |这个时候,我们打开loaderpe,
0 K5 g: X  V$ C2 K
. u" q& V; f! E! Y拖入我们的木马; {: R0 e  e) G) C# j3 F
) ~% C+ `) V* M4 R
选择目录,( b/ ^9 O4 j4 x, z. S$ q

; M* p3 Q* d# h我们看到导入表这里。。。" f9 U( h' T* ?9 D9 s
* I( |! [# v- r! V+ {+ {! e; r$ L5 @
如图:  \& \5 K  U1 h4 ]- i( Q3 G' v

) W! C% e: Z" z! `3 [- w" K" n0 A. d2 D$ f3 Y
RVA地址是0001D000  大小是0000154C
" X7 T9 i1 n3 Q. s* ?& `/ E
7 C- a: }& U1 Z/ n好的,我们把这两个输入到import1.6里去
, ?0 d8 F  {6 O; V
; ~9 K3 C1 P& c. J就是在“加载树文件”那上面一点 $ P( i2 A7 H  {4 f1 Y
6 Y% u. G, ^' d3 q8 j& B% g
输入RVA的地址和大小。1 ^. t' E/ Y# i1 W5 c+ _) H  \& r

+ i8 ], Y- t* o3 ^# _点击“获得输入表”
. N% m9 O6 j* v1 _
; f# V( [' h" R$ b$ ^( O. A然后点击“显示无效的”
% ]0 ^, b& p/ p/ V" Z- c: r+ b& X# c: w6 ~* l" u9 z, A) B
接着importrec会自动列出$ i2 S0 n5 `5 [8 }( `9 e" ]
3 Y7 y- c! @( h' T1 j4 `+ \
我们把深蓝色的字体  右键   剪切无效的指针+ f7 k0 {, S, E& [8 I% j

3 f/ B) `0 n+ H/ r6 Q. g6 G3 j! o/ r# ]& Z" U  t7 ~% `
最后,我们点“修理dump”. g: a$ J& Z" v' x0 b0 x* s
* i  }( y7 d2 H; S9 q
选中我们的木马就可以了& k; {, ]5 J6 c7 ^: G! {
2 }1 Y" v5 Z0 A# S0 ~
最后我们要用到c32asm5 ]* [* E# s6 d" A) n1 _% |- h7 a

; w0 a9 I3 i, W: N我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。: s8 B- [: O5 p+ ~: n7 E
2 n4 w! j8 [- N) h& w" G
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
) Z; j7 e, q; h* C, |# [( A" D: o
: k% M  v/ a1 F$ h/ A& U8 t- G; c; _这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,( H- l: x  N7 N$ d7 J" f3 p
& q- j0 d0 z& Q9 m) Z3 @6 Q9 X
我们把马子拖入od的以后,打开了importrec1.6
  P) C/ N) J5 t  r! e  D0 E5 k+ q5 w, O, ]" Y
在选项那里,选择根据序数建造输入表和创建新的IAT
( U$ ]/ h" S. U  U$ R7 Q: x" D# O1 K( M. M$ |( N$ |- @
如图
2 Z* f! T4 G7 b: F+ l9 e. `' m
6 ~' m, }1 Q, [: ?/ x# g  u) \# H' |" J4 b) W% w5 g
以后的步骤照上面的方法继续就可以了
( Y9 a4 O9 j, b0 z/ \* V% I/ h
2 A5 K, [4 T" m- B3 y, I不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
/ p* H0 l# Q8 |4 b# h. h* v4 g$ {3 F5 {
因为kernel32.dll的大小不一样。; H2 \  v& v/ T
, Y8 O8 l* ^( ]. p
3.修改originalfirstthunk
$ p) W. F: p  g. r& b# F: H1 V5 j) |- s. p% P8 U  U2 A6 B( R
如图所示0 N8 y1 r6 S! p, @/ M3 X" N

; X; O/ N7 o8 W; U" m
: u/ m$ t. m- g/ I3 N) c' Q4 z# e我们打开loaderpe,依次点  目录--导入表(后面那个横线): H1 e9 K$ b4 u
- y5 i4 n% l- K0 i& D1 c
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll8 o1 j* y( U: G0 V" R# H4 }, F% x

- ]. ]' r" Q/ t9 N我们右键--编辑--把函数后两个00修改为FF5 N% Z/ S- y5 [. J

" v8 a. _: g. `* p3 P5 V% o这样可以过小红伞查杀。  虽然会出现错误提示/ ^  R5 h- B/ P" V, }1 ?

  e: L2 x! X: X& O* l3 R但是不影响木马的功能,不影响上线。; J" I8 ]  V. H# |- X! r5 }) p
$ X) K) M8 G% D; |8 t
4.dll后面加20 90法过卡巴查杀* I. f4 f$ f, t2 J  d
7 U# K& b) U; S6 y, M# g
需要的只是一个c32asm而已,非常简单但却非常有效8 g, v$ x; I& k8 l

5 S, J9 q/ ]8 u  r5 F- }( z! T如图9 w4 }0 x6 A5 Q4 b7 x6 C/ E
& m& S  y0 l4 x% \6 n9 e: m
8 M2 J3 ^: @+ G2 S2 }/ i8 R
$ Y- e  q! R* l" e. g. g8 v  a1 {
我们可以看到,( z, T4 y, T  C# s& B/ |
1 E8 X' f, G7 l1 ^$ V# g, N. h
在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
; v6 U) m6 T; _3 L: |5 }* r
# j/ B" O4 d. t% n& V: H6 ]这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection  W3 o7 N8 h5 u' e% ?5 F

9 B* L. x+ P& }我们只需要在他的所属dll后面加个20 90就可以了9 t; |: i( o: _' j4 o

5 w* B9 u; O  N6 B1 c" T卡巴目前还不查杀此免杀方法% Y' ^9 ]5 ~. T
* {* |% k, k6 O1 X- ~& \4 l( V3 I
& J0 v+ p6 b% F4 z8 X6 f
唧唧歪歪这么多,打字有点累了1 V$ K% e1 H- Z6 X! d4 P, n8 x5 L
1 O7 l- p+ R3 z, o, F& |
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
6 b* I! q8 E' n, V
3 o" n7 ?& c( P. U7 [, f7 p[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表