返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,; l/ P: f8 ~: p* ?1 m

* F' h0 E: x$ o. ~9 K1 s特拿来分享给大家。6 ?+ w: @$ F) R8 z- {8 z
% X0 o$ ?: g) H" p& p+ ]
今天我们不提我们国产的那些杀软,真的垃圾的要死,
; [8 W( k0 u0 r, o) o2 W1 m4 r* g" f+ a( C( J$ Y% z
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
2 X/ P) y$ s* U) F  A
, M# k. d2 g, g3 F1 \* Z我简单的重建了输入表就把瑞星搞定了,+ R/ @, z" Z8 c3 g" a( Y

/ m2 w! O: G# G% O, s失去信心了。我曰( p4 h; o1 o2 X, E
. O5 E6 G8 Z% p! y+ g
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
, y% g7 X9 t4 I8 h5 _0 {3 I: i; }. G/ f# _9 M' I
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
1 s: I; J. m7 q6 c2 s0 x( }% n- l2 p) |5 x. m6 }3 l5 U
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。8 U0 c. h2 I, n% S' W& @

5 Y( n5 F4 k' d; k% g- `% E; \高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
8 j' E  g; l# b8 Y' s" m- U" K$ w8 {% T
过了以后再调到最高,再做免杀。
9 N( H) Q! [5 B! v1 f* d. [# x5 {( |! v9 U2 m' i
以上是废话,$ G; X2 Z- p; H3 n% w2 w

$ r7 w6 j8 d! T& F7 w' a- }2 ?1 y好了,下面我们来说下常见的免杀输入表方法。: g8 d' g0 U  E: ?

8 y% i9 O( J; B一。移位法* A& |" g' J3 H! o

) q1 G1 O/ w$ j& w/ @% h8 {这个已经过时了,我们的国产杀软及时的跟上了时代,
6 G/ a. O: F( H+ K. A  X6 `3 M$ o: u
移位法在去年过金山和瑞星,还有江民都是可以过的,! `2 _4 Y* R# x$ t& G' U/ _# E8 p/ T$ f

0 v: M, i& \. Q现在的杀软智能化了,移位么?呵呵 ,追杀你。) s) z. U: ^! S

, P2 `  R! \& K2 J9 a如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
- L/ V7 n5 m  F/ t7 p9 d7 M. i2 q! n3 c3 ~/ F: C' ~, E
二,重建输入表% d' S0 s2 ~; x& ~

9 k; q1 d/ n$ A6 {8 H, U效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈3 y- r0 {3 e% ^( R" B; w1 e! t5 y

1 |$ b7 w, ~2 t* }这里我介绍下,
$ l/ f3 k* _  k; J. i: C2 V' L: z* ~3 q9 R% y& n  H1 a* I2 E
用到工具:
0 a: L5 o: n- s8 Q4 x! Zimportrec1.6
4 Q$ Y4 u; H. S' k) R; [od
0 e, ~7 t4 q; o0 _/ t5 ^c32asm4 R5 v$ @: n+ `$ ]; Z9 @! {) n
loaderpe# b* @' T- J3 l, G2 [
这里我们简单的介绍下,如何重建输入表
% Z2 |9 x. _! k5 M% ^2 P. E
* [: G  N) \, ]+ W: u首先吧文件拖入od,打开inportrec1.6
# K5 `- Y5 [9 }0 H0 F. D* C7 [. {) |, c* j6 F! l
如图 选择拖入od的程序,: H7 e, e# h) i, T
, O0 Y  _8 R6 ^5 M

1 `' b. p7 S* _, H  a这个时候,我们打开loaderpe,2 `/ i6 y3 {  E1 c

7 V& O& a1 Z) M  B# B+ O, k拖入我们的木马; t- e( b5 a9 ?8 K) J: S8 e
# ^/ U( f0 ^& A/ w# m; Z" e7 t
选择目录,
, D) B. @7 b5 s$ i( f4 d6 V% h  w7 x
我们看到导入表这里。。。
- H9 ?  z3 `; B6 k' w  p
2 y7 n6 Z' u, B# p$ R& i( i如图:
$ Q. Z! t% d6 u; R
" r4 |7 B: s6 T! i$ V5 }+ H2 |( o" P: r1 m& l9 ?3 `
RVA地址是0001D000  大小是0000154C
' R4 N- m8 B& o8 p8 R2 _4 [) z5 _
7 g1 _+ j; G3 H0 @好的,我们把这两个输入到import1.6里去' \5 v9 Q" [9 |( e# S. Z. \( D
9 t6 ]8 V- a3 |9 N  \7 g
就是在“加载树文件”那上面一点 , z; n* e" y9 l$ ~; B$ u

8 N5 z, [1 Y7 N6 q/ n输入RVA的地址和大小。! F' e8 H5 A+ i# [
" O1 A. _. |* T9 T) l7 C
点击“获得输入表”4 C% H5 S5 X7 x( ^% e- u

8 \6 a8 E. f: q* Q) ^然后点击“显示无效的”
' V6 U) L! a: L0 h3 l6 D. X. ^5 ^( o8 U% M
接着importrec会自动列出  f2 g( B% }8 M1 r& ~" {0 h. C

. |. V+ E/ N& _! M  d我们把深蓝色的字体  右键   剪切无效的指针
7 A6 ~: a+ y4 @" g& s+ q& `. k2 ^* ~( w+ B$ S4 R; Z
  Q. A) J# d% G4 \- Y" l2 C: [
最后,我们点“修理dump”  C, Y2 Z& F' N$ d

5 A+ ~4 n2 I' _! e, c选中我们的木马就可以了
, A% N% w# w3 C" `
0 V: f  }* [3 W, I( a& C' ~" t* ?9 ^最后我们要用到c32asm
$ V& ^1 F: T' O4 L  N6 X, I1 ^$ s3 \/ o* t; b7 t% q: i) v8 i9 V  n
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
( l' m. e3 Z  ^6 A5 c1 i! y; l  H/ G4 d1 I& G' Z
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
# p$ u. F: l# s* Q/ w" c0 J
% A' {' H  f. n9 F2 t* Y这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,# ]- Y6 S- v4 u9 p5 [
$ ^) Z2 u# |& k* ~! C
我们把马子拖入od的以后,打开了importrec1.6' x6 u& }5 E  B
: y+ `5 e& O1 Y3 @
在选项那里,选择根据序数建造输入表和创建新的IAT0 S7 T' X' R8 N# u
: a/ n, C% p, R/ i
如图
+ B& }- r' c% K9 t! D2 D( ]* p; C& ]% C: W8 S; b
8 P5 h9 a( p! ~5 ]
以后的步骤照上面的方法继续就可以了
- R5 _  P5 G* @, d9 V9 X$ E5 [; b" o1 Y: M
% Z  Z4 o+ u) Q3 v8 r0 R不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了$ F9 Q$ ?+ b, N3 t; Z- |+ w7 s
8 U1 e# e  X: g0 A
因为kernel32.dll的大小不一样。8 A/ I# b# R5 ]7 X5 M* j

$ J* `2 ]( m+ ?( x5 g: @3.修改originalfirstthunk" U$ P) p! f* x$ `
1 |* k; _+ t4 `; }
如图所示
# J* R5 P% R, z. o8 B( q
, C  X2 q* |+ A. C- _$ l4 w: [8 ~2 B& E
我们打开loaderpe,依次点  目录--导入表(后面那个横线)( ~% `! C7 K" Z* ]9 N! t' w/ g
. Z# A! L2 {) F
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
% A* Y( h( e; M
9 G# i4 X; j/ |6 w5 `我们右键--编辑--把函数后两个00修改为FF# L4 N* h3 E$ i3 C& Z! I
* T7 @" K3 `% Y5 \; t
这样可以过小红伞查杀。  虽然会出现错误提示: s" @& I0 r$ B8 g1 B
$ g$ ~+ C/ H1 P" W
但是不影响木马的功能,不影响上线。
; f# }9 R9 z: ^$ H, X! U; f! F, G; z! k, X7 I
4.dll后面加20 90法过卡巴查杀5 B6 {- E% G& `4 R

6 n- T# A/ R; z; W需要的只是一个c32asm而已,非常简单但却非常有效
/ a# l8 X# m& p) U" z
6 Y* w+ Q5 o$ z2 k4 r4 Y如图
  C( z" N7 G7 u  J0 H( N* X" C" h
% m. l( \4 f  |( w1 V; a# I$ B# w3 v8 `

; F# C& h% }9 x5 q我们可以看到,
( v- N8 u* s6 J2 n" t
; Y  R7 D4 N0 ~! x$ @. Q在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90# }7 q# d2 L: i& n3 P

/ b6 [$ @" q4 |: B% D这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection' W# V" u) z. G! p& ]: q7 Y

3 V( I6 H7 [0 |我们只需要在他的所属dll后面加个20 90就可以了
% }3 R; }% X+ k) O% n* V  P2 q( a
& D% u/ @. c7 Z, u卡巴目前还不查杀此免杀方法
1 B' ^; P& d) }+ D) X/ m
# {, A( r8 z; g! G- `4 |
* d# h* f% C! P$ z) r0 N' \唧唧歪歪这么多,打字有点累了! w8 H' k* ~% y, K" z

8 j2 Z* z0 W, ?* G% _( \以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
5 e: L4 V# Z: j6 f6 Z
' r5 u3 }1 o* q0 @9 P8 ~, }[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表