返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,
. d& D# v8 W* Q3 b4 q+ T
" G* O% }1 K) g, Y5 }0 A$ s8 ]" M特拿来分享给大家。1 K/ E* Y* s- O/ r' l

- e8 X% i. G* }0 M( {! I今天我们不提我们国产的那些杀软,真的垃圾的要死,
) V4 _  j2 q/ L7 a( w6 M
7 n/ k- U$ O; B: t) {0 T" P上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
: E5 n' T, l2 p3 m8 _$ ^. @0 v6 u) P, t% {$ p" X
我简单的重建了输入表就把瑞星搞定了,  v# V$ F; p& Y( d0 ~9 P  }
, k- L2 g$ h' O8 x; X
失去信心了。我曰7 K. X) {& y" r. r! E) o4 B) A4 \
* G  p) O2 y) J7 Y5 Z4 b
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
0 R3 E* z3 U; Y4 ?% {  x( y( t4 L$ i0 s7 k9 }: V" Q" u% A
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
# u& a. [8 y& ~& W* ~! |  C5 V
  u8 ?  R$ s0 E0 X+ m1 p外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。5 ~/ I% w( g# \' P1 I4 D

: q& l* L8 Z0 i" \/ X7 r& ^, `  j高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低" U+ f8 P. N; `- }' S" d1 i

" Y" C3 h! a5 ]" V3 [4 e) y过了以后再调到最高,再做免杀。  }% D/ m% {; D
4 ?0 L; h9 b. F, c& `& [/ A
以上是废话,
- t; I# G+ K1 W6 \2 }$ u# E9 i
" T8 E8 f) [9 \" s好了,下面我们来说下常见的免杀输入表方法。  o, Y# j: F8 n6 I: p. P9 [; e
5 j/ H9 {. l! I6 D; [6 P
一。移位法& z0 B: j7 C* {

/ b- f; V$ F$ Z这个已经过时了,我们的国产杀软及时的跟上了时代,' T5 A* A) x0 W+ Y- j* @! {
) s/ _$ L' @3 B9 k; {
移位法在去年过金山和瑞星,还有江民都是可以过的,8 m8 E! I/ o# l
" L$ i; h) Q1 _6 q0 T/ Z
现在的杀软智能化了,移位么?呵呵 ,追杀你。
& @: j; w/ v9 [: j4 {) D9 p! x, [0 S3 c
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。) V- e# P& x# ~# S9 T# L. w

6 u, P1 p) b7 H. O1 \7 _6 u& ?二,重建输入表4 c" s0 M  u7 V* w$ x
0 a+ l9 A! \2 f1 j  |( l9 e/ |4 m
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
/ I) b2 h" {. H3 ]0 s+ N
# M) j6 G" @$ N* D' _这里我介绍下,
* p7 D+ X) Z# w6 h! T, Y, F& e4 \4 `/ ~$ j: ~- i1 _* K* ]
用到工具:" X+ T1 @  y7 [# S
importrec1.6) J* z4 A9 i) v7 Z  W
od; f- K5 r* a5 i  P% G. e
c32asm
9 a4 v3 @) z0 T" M1 Wloaderpe7 K' d: s, r& l7 |5 B9 E
这里我们简单的介绍下,如何重建输入表, W# ~6 n  z8 X. Q

5 S, M" D4 h5 _4 b首先吧文件拖入od,打开inportrec1.6' Z2 `/ q% d* O) c: g! j* z
( {9 b6 a- \( L% F2 L# x* ~
如图 选择拖入od的程序,0 L( M) K( j: L
. e6 }/ N" {7 A  E

2 `2 w: z5 _6 m( ]这个时候,我们打开loaderpe,' |2 O6 W% W2 r3 H& g( O

5 d, G% B" I) _. ]拖入我们的木马* l9 N  F5 m# W( d8 F  E' L& P0 p
" Q8 x( v* U2 m' u' L
选择目录,
) `% y* {% V1 B
: f% A/ g+ Y: U1 q0 h+ C6 u我们看到导入表这里。。。
' e6 ?" D3 ^& z
- G3 y! p7 j+ t2 p3 d/ {2 w如图:
$ \7 f( a9 }1 w9 {7 }6 w" d' \! x9 L; X3 D0 |

0 w5 q5 v) X: A1 J' l& u+ f+ R5 ?. ^0 V% LRVA地址是0001D000  大小是0000154C& n" ?9 L" T7 n; ]

: e# G8 R: k( I好的,我们把这两个输入到import1.6里去
6 S6 }; R2 @0 X- e- a( T) |! Z& f" v1 N7 u2 V/ U
就是在“加载树文件”那上面一点
; Q7 q# S7 K* i2 Q' n3 m. x8 t' D# {  X
输入RVA的地址和大小。# L0 \3 N& d7 X7 Q! _3 a

" R; S7 T4 K! k& q! o点击“获得输入表”
$ n9 J4 o2 Q  K. O$ `1 g5 ?) p$ B3 X5 @) H5 M
然后点击“显示无效的”: Q! B; E: T( P- P, A# X

, i" ~6 P% y: H  Z2 B接着importrec会自动列出8 D% g1 a0 W, O7 H' n
& X% {, O) T( [6 h8 F
我们把深蓝色的字体  右键   剪切无效的指针7 x% I; k  W: ?& m" @
( C5 d, H) H" T( j
9 T. Q/ `7 P% w
最后,我们点“修理dump”* t% M; p- o' i3 n' L) S
1 n7 m; N* q3 X2 O
选中我们的木马就可以了
# y0 D; @7 t7 ^3 o3 e: K& ?5 U* ]3 O) d# b+ q* _7 x
最后我们要用到c32asm
# T$ `1 R, {0 u! K! b5 H/ ]* w( m' C. t1 m
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
! v2 i( j2 y8 w/ y, t" b. A9 T5 w" j; i8 ^9 F8 h2 d5 I
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话); K6 L. g# S( o0 o

: B2 j1 e0 ?$ S/ D0 R! P4 S这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
0 H+ v- @3 j4 n( I; |/ H! [( d# b7 X* i* I) `+ ~
我们把马子拖入od的以后,打开了importrec1.6
* e5 h9 D  P' G: J$ M/ s8 \) C: z, K! [$ [
在选项那里,选择根据序数建造输入表和创建新的IAT0 V' a/ D0 P+ u8 M- j, S4 t  s

, m# q2 T  N5 Q2 i如图
  e$ ^- C! _! O: a$ k: ]# a
& ^2 W* }; ~& n" T) y$ ?8 q) D* t3 L+ V9 q$ b9 b
以后的步骤照上面的方法继续就可以了
8 L8 Y# Z* w+ l% x% L3 k5 A$ k* p
) s! P% L; y% ?$ R! s1 j不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
* R' g7 t7 T! S: P. C! g+ I% f7 m: o
因为kernel32.dll的大小不一样。! @' A5 b% n2 \- Q* B# P! K  ?
. Z* j6 d  \1 W8 U4 F/ [
3.修改originalfirstthunk
) M. z" @, R1 }' j9 ~1 X0 ]  k! O* U! F2 ~+ f3 x, Y% Q% N
如图所示) }4 x/ U& b8 }
/ z% q9 W: ^! g: y0 E

+ a3 d. F7 b- j我们打开loaderpe,依次点  目录--导入表(后面那个横线)
! @$ @( c+ ?5 A$ w/ P
- L' {5 }: r/ [& W我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
" a' N' `6 w% N* t1 r" f- t
" h7 R$ Z, r6 ^2 K% ]/ M' I我们右键--编辑--把函数后两个00修改为FF% l  S9 Q$ o7 A' D7 E
8 F# W) q$ ]6 J! K$ ^; A" X
这样可以过小红伞查杀。  虽然会出现错误提示
. s" T# j/ P) h9 ?2 h
# W! _5 e: d8 \: A! X# E但是不影响木马的功能,不影响上线。, F9 U. [6 Q/ G: H( I! E" z

% O7 U" F1 Y% G8 w, F1 M6 H7 F) L4.dll后面加20 90法过卡巴查杀
" f1 E# F* n3 J6 N9 F$ p8 c
/ a/ z  P% S7 [; l% b% Z3 ]. D需要的只是一个c32asm而已,非常简单但却非常有效$ P" @: o6 J0 Z9 ?( i* O5 R9 R

6 W- z" J& B2 Z% ^$ x0 G/ @如图
+ g$ h5 m& u4 r. A4 @# p
6 o3 L8 I2 a  \- y4 k8 l2 i0 {1 S9 V
) y* S0 d0 u6 _' C
我们可以看到,6 r8 P0 X& B. u8 X* U# q

0 i. c+ U& y; y$ f9 S在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
. W  P) ^5 d* ^  D8 {; C
( R9 K' T/ r! O1 g! K7 A' g这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection; Z  M' S1 u; \4 ?) @4 k' |

3 y" V/ P8 D( L  ^) c! i我们只需要在他的所属dll后面加个20 90就可以了1 b7 s0 m" c3 v7 w1 h7 j) c- o
1 x9 ^0 ?" G: R, U& L
卡巴目前还不查杀此免杀方法
0 ^( o# m0 m+ y. e0 J# T) I0 `4 Q8 u* m' C5 [' E
# V( r& w+ C( N/ B# Z( z! ~
唧唧歪歪这么多,打字有点累了
! w$ k+ l' L. K3 d! l% u8 p3 t( J7 M
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
! k# }1 p1 ?! F) o7 P( s" n' z6 s9 U
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表