- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
|
最近和一位木马免杀牛人交流,感觉新增进不少,
% k6 d. w# x, d- q K& B3 P) }% v; h3 V( j9 I( Z
特拿来分享给大家。
2 d2 L- O( v* D0 h2 o/ N) T
- R& _# m3 ]. ^+ t& K今天我们不提我们国产的那些杀软,真的垃圾的要死,
/ V& N$ H) j Z* T9 c3 ~3 D5 S
2 x+ f9 R6 X9 A9 G/ P, Z上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
# Y% I6 L4 `5 v
" o' r- G7 O0 e. P% @& c我简单的重建了输入表就把瑞星搞定了,
9 S& Y1 N; ?9 E0 Z( U
" _* F. F6 E/ j2 R: w% G失去信心了。我曰. X3 J z+ P- U' g# s
' B' W' F7 Q4 }3 B2 A7 u
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。, S. J+ w& |' r2 @1 {
# e1 T8 E# M6 o2 T5 O$ F
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
& D1 s C' e, t
, Q8 P) e K/ w9 Q5 e$ Y# e; k# @外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
3 p2 v' w) F' w/ `' e, N6 y8 I+ M' Q: y* \* a
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低5 s0 N1 v7 [- Q$ U4 R* m
h4 Y9 n( I$ `7 d2 u过了以后再调到最高,再做免杀。
5 l6 g* J W' ~% b9 |6 A* \
# C' P. H9 S( H0 O/ V以上是废话,; |) y! z2 n0 A) L+ J
$ M! y" C- q: O) G好了,下面我们来说下常见的免杀输入表方法。5 K. J: Z; E( N; |" `2 q
. L/ O% d; i4 ~# e5 B8 X7 C/ ]7 b4 b
一。移位法+ \ x* i. i' N. Q1 `6 `
9 P- i+ R- |3 o' s8 Y G0 L这个已经过时了,我们的国产杀软及时的跟上了时代,) L' \3 y ?1 m) H7 a# `
3 h) P$ V. `5 L! U: Q移位法在去年过金山和瑞星,还有江民都是可以过的,
+ `+ t9 ]$ H( b- P- T0 O7 Y9 o/ @; j
现在的杀软智能化了,移位么?呵呵 ,追杀你。/ h; r( j. T0 N' ?
/ R" D7 j* G# N( Y# h2 X如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。, d. [, P" s" o; J$ b+ y
7 P/ O+ T/ H9 L) `二,重建输入表
6 y' f3 j1 |- I" j c$ o) |9 e$ M2 d0 g' `
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈 x) l1 y. Z2 H% v" z5 q
5 o9 }4 n0 ^. g这里我介绍下," G7 Z1 u# H! \3 A7 }5 j
, E% i U& ^3 I) N& D) d, e/ o用到工具:
! z, r) D E5 Q3 V/ q$ u! fimportrec1.6( q' p9 k) G8 L8 t, P2 r
od
$ h1 _, Q! |2 _4 P/ J- Ec32asm
; F0 c, _# v# v$ L3 {, b3 sloaderpe3 W4 J4 o2 W. K0 ~
这里我们简单的介绍下,如何重建输入表- `$ f( t) R8 `5 `* ~% {& n6 K
# t' u' r6 k( D0 i5 Q! r/ u4 c首先吧文件拖入od,打开inportrec1.6" O* G$ p4 \! s# T6 S% Y y- x1 s
8 w9 \6 B1 w5 B; X6 n
如图 选择拖入od的程序,
* P( v& {7 c: n; f- ?0 q. w7 i* {, c# z: e
: C9 p8 P% s2 n4 Y
这个时候,我们打开loaderpe,5 f8 Q& i3 w: w1 D
9 V, g4 `/ n' @, O5 n& _
拖入我们的木马. Z7 Z; ?- ~" ?+ r7 I& j4 Q9 `
5 p7 X7 U5 J$ Z0 N s9 [. a9 F选择目录,! t" t( L, v, {
! G2 G2 P; ]1 z9 K我们看到导入表这里。。。
2 p2 j4 S" m) Z+ h/ n) m8 K( G- r" E
如图:& Y- U# w8 E5 D4 I# S; \
j% y# k9 i- r. \8 c; X1 Y
! N! a' O0 T" E- s' ERVA地址是0001D000 大小是0000154C& J2 K" f6 \6 u
$ g7 G$ [& q& I/ d+ [1 i5 R8 u好的,我们把这两个输入到import1.6里去
3 p# b5 Z5 U3 n* |4 ]$ N% I2 ?( a& [1 s& L, E- ^
就是在“加载树文件”那上面一点 ) `) D8 }+ w& D# ]7 _
" o3 }4 i4 v; v- _0 D/ B7 j
输入RVA的地址和大小。
" v& I4 n9 e7 y8 U r
7 D7 D( U9 l! U( h点击“获得输入表”
. J1 x6 @" g3 T/ V* F3 J# _ _/ D1 K2 @8 t
然后点击“显示无效的”
( c* K, n! \2 F) ?+ J( h: o
9 k7 Z- w' Z0 I& K3 B1 b( _接着importrec会自动列出
) S6 \' ?3 v S' p9 Q" o n* H7 b$ x @: {
我们把深蓝色的字体 右键 剪切无效的指针
n0 b; q2 H6 e+ W4 k
9 j7 U+ n4 z5 A& E* q, g, h6 j& A7 H6 u9 p3 J6 G( M, k
最后,我们点“修理dump”3 L U; {" d- c: l" v/ ?
: e, B- Y$ n3 }' C4 R& |8 k选中我们的木马就可以了8 A! R. P8 p& e [7 t( u. H
) i4 G z, u3 g) h最后我们要用到c32asm. O- E( g9 o, E0 b' G U7 A% f
- Q2 F2 f+ l- p2 e$ e. a& Q& L" ~0 E
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
) J* D0 [9 X3 V$ y9 o; S4 j! S% G; q# d" m, ?
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)1 N( M3 [5 ]! U' L8 T- }
; A+ |" @' d. p/ u! j! t5 d, h这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,% K* I5 q6 ]7 [
6 i* O$ B2 [2 K9 a8 E. @; O我们把马子拖入od的以后,打开了importrec1.6! i; R+ h! J# Z( ^# I
K5 h% c0 N4 o2 w在选项那里,选择根据序数建造输入表和创建新的IAT
/ m3 U/ g m$ }4 I: n3 Q( o# i/ P
" V7 M7 B- _5 Y& y8 Q; s如图% ~% l9 R# n% O" R e6 M5 r$ l& W
0 _* r) R; C, b- u9 ~4 V
. r8 D( a; D) N; _( s, B
以后的步骤照上面的方法继续就可以了
9 w5 w: J2 V! D/ y5 r6 m) l: o* W S+ ^1 M
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
3 @5 A% R. V8 H- \9 m* F& h3 Y- s4 [5 h7 |
因为kernel32.dll的大小不一样。- C {: m6 W( K% C/ z. m; K
% n- a/ |4 g5 l) Z7 l' a
3.修改originalfirstthunk
- G9 T( V! r. y* O
! l" B i7 @, ~) c' l' I9 ]如图所示
% R& R2 _* h, o. X0 k- ?! X
, h3 \7 k3 n4 n+ k2 H; R: X, \. u$ i1 j0 k# V& D- `* w/ X1 R
我们打开loaderpe,依次点 目录--导入表(后面那个横线)
+ [' @6 m) U& Q) o7 g- j9 B: K5 W1 ?5 k* x# E
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
* M V* e& _* L2 t0 T! d' Y( f) |- d L/ ]
我们右键--编辑--把函数后两个00修改为FF& v9 F5 v. ^. O$ M k( v' ^
7 A a8 U- u8 P# t% `; U$ p
这样可以过小红伞查杀。 虽然会出现错误提示
Y7 n# |7 W, K2 t
% Z: P0 C. G$ T# \- Z7 s但是不影响木马的功能,不影响上线。$ \% l6 c2 C/ R) n* D2 f, }
7 o7 H! p) p& e1 E3 ~6 W( ?
4.dll后面加20 90法过卡巴查杀
9 j0 @( X- h. _0 q- y1 X
: O' j4 i0 Z& c需要的只是一个c32asm而已,非常简单但却非常有效
0 A# L3 ^+ g3 w+ A: ]4 M4 c% M9 N% S( V! d0 P! I
如图# i! N+ ]2 b$ ]0 j4 j7 A
2 X, Q: Q, c& v% c9 E: h( ]
3 r6 y2 n4 _) [, c. q# \! X
* [5 S7 L& ~9 C/ W8 w6 W我们可以看到,3 M/ v8 J7 q. w
/ U0 g- c5 W3 X' @% {) [在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 904 K0 C: D' }8 K* ]$ r# P
1 O/ @" d5 p7 T" L; @这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection: ~( B; F/ }+ Q* V
/ z+ x9 L' o* _6 g! O C) v' H$ a我们只需要在他的所属dll后面加个20 90就可以了
! f; X& Q" P- R& x* P1 T5 @5 c6 J- `! i6 }' P& p8 l
卡巴目前还不查杀此免杀方法, Y5 U* ^' M8 L: M3 }
5 w2 h& o6 f# `/ \
9 [. R' h: A! O4 [% g3 f0 D唧唧歪歪这么多,打字有点累了
- P1 g9 p& d" R7 b# A" T" d9 L" p% p, |: C0 B0 I, @
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。$ l$ ]; g6 D0 p7 a) B' P
' R9 A) O3 w' M[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|