  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,
, e0 A5 l$ Y1 f) m" p: v6 t, p5 g' K7 X% U; ~
特拿来分享给大家。
# _8 N" ~8 N/ c8 ?/ ^% E, W, x) o: u+ w+ b
今天我们不提我们国产的那些杀软,真的垃圾的要死,
. I9 k, T8 g. b/ P3 I
% i3 R, {7 z6 C, M+ a, J上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表5 O4 P5 q- e) ~& ^; U
$ `8 [6 V o! K
我简单的重建了输入表就把瑞星搞定了,. j t* |9 ?# s$ c: }4 {
. Q D. I) D6 n失去信心了。我曰% }, f4 f1 r! ?
' j: _$ E' G( s
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。* |: ^) }) [: S3 f& \1 q: f1 Q
$ c' n; L5 c2 L' N9 j1 A4 u8 y
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
. L: {" O$ O3 U1 F; E" X# Z+ A; u! _, `; N" t- n, R
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
3 u% J/ X1 z! E: G2 Z0 W) I# d5 e3 b( a V2 N, V6 o3 j
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低& A; K( M% _7 E+ s6 p) b
* l& F$ C8 J/ c' a过了以后再调到最高,再做免杀。
% G$ c( x& G5 a2 K! [& Q: m: {5 _( x) w; D3 k" ?
以上是废话,
( s; R, H; l$ y5 D3 X U" Y6 }' J, E
好了,下面我们来说下常见的免杀输入表方法。5 Y7 I, N: D1 K# k5 V6 V: M
: e8 Q7 [+ m3 w! w- a" x' w一。移位法& T4 L7 q) B9 Z8 X. Z5 E' z
' _4 y, m* J" j6 {6 Y% f* I这个已经过时了,我们的国产杀软及时的跟上了时代,
4 g9 N, N' J4 {/ G& c
. F+ b: F6 \1 n$ f$ p移位法在去年过金山和瑞星,还有江民都是可以过的,
6 ]7 _0 s& z5 Z/ c( B; Y g
, f8 [) Y' o7 K2 l2 Y. }: G现在的杀软智能化了,移位么?呵呵 ,追杀你。
3 c' G% v$ M6 f( \1 Y" f
+ s, [. K$ ` Z如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
# a1 H6 J) ^# g4 g; }, [2 W% u
& ~2 t, v3 p) [: f9 M% J. d, {) m二,重建输入表
' M( t: {6 V$ y( V4 M4 U7 H6 z! S9 {! G" r
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
3 Q: j. G/ R1 D/ n$ }" P; ^9 L
# i/ U8 n. ~) {; v' ?这里我介绍下,& y/ w O/ Y. ~! J/ ~7 R
; N% g7 W' U' l* t
用到工具:: W a( C+ E5 [: U/ S- l: Q, ?
importrec1.6
* l5 W. Z% Q6 X+ r5 `od0 v7 ]4 p Y3 S4 A: P
c32asm3 \8 R7 ]2 Q! q; U+ L
loaderpe
9 U# z" S3 }( p7 j+ a- k! O这里我们简单的介绍下,如何重建输入表
7 a! K2 g9 q( d$ p5 I
& t4 ?2 \, Q- @4 p9 x" s+ N8 C首先吧文件拖入od,打开inportrec1.6 ]; a. C* l$ Z( i; o6 A5 L
) u" S+ ^3 b! u" i
如图 选择拖入od的程序,; r* e4 U8 h4 y* q% X) n& U
- B3 Y5 J$ o2 U# b: C# P/ w
. w3 \% a6 o+ P: i这个时候,我们打开loaderpe,
; `$ B, T% l0 |: C' P: y
. Q( L) a( w' u7 o1 O拖入我们的木马
. n1 S8 \6 W" z; e; C+ n
/ T! n1 x' W6 E# L, i选择目录,
: u5 ^. g0 b% e0 n' ], `' d/ N8 P6 ?$ X3 p5 I
我们看到导入表这里。。。
. s; _, ]9 L6 a+ F( O3 Q J* X; P( d. g* ^* k5 L- _9 o
如图:
. X# Z$ ]/ [; o) K' x " a* ]( n z+ I$ o N6 a4 V) F( V
3 Z* J0 Y) P( M' SRVA地址是0001D000 大小是0000154C g9 D h. J& W2 |. g
4 D9 d, m$ c1 U8 b+ y好的,我们把这两个输入到import1.6里去
9 h/ n6 J3 S$ u9 F3 P' ~- r: p2 r) h. q
就是在“加载树文件”那上面一点 % j* ]5 |% p- a w. Y! M
3 n# H* w) T3 @- g% {4 D, l
输入RVA的地址和大小。$ y9 n f+ T$ `( B
# \9 j3 z. S! `0 g0 O点击“获得输入表”9 \4 n& Y% Y0 `0 Y' y* O
% z7 N. |4 F& A F, I$ Y9 v
然后点击“显示无效的”
+ P4 z1 [- \5 A& c5 g
5 \& H) v( @. u% y& Y/ Y接着importrec会自动列出- S) R# S* k! U7 f% E
+ F: g9 A! U1 J5 K; F$ N
我们把深蓝色的字体 右键 剪切无效的指针
$ r8 N! ]' i- S# I$ ]- G' z. d: i4 T; ]$ B$ M
* J1 K$ R! q7 o: P4 A0 B3 @
最后,我们点“修理dump”5 `. C) U3 i7 C7 O
% \$ a0 M' o; S4 r5 \5 _3 ]
选中我们的木马就可以了- d3 |# o: G: N2 k* \/ ]
9 ~! I8 k0 L- \0 C$ |最后我们要用到c32asm
" k1 |2 M. U" A7 v1 [: ~" p' `7 v% i4 I" B3 [8 _
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
1 n8 `- ~( b% q* L4 y* ^, |, t% F# u
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)( v8 A6 [0 A" h& i/ @* H, Z
1 J( d9 Q1 g, u: `这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
8 h2 @* u% l, G6 I* x1 K: r% q& f ^ I/ v7 W, z, t/ I
我们把马子拖入od的以后,打开了importrec1.6; H( W2 s' Z, T7 A- C
: H! J6 R+ j. p' }* \8 O# p7 C" g' N在选项那里,选择根据序数建造输入表和创建新的IAT6 O2 z/ Y; @% i
1 z* i0 \+ e( I$ G2 S+ }0 s如图! N8 \" M1 u( B3 c6 D6 E9 z5 ~
# N( C4 i2 I$ a) \& N4 M, q
% U% |9 M' W7 N2 Y; Q; |
以后的步骤照上面的方法继续就可以了
% A$ ]4 u z' B- E. O( F. l$ }7 |1 ` W" V3 o9 N# t
不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
! N9 n7 ^6 [. x3 D* c) z2 ~% S! @ v, I7 v: D1 s7 q* e2 J* n
因为kernel32.dll的大小不一样。. u- {' S% s1 u' t5 B
% s3 {* j/ |% N; |3.修改originalfirstthunk2 z! |* V; u2 e0 O
9 @1 H2 d+ q1 C" G& n, P
如图所示0 e, D8 h/ C6 j# b# S/ x# z
1 X7 g- f$ @' j* {
: B0 N$ q" V8 w& Z
我们打开loaderpe,依次点 目录--导入表(后面那个横线): m) \9 q4 G( A* {& { g, N
: N6 [* h4 x3 G5 k6 E4 k
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll3 C6 ~$ o+ {3 D, D( Y
% G( ?: p8 P4 g1 T# Z
我们右键--编辑--把函数后两个00修改为FF
* S. B1 K$ @7 J; P! H& R" ?( s1 R) f, s; e$ d
这样可以过小红伞查杀。 虽然会出现错误提示4 |+ P2 u9 t) v5 Y
. [ k: d) A6 h# E; t+ L0 {8 j g
但是不影响木马的功能,不影响上线。2 v+ m" t' D! c7 H4 T+ D+ @* w0 `
; r: M- K$ ^% I2 f( ^4.dll后面加20 90法过卡巴查杀
) w. V# V1 k& E7 T
- T5 _7 i( f) G+ P需要的只是一个c32asm而已,非常简单但却非常有效
) y- ]5 ?- W; u
& V; ~& W) q: `8 }: C如图
4 }* h) o/ R% ], M) ^% n
$ H; ?4 v1 _$ v" o) p 4 v0 b* C3 Z- `9 J
# s I0 }3 \5 V* }% A+ S) Y5 w$ x
我们可以看到,
( h1 |, |* E( X Q. v5 H- v; H; v; b# u
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90
( H V5 u- r' h6 Q
# l/ Z1 ^ k2 N! U这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
) O# K1 T) H [! _4 S0 i9 r/ ?1 i
我们只需要在他的所属dll后面加个20 90就可以了
: l9 F2 w' i( u
/ u: G, n) R; ~% G) `卡巴目前还不查杀此免杀方法) G% {) n7 L+ K3 o9 [& H& o
( C0 M4 t4 N \3 U9 a' L/ z! Q( }* W
唧唧歪歪这么多,打字有点累了$ k- E: p/ I/ I) q) o! x
/ |( @% m* m2 a# J' F) J以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。 ]7 y/ X. \' H+ C% i- [
( u, V7 a" z. }) X2 z2 M8 Z
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|