标题:
[原创文章]
木马免杀之免杀输入表篇
[打印本页]
作者:
1335csy
时间:
2009-3-31 11:30
标题:
木马免杀之免杀输入表篇
最近和一位木马免杀牛人交流,感觉新增进不少,
2 j4 O5 a K& D
9 E% _9 V5 K1 s4 b# }
特拿来分享给大家。
. G6 n& a# l+ I# R' R2 x4 ~9 e( ^
I ]& R- Q/ @% R$ l% _8 e( B
今天我们不提我们国产的那些杀软,真的垃圾的要死,
/ R. w) |, }/ d& W) B7 s- k; Q3 R
( ~2 o' A, n- `
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
$ m9 x0 h1 c& p+ C
( \- \! Y" l9 O, M
我简单的重建了输入表就把瑞星搞定了,
' c6 w1 {8 G1 L
' J; `1 p+ |- R& S; ?) K7 ?
失去信心了。我曰
- {+ n7 b1 {/ ]$ O6 k: i" h
3 ~9 e0 |- e1 s. z) x9 N
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
5 l# c( L6 M% v+ X- O% h) m4 ^
9 j) {# g" R$ B" d, n+ o |
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
4 k: X3 {. \9 }& A4 F& r0 Z. l7 V
) M8 x, f& K) T) d0 k8 ]0 W
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
/ W5 V. n+ Z0 @9 \! o+ ~& r
+ m$ D# b& b) F$ g" w) l, h
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
+ ]; s7 r5 u+ B& ^+ p2 [1 B
; _9 l. C- h1 f0 O. l/ A; } h' N
过了以后再调到最高,再做免杀。
( ~1 m( d: P1 Y' z7 k& s
) P1 O! ?& y% x; ~. h
以上是废话,
: t5 ?% a3 K3 b0 K
5 e/ q3 Y% d4 C( \, y) V5 J% q, a' v
好了,下面我们来说下常见的免杀输入表方法。
: @' L' R& S4 Z* ^# j% g2 m) E1 @2 A$ ?
5 ~! [0 m) r. [; u1 D+ g1 o
一。移位法
: A: w% j9 c4 Z/ ~# {, K
) p# k( P3 k0 m% y
这个已经过时了,我们的国产杀软及时的跟上了时代,
# ^2 N2 H, S" m& n+ @8 p
9 }' |" G/ E, H/ `. E1 I% N' j; K
移位法在去年过金山和瑞星,还有江民都是可以过的,
4 ]' h3 s" N3 z3 g& K* v
* {, u4 t& D% j- b! t" L1 E) i' a
现在的杀软智能化了,移位么?呵呵 ,追杀你。
; N1 g! t" B! {5 p) r) t" Z
/ d# x5 i5 m- e- d" w6 Z- y& ]7 o, \
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
3 H/ d2 G u# y: {) S' G- b
2 x3 m1 _% p5 l1 T+ O( ~
二,重建输入表
- G0 d0 N3 l) w$ c& W) ?
$ P' Q* ~: T7 K" X/ t/ j3 z
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
5 O1 Q0 D( ?5 Q- t1 A* |
: |, v3 Y% a0 z+ p1 s
这里我介绍下,
* }1 R s0 E; ]5 i+ ~, \" K
$ u- ~# L& Q$ L
用到工具:
; n" X7 P3 z5 ]! M/ S7 w8 A
importrec1.6
9 s) s0 D% U2 G1 K9 s
od
9 x- v+ d: s1 H0 e4 [. l# p
c32asm
5 w, H) {$ j7 r9 y5 X( C2 m, V u
loaderpe
% x; v N% }( L- Z
这里我们简单的介绍下,如何重建输入表
U1 ~. ?: o& T2 _0 K* I( y
) D( a. R) Z0 p" |, O) r# f
首先吧文件拖入od,打开inportrec1.6
% n! ]/ X) D" J$ p6 F
# K; D M( p% C) a, h/ i" y
如图 选择拖入od的程序,
+ e" E2 j8 G2 O5 n1 Y1 o3 ?
0 T1 n) W" Z' k5 h. \. e1 I. H
: Y, w& |8 o# E& p1 `
这个时候,我们打开loaderpe,
, `. G: s6 }; b1 V9 K3 j
$ N! Q' L4 V% s B2 p
拖入我们的木马
. k& z# ]/ \4 @4 H4 j$ Z9 @
3 E! {- c# ~. S6 z
选择目录,
" ?9 e: q% s3 M+ h- @- }
+ T% P ]- P) @4 D3 Y$ K
我们看到导入表这里。。。
8 K6 t0 e+ m/ e1 X
% f5 q5 V7 w" T# ^5 ~4 k( |
如图:
; M1 f2 v2 c, _+ }/ I# v' i
* ?! x( [# t- }. P0 _
4 ^# E% `. d" |9 `9 w
RVA地址是0001D000 大小是0000154C
H+ |7 V7 u) l2 u$ a% w
2 L4 y) [8 C" Z4 J3 S/ y# g
好的,我们把这两个输入到import1.6里去
+ ] B3 e# U$ N M1 M t
/ u) V+ ~7 x. X1 F* W
就是在“加载树文件”那上面一点
8 U, S+ h3 R. O& `
1 _( n$ T3 C/ k z2 q" ]6 S+ }
输入RVA的地址和大小。
1 q3 N$ Y! R: E' e
9 O! y7 n, _+ P$ `/ I8 u+ J
点击“获得输入表”
8 N \) x1 v/ n9 ~
3 x4 h4 I$ ]3 n; s" D2 p: Z, i0 J
然后点击“显示无效的”
{3 v3 ?$ D- ^) I3 `" S
( e: b7 W& E' C/ F
接着importrec会自动列出
& K; `$ w$ I3 D) n L( C# z
* W; x4 z% g( R: J- z
我们把深蓝色的字体 右键 剪切无效的指针
8 U6 c! n/ ?4 V
, Q7 N0 {; x" _; m% i, h7 C
- l0 w+ s, U5 v; G& }0 Y
最后,我们点“修理dump”
( w6 N- e- W# G2 C% x, ^
0 Z3 L: q$ q% \- V- l
选中我们的木马就可以了
9 Z9 U- m4 A$ T( b h2 [
! w3 p9 Y8 f9 \* B: n& L' _. ~, [
最后我们要用到c32asm
* H0 |7 o9 {* h
0 G) j0 f$ ~2 {% |( S, \3 v0 w- j
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
$ p8 k/ V' @( h) `5 P0 O9 K6 w
$ Z1 c* l. d8 y8 o2 [ v
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
6 Y5 |# {7 I7 @" ]$ m/ L
4 Y9 g( b+ ~* r9 u$ g9 G5 x
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
& m' u- w' r0 Z7 |
: L2 C7 @8 W' v K% c
我们把马子拖入od的以后,打开了importrec1.6
& y7 G# T# D0 C( s% \2 A% a
1 {( q8 u8 {3 X1 q
在选项那里,选择根据序数建造输入表和创建新的IAT
% e% h P) X5 q& H, c
" B* @) F$ c( U0 h v1 N* ~2 p
如图
: ]8 v* k6 S& _1 L! m
" E. _+ y" K1 K9 ?
% N% q- G4 h( @
以后的步骤照上面的方法继续就可以了
6 I3 V8 N& N3 J% C6 |5 f& R
; m) q: M3 Q% i$ z
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
, N0 {: x% Z+ W3 s
5 P4 s' u& [) M8 a$ k( i
因为kernel32.dll的大小不一样。
' A }8 S" V! X2 W+ u5 A7 ^
8 q( z/ \7 C2 d% I
3.修改originalfirstthunk
; s: U8 l- a/ {5 V8 o3 K9 ?# K$ p& t
# X+ P; x% ]3 p1 }$ i% o. I
如图所示
0 L: I4 K5 k& M$ E; k, Y5 \
# A# ?: t6 l1 m& {
' Z6 H7 l: N8 Q7 w/ @
我们打开loaderpe,依次点 目录--导入表(后面那个横线)
* y1 l8 q& ~+ q; g
9 Z( N" P" N$ } Q" v, V* ?
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
* L0 C( L4 b+ a* g
7 F& L8 |8 v$ }$ d& Y
我们右键--编辑--把函数后两个00修改为FF
( p4 { a3 V2 T+ d0 G& \* x
. U3 O4 G( E# d; ]. `
这样可以过小红伞查杀。 虽然会出现错误提示
2 z2 T: C7 p) E3 Q# y6 |
+ J% E/ E J8 Y$ h
但是不影响木马的功能,不影响上线。
! g {5 B0 ~' i n
* u& e; T( I; y* Z* ^# x5 z% I5 O
4.dll后面加20 90法过卡巴查杀
2 ]6 ~: C2 D) U/ X9 [4 T
- i" |2 a" v1 s; E/ A
需要的只是一个c32asm而已,非常简单但却非常有效
( O. N3 d& _, \5 ^' p: W
4 j! h- q0 d) }( n7 V( ]7 j' E
如图
$ M# E9 v% K N/ A
7 S3 q$ D. u% W
" M# \2 Z. |4 [
2 _- y) f$ H, ]
我们可以看到,
6 W7 j3 [" g9 V# |, O, u
3 ]- y( x3 e* @4 J$ m
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90
" W1 g0 g' U. U
3 q4 s0 _" z' q( r3 s+ _ p
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
) l0 N0 J6 p8 i8 e2 z9 q* O; J: k
5 J2 ~- K5 i. o: |/ ^% x( O
我们只需要在他的所属dll后面加个20 90就可以了
D# M2 W0 u- {6 Q% L$ V$ [) ^
% q' p+ ~/ V- T: o3 y$ B" q
卡巴目前还不查杀此免杀方法
4 @' H/ M' r! J
$ w& C& f; e- ^) Y& S+ ?" ?5 B
* P# e7 M1 _: t9 j2 M+ Z$ X, D% M- b
唧唧歪歪这么多,打字有点累了
: s" R4 m! W# M. ^
( j8 x6 C% ]0 l; h1 A' J* ?" [
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
8 w; v- h9 `8 W) n7 K+ d
8 \% N! X: ]. C( |; T
[
本帖最后由 1335csy 于 2009-3-31 11:35 编辑
]
欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com./)
Powered by Discuz! 7.2