标题:
[原创文章]
木马免杀之免杀输入表篇
[打印本页]
作者:
1335csy
时间:
2009-3-31 11:30
标题:
木马免杀之免杀输入表篇
最近和一位木马免杀牛人交流,感觉新增进不少,
/ }+ W% o k/ X7 h, ^# v
) Q+ r: r" A& P; d9 ?" Y% y
特拿来分享给大家。
9 t( R U" E& V8 w; s
X) M( L7 O; i" Y' ]
今天我们不提我们国产的那些杀软,真的垃圾的要死,
; M( Q& O! ~+ e6 ?) _' _! x
( x% s' G1 R% z5 E( Q; a
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
# s; D8 ?" L4 T b+ _
& j! F( ~. e& \/ H1 Q9 i/ y3 l
我简单的重建了输入表就把瑞星搞定了,
$ z$ S8 o) _: R* m' O- H9 z6 R9 H9 M7 s
. a2 r7 L6 t7 v9 ?. `9 ]- f9 c& I
失去信心了。我曰
! V! Q5 a) W& o" j2 z, R( _: N
! T2 ]& p# w7 E) `, V
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
+ y2 g+ J- W; h0 _0 c
: I0 |" e. e) Q7 p& H% Y
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
* k& f( X8 Z4 F
D/ o; e: u5 V4 L- R
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
4 N6 t/ d( a4 ]! V9 u
' Y0 C/ F# m# z. z G t. h
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
- L# Z1 F2 V6 W7 b; o' v9 O& n
' o" L9 z4 F7 `3 ~- R
过了以后再调到最高,再做免杀。
. b6 `4 D4 @' f+ o& R
3 ~$ R! e5 Z' ^4 ~ Y# u& W& L( e
以上是废话,
9 u9 R4 B+ y& k, E2 U
4 p* u8 m4 L/ Y$ ~3 P: J- m* e3 G
好了,下面我们来说下常见的免杀输入表方法。
" J9 M* P; q, e8 J) ~
; U. ?2 l$ }9 j e: s
一。移位法
$ Z* q( O! Y4 Z
) [$ [/ l. G' M! _1 T! ~0 i
这个已经过时了,我们的国产杀软及时的跟上了时代,
' e+ Z! _2 k, c
, S* c6 X y8 k2 @2 m
移位法在去年过金山和瑞星,还有江民都是可以过的,
, J8 A7 P T) L
" w% k& W! k, H9 R1 X
现在的杀软智能化了,移位么?呵呵 ,追杀你。
7 L, r6 C5 G7 x8 U: v
* I- R9 p4 P+ m$ K }2 [9 ?! |* W
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
' o& M* N& Y! l; o8 B+ X# T9 @
0 G; z2 _; Z: g0 A
二,重建输入表
% Z3 z( }7 [" c, M( w8 x% n* }
/ i, m' V5 R+ l( C* ~% N [2 \
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
" K4 R& r2 }- L! N! P
! e2 n8 [0 \$ v1 x" z# i: a, k
这里我介绍下,
: z* U3 G: h& k7 }
/ K% y! i, u. m6 X9 Z
用到工具:
# U8 N/ l+ G6 U
importrec1.6
' F7 o% c7 C3 @3 |& v4 T2 ]2 `
od
8 J) f" r# _- f3 x- u$ T0 U
c32asm
2 V+ F2 l% ], C2 P7 n
loaderpe
# b( u; L% g/ J/ i6 H) x7 v
这里我们简单的介绍下,如何重建输入表
+ O0 l' C1 d/ c0 y' c* @7 {
% m G4 K% n, d* Y0 j
首先吧文件拖入od,打开inportrec1.6
* e% z+ I* Z4 v9 z5 r2 p% O
; B2 }1 i' N' W9 F: N
如图 选择拖入od的程序,
9 x, |4 [- n0 G4 V
, M3 z* @$ w* o+ m6 S
1 l' F# z) N! K7 {3 ^9 H+ P6 _. L
这个时候,我们打开loaderpe,
% a4 m$ }+ U2 K% n3 G
+ E& V4 o, t2 ~. U2 i
拖入我们的木马
% n! s8 S9 u: q: L; W
. @, Y, H- q& L+ m
选择目录,
3 ?; I9 @( [8 k/ c( w
n* `" ~4 M5 j0 m8 t4 ~3 {
我们看到导入表这里。。。
4 y% m6 m0 P6 |+ c5 _5 b5 _# A
$ P/ I# x9 O0 @2 M- W
如图:
) j! d/ D8 ~ B
* g8 o; U6 M( w; z
9 @; N2 Y7 L6 F. Q; F
RVA地址是0001D000 大小是0000154C
, G: t- l3 M9 r$ O u3 V- @
3 \, f' V1 S$ p
好的,我们把这两个输入到import1.6里去
$ Y0 v$ Z% V+ f, T- ]2 E+ o+ {% C
; ^! k: ~) I8 ?5 k. f
就是在“加载树文件”那上面一点
* ]; m0 q3 U% j+ S4 ^+ R
& D6 S3 Z9 p" a0 U# k; q5 I, f' ]& a" L
输入RVA的地址和大小。
5 f0 I; h8 Y5 j9 n* ?
% ]" y! s* n4 e; h! m! G
点击“获得输入表”
; U" j! v4 e$ [! Z$ [
8 C# P6 r! b7 K- m ^
然后点击“显示无效的”
+ }4 ~: a* ~$ K' x4 W+ b7 n
6 F" q6 y0 p1 I$ I2 n
接着importrec会自动列出
( B# U& @9 C7 u, `
% o$ M9 M; @6 I( X$ Y
我们把深蓝色的字体 右键 剪切无效的指针
7 U, k: Z+ ^) U* R7 r
/ D8 x# ?, W( B. i- }* n
4 L$ L! ~: `8 S) r
最后,我们点“修理dump”
5 S8 i7 |8 R" O- ~" l& H
: [/ G, _7 }, _3 U9 P0 g4 O
选中我们的木马就可以了
6 y4 Q0 x( u, E( k; m
. I* T: ? D6 h# x! B @
最后我们要用到c32asm
: R e. _3 e' o, D; D% u
* }) t1 W0 W+ }; y; g6 _) ?5 j! e
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
; T5 c$ U- \5 s. A! X4 ~
0 D9 O3 ] k$ B, N) |- {- D
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
. c5 }+ B5 ]9 X
6 f: k; ]! N/ r7 U# m* w
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
% ^" ?* k4 i* z5 J
* A+ ?! n2 p" e8 z
我们把马子拖入od的以后,打开了importrec1.6
8 g8 Y. t8 N" K) c
' x4 v, Y+ y# `: ^8 {& `0 Y
在选项那里,选择根据序数建造输入表和创建新的IAT
: |; A# T! v% ~' G
& m0 h' P7 B/ m3 F; o, V5 Z
如图
$ m8 ~! |" D1 s6 n5 a2 _, y/ @/ g+ i. G$ S
3 ?$ l4 a9 ~' G' K0 y
. q* Y8 l2 w. Q( a2 X" C3 i
以后的步骤照上面的方法继续就可以了
5 P& l/ b$ a( ^
( P4 L8 J. l. J! I
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
2 H1 R7 Y7 l8 E8 ^; r
" b8 Y2 A4 y* ~% [/ N% K, H
因为kernel32.dll的大小不一样。
; t+ g# h: \# U( ~
- `( c2 T3 d5 d2 N4 q1 v8 {
3.修改originalfirstthunk
* n3 Z2 p4 i4 D, k
! W A! x3 K w* @0 O
如图所示
! @ p4 q' W% I+ X: n* u7 Y& s
, t+ y1 l* @) J. Q! }
3 k3 U& ^6 A9 N7 x# b
我们打开loaderpe,依次点 目录--导入表(后面那个横线)
1 b( J4 p4 k: E" |& F
8 ~' V: J( m/ ?- `8 O' R/ z
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
$ g' e8 f' s% }0 x
% l8 Y/ i6 J7 q* A3 D( `8 C' ?
我们右键--编辑--把函数后两个00修改为FF
- J: n# p3 Z% e& k
- x3 l4 S5 P) o- u( F) c% n$ A) D
这样可以过小红伞查杀。 虽然会出现错误提示
, Y2 q/ C b! H
# w1 n8 c" i- l; b3 O( x
但是不影响木马的功能,不影响上线。
X4 _1 O2 R5 k! P2 a; |/ }2 P
! G4 s) E {" A9 j1 Q
4.dll后面加20 90法过卡巴查杀
% f) y; j0 F9 N4 E
. M( N, f7 i+ @1 j
需要的只是一个c32asm而已,非常简单但却非常有效
4 a0 I( I* D; q& I) P% J0 a
( A5 {0 |! k- j0 H5 B2 K1 q
如图
2 q" U) R4 q8 z4 F5 T. u
* |- H/ M& ^ k- d9 ~
5 r0 [' `2 m& t+ ^
' P- }; ~+ ]* t8 p& i2 n
我们可以看到,
$ w8 `% C% \- z. }+ x4 k* a
( C3 {3 W1 K2 b" x7 e. u+ b1 J
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90
( W/ o! P) X; V0 O' v
$ \! l/ s) @# p. N- v# |
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
# E0 B4 x2 U! s6 ^3 C
% w- z9 p* b; c& N; {8 e# k
我们只需要在他的所属dll后面加个20 90就可以了
0 C3 [5 | x% k; N$ C
g' @& [7 y; R5 o3 ?
卡巴目前还不查杀此免杀方法
8 k; p) u* l& w+ W" y3 w
: u. T: S9 x$ Z
; ?) m! X/ n8 S% E t( ?" d# u
唧唧歪歪这么多,打字有点累了
! J9 Y: L, @, Y# h- K0 a
) [, H+ G: r o: w6 @( d, e
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
% t, N% |% ~" z0 A
2 e6 U8 o; _) y6 o/ f8 B) J9 F6 X
[
本帖最后由 1335csy 于 2009-3-31 11:35 编辑
]
欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com./)
Powered by Discuz! 7.2