返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,
2 o6 Z8 R6 W/ L( h# k4 v1 F! \( n1 U0 a# b0 \! Q0 L2 O  B
特拿来分享给大家。. g* W: j$ v2 _0 F

, k, k6 l/ {5 [2 i今天我们不提我们国产的那些杀软,真的垃圾的要死,
6 p/ t6 o8 n. G; Y' `% a" s% b8 t& x- Y% w& l- R
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表& d, H( \% U! m5 A/ T
9 U- K& y/ q/ j' [, x
我简单的重建了输入表就把瑞星搞定了,  U" F. u6 \9 H' O' i/ L
5 g) K% T6 G3 |7 K4 T; V
失去信心了。我曰
! Q7 @7 y: \' A8 i* k3 |9 S) Y( c: C/ X# m1 g: t
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。2 s4 |7 k" E* h; n& ?- `' J% G) s
# s/ x7 c; y2 l* B" K
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
! z9 b& k4 x0 k+ b' |: ^
+ q& n" s5 a' R* y$ h" O- U外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
$ X' C5 k$ ]2 p2 R. w6 V
- h9 Y3 g( V. @. N高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
5 N# `# U* U- D5 e0 |( w3 k
/ _" _2 ?) Y! N7 A" N7 w过了以后再调到最高,再做免杀。9 q" q7 G2 e; V+ ^6 q

* x9 _/ Y  k! Z; p8 e以上是废话,( L% y, Y7 x( r# k# _3 n% y$ E
3 Y, X3 v4 G6 R3 i
好了,下面我们来说下常见的免杀输入表方法。! q2 }( b: T% s. t$ Y/ S

. ~8 X: W+ I; Q$ n/ j一。移位法
! f  H* M& k- I- @. n/ U+ G
7 B( o/ {/ a& O7 w" Z! }这个已经过时了,我们的国产杀软及时的跟上了时代,1 X# O- }/ D: s3 u6 D6 l

4 G3 u- G$ }3 t' o( M移位法在去年过金山和瑞星,还有江民都是可以过的,
0 h, d, I- J8 ~8 I" p  q) d. P0 I( q$ c
现在的杀软智能化了,移位么?呵呵 ,追杀你。
# Z  O- Y- l* S$ r: e: m5 O* {1 [+ f5 ?
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
$ Q$ m& K3 u% o" p2 _/ C; N% U4 k8 J( }
二,重建输入表* W. Q: C5 y: o7 ]" d: v3 X
" |6 n/ h2 D0 |3 G% S7 h. M2 V
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈4 E* O) o& B, w7 w3 h/ ?
( {+ h7 Q3 k* \
这里我介绍下,; x$ u% F# T& l6 w) A; A6 s
! D& l/ z' C$ Y1 S; K! f
用到工具:
2 F$ Y" e4 k: a! p8 ~  simportrec1.6' y/ a( [$ j* l5 m, i( E' |
od
% F* @0 X! o& X1 D( h# S$ e& @c32asm
7 W- s  {+ ^6 z1 G# Sloaderpe
1 U9 y$ c* W* ]6 ]3 H; P0 `这里我们简单的介绍下,如何重建输入表
/ a, V6 x  ^, P
# i9 Q2 t, w0 V; z& N7 `首先吧文件拖入od,打开inportrec1.62 r! x, Q5 G1 U/ k( x' _3 U8 j' V. M

3 j* t" O/ V' v' c% |如图 选择拖入od的程序,* _) D& M: A, {# s  D5 A

, m' d' s5 g7 _% N0 I  f. K) _6 B
: i0 [3 P" M4 Q8 u这个时候,我们打开loaderpe,! V* k( d, m4 P+ I! Q
3 N7 i8 O1 W$ d9 ]% B) V7 k
拖入我们的木马
0 l8 {% r. P1 ^) X1 R/ W3 _$ h: s0 m) H  k& j
选择目录,
6 `7 y8 h/ \( ]" v; ~' U
% l9 O' a0 x0 ^, y7 Z$ c! S我们看到导入表这里。。。
2 n7 U/ \+ M8 Q
8 L0 U3 S( \, Q5 o4 F如图:  S2 n7 \" e  t1 j
; N! _$ T/ c- B0 i

, V' u% H# |$ {+ C. PRVA地址是0001D000  大小是0000154C
# Z6 ]# ~) A' c& \9 F# r( Q1 w4 j% v2 a1 P6 P: j9 j2 D+ j" G
好的,我们把这两个输入到import1.6里去
: Z5 ~% G( Q/ [7 M+ s4 d6 V( s" p; v
就是在“加载树文件”那上面一点 + b1 S! Q1 q8 l2 d" t7 D: Z+ {7 M4 I
" h3 @  \. U* |9 f
输入RVA的地址和大小。
/ i4 I% ^! O& t1 A, {0 j
; ]$ M) F$ H3 z  ^. s/ I" T" d点击“获得输入表”
& b" G, S+ `% b. ]
9 X+ i! _5 F- n" H* @然后点击“显示无效的”
9 @  k3 c- p- h5 `( |
  @: x3 j: q: h$ E$ V接着importrec会自动列出/ H+ R3 @& c) c4 I* Q/ p7 v* e  l+ o
* D- t$ m; S+ \' I: Z
我们把深蓝色的字体  右键   剪切无效的指针! Q; p, B; r  ~' C  B3 [& O8 r9 T4 i$ Z9 T5 K

$ p$ T; k) o& q; `# R8 S9 x3 P9 y' Z
最后,我们点“修理dump”/ ?# ?, `& k3 [7 v0 |8 [! _* w
2 |' b' M9 \1 A
选中我们的木马就可以了
2 Q% n; A9 }5 W: B: m# K/ I! O; t$ t$ W2 A
最后我们要用到c32asm# Y* E" d/ A$ P( O8 ?. f1 c# z

  t6 O2 o2 b- a) j- I5 X我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
% @: O& S$ q+ a
  O. G, t$ H2 P8 M5 A# P! h1 W这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)7 l8 F' ]% ]% _7 N! P0 S

! J1 L6 C( \; V6 N# {3 `这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,- \) ~+ o. V5 G- i

7 D% D2 e( Q0 r/ n我们把马子拖入od的以后,打开了importrec1.6
8 I0 @' h5 }6 \- r
% @- d- _6 A, l! v$ g' h在选项那里,选择根据序数建造输入表和创建新的IAT. C8 ?# v7 c. |

( D3 Q% W% r0 T如图1 S3 j# S' }$ K) B* F4 a/ ^4 y

( r8 F8 e) I- J2 y, H: c3 u
7 Y5 q* d& y& Q7 A. @以后的步骤照上面的方法继续就可以了
. Z* e  e& m$ [8 g  R7 @( \% m
8 H2 ?# r: k+ a# R8 @: T2 y0 ]! h不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
* R( R5 T, y& O$ F$ J
! x. H8 Z3 u+ H; W/ \因为kernel32.dll的大小不一样。
7 D; r; w+ E2 }9 f4 N0 c8 c( I+ M7 y
3.修改originalfirstthunk
. T5 L* L# N7 L% s; q3 k- Y  [& a3 h' w+ e
如图所示
2 e+ j6 _9 V. ?" w% G
+ l1 ?/ V' U3 k+ X) N6 `& X
4 s: z  \6 f6 v) A& ~0 w4 T我们打开loaderpe,依次点  目录--导入表(后面那个横线)
, j; J4 L( s+ j) i5 A
& F+ X% \) k4 A4 G我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
0 z  l7 t% |# g$ q
, T% a( S; Y6 s* c5 F, }* k% @我们右键--编辑--把函数后两个00修改为FF
+ j3 G5 q" d# M9 v: S6 u
4 K2 _5 W% u$ n+ S) o2 x这样可以过小红伞查杀。  虽然会出现错误提示
! j# H: R2 c$ N% u& P3 c! i: o1 f: m; e8 k
但是不影响木马的功能,不影响上线。
% d# [8 w& c& F
7 b$ [& i# m: V; F4.dll后面加20 90法过卡巴查杀
* g; |$ X& G8 N# ]/ t' t. T5 n4 ?( T# f( n+ c# `; o  c
需要的只是一个c32asm而已,非常简单但却非常有效; R% W. r9 H) R6 R# M2 _, g

6 k& ^/ d9 |1 d1 y' ?5 }如图
9 Y2 f9 |7 x) H2 L, \) J1 [' u: p+ a$ F8 |  g! k% D/ d  {. y
  K  l/ i2 F; `# k/ B7 ]5 e" m

. T" B. `& r+ T5 x( m我们可以看到,
3 v1 r. F& Z) C! n9 ], t, B+ `
( V0 E1 I. o& A/ Q9 {在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
# k# Q- Q! d3 Z& d2 R8 y) R; l3 e3 ?
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
' G0 V7 K" y% B9 R0 }: L
9 ^: N1 m, a% X; }3 g0 Z9 l我们只需要在他的所属dll后面加个20 90就可以了" t+ w6 I2 I7 B" B% \2 T
: w! o! b/ y3 z2 [. b& ?
卡巴目前还不查杀此免杀方法
- z; L5 W" f1 m  A. I
% R( G0 S% l2 K  g7 Y( P4 {* X# B. S
唧唧歪歪这么多,打字有点累了1 G8 H/ {4 X2 u& [/ k- N

7 e. N- G; o( y) R以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。3 q& D+ |4 {. p7 k2 o
8 z& S  E9 F! b2 x, \( j& f
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表