|
  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,8 A) l9 r+ ?- g6 G; S& ~4 q1 \
- c& E' M q! r& x7 u, H% O& ^, b3 ?特拿来分享给大家。
; f8 S2 z' A9 \& }, d2 ^( A$ c
0 n7 L {' T5 M, j" o$ n! f# n- E0 U今天我们不提我们国产的那些杀软,真的垃圾的要死,
, ~! u" Y+ f2 D% z% K7 w, i6 I- v# ?6 Y6 k. Z$ f
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表4 K4 \6 W# B6 X" T
- l# U( R4 o7 ^& q( |- d5 d6 U c我简单的重建了输入表就把瑞星搞定了,2 e, l" G6 l5 P; j
; ?4 y3 t% N+ y, a# m
失去信心了。我曰. I- s' ~7 g4 k5 p, q+ a
' I# u/ U8 @/ Z2 s
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。3 {& n9 D& |* F) o6 |9 o
# Z+ e1 Q( y v
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。7 P: P+ K: \& x( v6 Y
0 [ Q/ n9 t' r; W+ L外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
8 [6 J4 c G" `+ s3 F& U0 S7 ^. ^# _
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低6 ?7 X. n* q' C# ~# P5 ?. l
' T, V v( Q( O: p6 _" C7 A& I
过了以后再调到最高,再做免杀。
2 s" w0 `, t3 D# q+ ^* F P- f' |* E
* ]) ^5 R7 L+ _2 }" d以上是废话,
" D9 i9 B% N3 X+ E+ g; F% a
8 P( O* k4 V, C# u好了,下面我们来说下常见的免杀输入表方法。$ u8 u. v9 m# U' b) u2 v, r- ?4 R
) `0 a& }2 i7 F8 p4 b0 T u
一。移位法9 ]2 U; b: b+ R0 d8 {1 k5 }
2 ] G3 f0 {! ^& z, g
这个已经过时了,我们的国产杀软及时的跟上了时代,
2 C* W/ u' O. F7 q, }& b6 l
/ `( A6 i6 l: Z" l5 @$ m移位法在去年过金山和瑞星,还有江民都是可以过的,; [8 ]$ e3 c, E" w1 ~) ]
% D3 x5 V) ^* u现在的杀软智能化了,移位么?呵呵 ,追杀你。
9 o4 Q, F3 g8 N( N2 v$ y: h/ U) {% R) ?+ U: ]" _
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。! L/ `5 L3 |0 I. E E- S, ]
& i% e1 O5 O* P3 k' M$ ]3 }
二,重建输入表
' P0 p) B" i- r' i3 [' {5 Q) v6 ^' M, A
?- [- G; s4 | Z. R效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈% M+ t3 G3 s! J$ V" x+ n- J" U
' M; Z! n5 R/ V$ s# G) R
这里我介绍下,# T: U8 z# ]/ F* U4 @9 L4 |
" f% Z% p [9 J2 M用到工具:* r* \9 W/ r! l8 E C( Z/ v
importrec1.67 W2 V& P0 k7 d
od) r ?4 l4 C k* ]5 G& b: f
c32asm# v. Z& u, Z0 X7 S7 m
loaderpe8 s" V6 J* G2 a6 [$ K( X
这里我们简单的介绍下,如何重建输入表" p1 L" Y( ?3 @' W
* V: u1 U: B. p4 M
首先吧文件拖入od,打开inportrec1.6
4 ~# C: G7 X( y" D$ O( x" C" b/ X1 v
如图 选择拖入od的程序,
( F% i6 V! p9 p
/ q+ q9 d2 n: H5 |: o- u: Z4 D+ v- W, D- M7 P$ ^' y {' B6 s& i( Q
这个时候,我们打开loaderpe,9 N }% X. I. Q1 |6 V
5 l; O$ V& i0 |0 I" t& O
拖入我们的木马0 J5 c. s1 l/ ]; L) t
3 d& L3 o0 a7 D
选择目录,& B$ y1 m b7 O% i T0 M: p/ |7 u/ h
2 K- [ m# [6 d6 T& u* e. u5 ^/ k" v
我们看到导入表这里。。。5 I/ e; f4 z) h% y6 [: G! v7 X7 N
5 r3 Z' e1 \7 s! l4 t. {2 _如图:: m+ B- \; Q! o# L# T& s& M4 a: {

d) Q& t8 H& C. d ~# ^
( l0 J/ U" ?; U1 ZRVA地址是0001D000 大小是0000154C" @; p. h+ j* b4 [
4 R2 q) \1 K, x好的,我们把这两个输入到import1.6里去
$ _& w4 V" y2 Y# n/ V! v: y9 O1 ?, J7 G
就是在“加载树文件”那上面一点 6 U4 |) }- Z7 T
9 R7 o8 q* Z. E6 ^: o! `+ r( P
输入RVA的地址和大小。/ {. e5 p# y# q7 H: v" b3 Y
$ x. @; s n& x; g9 w" F点击“获得输入表”$ K& T2 x0 v2 ?. S
0 @/ ?5 m& y+ x; N# h; j# x
然后点击“显示无效的”
o( W0 W- |* L: [
. U. w& O0 n; t4 |: n接着importrec会自动列出% e) n N) z7 ^
1 z+ k* Y' j i' ^4 {我们把深蓝色的字体 右键 剪切无效的指针
" o+ w& i. b* _" W8 w$ s3 j1 d- G6 J# u
* K U' ~; b$ f8 Z9 p最后,我们点“修理dump”$ r- k) `3 [9 l# K
6 p4 l: c _% Q5 v" v5 C
选中我们的木马就可以了
! \6 f( u+ y9 Y7 z" ^" y" j5 }
; ^. Z! x. p; j4 g; n最后我们要用到c32asm+ C* y" l5 h0 w& G
. r6 q4 K P+ `% R2 D9 S我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
! ~- n+ c& d2 L' E0 ^0 ]! [2 x- s2 ?2 L6 S- g y0 V3 P
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)- V6 T& n+ h4 Z) A; P! p* [, e: d
: \* B3 F. }! T9 t0 x* e这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
" G* k" M& r" Q f& j. Y* D) j+ c# m- K0 K, c; N
我们把马子拖入od的以后,打开了importrec1.6
% ~' O8 W; b7 p8 J, i8 }
7 p2 f- U5 W8 j# W7 m在选项那里,选择根据序数建造输入表和创建新的IAT
" L0 G4 l1 X3 A y4 [* V
# Q" O: h4 {/ S& K' q* L: E如图$ a* D5 Q" S S8 g. R6 @
' ? W7 F0 s( A: ^" p$ p4 E
# E( u" X3 \4 g$ I9 }! Y
以后的步骤照上面的方法继续就可以了. U- e0 j$ t9 _2 s4 o* J
- e e1 j: ?. H p4 |
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
, A3 n6 Q- Y5 h6 O7 l) r" E' b& x0 G1 X6 H- |5 F; ^
因为kernel32.dll的大小不一样。
. K, A% @+ g5 y( Q
: L3 u7 H% H @' H3 Z3 w6 u/ h3.修改originalfirstthunk
8 }! `8 X; W; z1 R. C3 r3 v: \% {4 j) Q& t" M
如图所示
" A# T! f) e, n: L, J s / D) C7 \% j* O D; h9 b
_6 ~3 h4 `+ P" Z/ ]我们打开loaderpe,依次点 目录--导入表(后面那个横线)" _$ Z4 q$ \- H5 Y$ D, J. N! `
$ I4 L2 S3 Z3 t4 C
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll7 N! V( l: T* u! N( R
2 |3 G0 A! P! |5 w+ Z# Y: b; ?我们右键--编辑--把函数后两个00修改为FF; ]. o5 u# E0 w9 \
) B2 @; Q0 _8 ?2 n8 L
这样可以过小红伞查杀。 虽然会出现错误提示8 v! `7 G5 u! O8 k4 h E; g
, x8 K' u* ~6 O* n但是不影响木马的功能,不影响上线。: r) ]" Z2 L" c* X
1 a6 x! f' Z6 J5 K, a+ E
4.dll后面加20 90法过卡巴查杀, p( x$ N! H3 q$ V& f/ E0 n2 I
6 t5 ^9 m1 }' ?" Y9 H- A2 U
需要的只是一个c32asm而已,非常简单但却非常有效
3 c: z+ {" ?) M4 Y1 M* l2 k! p/ z3 n; `1 k$ {
如图
0 d1 a% T& k# f: M2 W- }- f8 U |# }2 _3 ?! a8 R& ]- Q" a7 e

& A% t* V( @ U9 H& Q9 `8 E, ]5 L; B' w
我们可以看到,( q `8 f2 c! Q' J
" y) G4 u3 N' U
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90" O& E" l8 `1 U2 A$ s! i) h
: K, G9 J* s; u2 J
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
4 M0 j% S; V$ n* f+ A3 H3 o5 ~9 Q' z% _9 y+ H* X
我们只需要在他的所属dll后面加个20 90就可以了
_ l1 j. ^4 h2 f, t* `0 a% ?1 z5 d' o7 E- |0 Z4 f3 T1 w i
卡巴目前还不查杀此免杀方法3 O+ R2 R/ G* i/ x6 k) g
. }! U1 f+ j; \0 [6 S8 A) J
* L: U8 X; Q* q4 k5 X
唧唧歪歪这么多,打字有点累了
+ M A) M% i' n: O$ V3 c Y6 f: `# V6 [4 N5 e s
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。0 s5 B* I/ c- n4 n. H) Z
8 J- G& @+ I ^+ ?1 ]; w[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|