返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,
+ x. A9 S* q1 H4 C, c1 G. q" I2 G$ b  Y6 N2 M1 f. X2 \0 m' q
特拿来分享给大家。
6 a$ Y: d  b4 i* q2 {, }! O" N4 t; V( N+ W
今天我们不提我们国产的那些杀软,真的垃圾的要死,: x* E3 @# Q% t9 Q

8 Q% g5 C/ g0 ]' q% e3 y$ a6 k上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表( z! r  G" p" O* L
2 K. t8 g6 v0 k4 g. m7 a8 Y
我简单的重建了输入表就把瑞星搞定了,
3 p' \$ u- m4 k* e9 `5 Q0 T2 `; W/ H( P
失去信心了。我曰
  W% C. t) K, F* g5 U4 F0 d. N  N  ~) G  g$ W+ K
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。# v3 S0 i4 j: q- [. U0 I
4 |3 O8 ^' M, q( u" x
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
, g% f' G1 o2 u  O* j; C' Z- E
8 j+ ]) ?+ a' H  y! m& a外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。5 m, W/ v+ l# j5 R+ G, B7 H
' e, B; A/ @& Z$ H
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低: j9 a- L8 E2 J# P

, t* z! S; ~# w7 s' D1 E4 Z过了以后再调到最高,再做免杀。! g- S- A: {- E) G9 _- x
) R, F3 J% A: \: q4 B' h
以上是废话,
! I, A0 a6 \' O* L$ L( ~0 ~1 R& c. O* l
好了,下面我们来说下常见的免杀输入表方法。1 O# A! f. d- E! ^$ E

% u7 B+ L  h$ I. e一。移位法. j/ g* _$ N1 u: F0 f

/ I3 h. ~* Z$ T" r4 b% H- q# Z7 T这个已经过时了,我们的国产杀软及时的跟上了时代,5 s7 l; b. k6 U( ^: o5 t: C
- Q5 N' l3 w/ z4 S$ X3 b/ l# ^: V3 \
移位法在去年过金山和瑞星,还有江民都是可以过的,& T9 L: ?' ?9 i& j

4 }. v* ^3 D' F3 K6 U现在的杀软智能化了,移位么?呵呵 ,追杀你。  D" \1 ~2 D4 [5 b! Z7 X5 @  J, |
1 \. @; t& \: H
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
6 B. W& Q( C/ r
5 y7 W5 E  `2 I8 X3 S8 ?' J- P二,重建输入表; \* o$ B/ x, z7 J! C+ ~$ A
4 p- E( S0 I/ R* V
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
' E" W4 H" x! i# T3 B( I$ m. [9 c+ [0 I9 [+ O- D
这里我介绍下,
1 C: f1 }0 A4 m$ E/ S9 W2 o6 i
0 A7 `0 r$ m0 g# j. c用到工具:
0 X- v9 f7 x! i' f/ y: `% B. Eimportrec1.61 Z5 |8 m7 x+ v# b0 m
od+ B4 T7 ]. X. E$ v6 D
c32asm
8 p4 j* D' a. y) s; a, I* O# k8 Sloaderpe/ k8 [- j* V8 h, w% E
这里我们简单的介绍下,如何重建输入表3 i  v2 f+ _5 |7 J, |/ ^+ [
/ ?( [& S- ?+ y5 l
首先吧文件拖入od,打开inportrec1.6; y' s) j( ?* x% `+ N9 h

# F* F8 \; F! Y7 d" m7 H, p8 ^6 e4 e9 U如图 选择拖入od的程序,
- ^, x" \2 b5 |) A
3 G% O* L" s7 q$ F5 R
- ^. x% u8 m9 y5 }$ ~这个时候,我们打开loaderpe,% n! `, E, _& T- s  C! J

  I% t5 z) `) H. P% T拖入我们的木马
1 E" b# u2 A0 K, |) C1 n% F; W& F# j6 s" k1 L
选择目录,
4 z/ K/ x1 O4 W1 I7 Z. }8 G! W4 B  ^- a0 Y& Y; |3 J
我们看到导入表这里。。。; n& M0 V' n( \( ]
* r  _4 |6 T# O6 ^1 o) {# P! j
如图:0 i  O+ p& M5 C0 ]

! R; [& a, B' j  O8 M; ], |/ t7 O( z9 o
RVA地址是0001D000  大小是0000154C4 r2 e# c# s; b# r4 C6 F

; s% i: z: e# D! i" q2 g$ Z好的,我们把这两个输入到import1.6里去
: w! @+ ]& {4 O4 C5 T! o/ S  y( ]! `: K5 Y1 q( a
就是在“加载树文件”那上面一点 8 O+ }8 Y+ i1 q, ~: _
/ |2 N( \# B8 G5 o5 n+ R. v7 J8 J" |
输入RVA的地址和大小。
9 x7 z4 _! W* L. X3 G
) |: p4 v& ^6 A: m. P点击“获得输入表”7 z$ O" ?" ~8 t
$ _2 v- [; H. b1 t
然后点击“显示无效的”9 O! s) V: O1 `+ c
$ w% D3 N% Z- G- D! N1 F& d. _
接着importrec会自动列出
% [/ x! p4 ^6 w6 d  G; z& M5 o% H2 H, k! }7 v4 Z
我们把深蓝色的字体  右键   剪切无效的指针* z1 O. a- {. P, A  ~' f
, n9 B0 E0 f* ]$ O) e

1 ]4 y- E) s, s" C& j最后,我们点“修理dump”
4 T, A- j, U, z8 v: U' ]8 v
8 n) H$ P" f9 b2 g. ?选中我们的木马就可以了5 Y+ u; {) G+ e" c4 x1 M
' A. D# ?' H2 D; S
最后我们要用到c32asm6 H3 W' \$ M; H5 A. Q# E
; N. V+ l, c1 z) r7 O, z% f5 x1 e' J
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
9 f, Z, `' ]! ?5 s& B- T: C' G( i* Y* O  j) G: T$ b+ f5 c& J: ~
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
& g) P) i* [2 \& y
  r( b* f+ _! |/ K3 s这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,( e% X  M- U$ X* J5 U* p

3 X+ v2 V) H( A% O( u- S0 M我们把马子拖入od的以后,打开了importrec1.6* c8 G; C+ T) o5 a2 k4 M' k; L* P( Z

9 h: x/ O/ h# k, b在选项那里,选择根据序数建造输入表和创建新的IAT2 }5 w  [0 J) n

8 s* [. e, ]: s0 \2 l8 I如图( D4 |% A% q) c8 q& C" Q% u

$ I1 ]; q; K1 d+ E/ }- f1 Y0 g8 X
! d+ G3 P$ u" N3 A, M+ K以后的步骤照上面的方法继续就可以了# _( _3 V0 W4 [% l( |+ U7 V7 k% c
' P# a; [. T3 a7 N
不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
) F! j( l/ y7 |" n- q8 s' J, N9 }: ~& }0 h
因为kernel32.dll的大小不一样。' D; @3 q* L( M5 D# l
- c0 u7 k) M) z6 L3 {
3.修改originalfirstthunk* e1 J+ e- F- }6 V' V

# f  p% u) b/ J0 l6 w5 d如图所示1 C" s) a1 p# K# S' D; d
8 I# V* k& y; x

% I8 m; }5 v( H我们打开loaderpe,依次点  目录--导入表(后面那个横线)+ P4 [1 h9 P5 S5 \

  `% n7 V6 \8 b: |4 A我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll. }$ E1 x, k) \& H" B1 r$ i
/ ?% M- w* l1 ~& Y+ _; a
我们右键--编辑--把函数后两个00修改为FF
+ Q& X6 S  @! J1 K2 ]9 v- W/ I% S/ Q7 _6 h% o
这样可以过小红伞查杀。  虽然会出现错误提示
; u$ Z' t$ D( X" M. |+ E5 b7 f2 o& R- Q9 o6 d( \4 r9 G1 J) v
但是不影响木马的功能,不影响上线。1 S/ x  a0 F8 T; K2 Q

5 v5 ?! \8 }( v0 [) q+ R4.dll后面加20 90法过卡巴查杀
% e' y/ r) i+ m' a+ e8 f
8 ~; U- |$ O$ n/ U需要的只是一个c32asm而已,非常简单但却非常有效+ e# r; i) j$ A

2 ]  r7 G- Q# g2 e# {  x9 t如图7 m$ ~$ \0 a; q+ D

/ d1 T* T( s& P! f5 y1 L" c% O0 A& B3 a8 R( ^4 ~! }

6 D1 A* S5 J! a6 L; S0 h* ?我们可以看到,
/ y: U8 v' x+ ]) g9 |% t; ~9 i  J# O) Y+ y* B& o
在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90# |; O* r  P9 }, y

! A  ^: Z) Q( T+ H; d' j& w+ }4 N3 F这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
) R& R$ R0 y' b6 l
. D. D/ v# y* @7 M! D$ S+ {我们只需要在他的所属dll后面加个20 90就可以了" ^- k# c& o# X" Q; A' H0 D4 w5 @

$ F3 i- G/ V7 d/ u+ R卡巴目前还不查杀此免杀方法
7 U7 y/ a1 v: A7 n8 Y# ]& Q
) d. p" Q. t& d5 [: z+ T
+ S2 Q' G$ U3 _- ]唧唧歪歪这么多,打字有点累了
6 C" _; Y3 k- i. c, z& B
' S8 m3 l. Q! P7 _! u7 m( f以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。* a0 o8 h% h: o7 D: Y
# c4 k+ J3 T4 s# R1 S8 C
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表