  
- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
     
|
最近和一位木马免杀牛人交流,感觉新增进不少,
+ m5 \+ M0 X" ]8 I& V( I3 n. s& d7 L. ^
特拿来分享给大家。
7 `0 o: u- ? f7 _- g. a! Q' B
9 p7 _) ?+ \& z H5 ?/ S6 @* R, U今天我们不提我们国产的那些杀软,真的垃圾的要死,
0 n2 ~+ S* k# Q2 U j+ T: D5 R3 E- a6 B# x; ^& }: Z+ z
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表4 ]- w1 E! }( U3 d9 I2 a8 Z* q9 y
' M7 ~8 I/ T/ W( M我简单的重建了输入表就把瑞星搞定了,
* q A1 R, [+ J/ @; M+ K
: o' Z6 U! ^; ?" |7 l6 O失去信心了。我曰
/ C: f F2 M* T+ `; t/ p b3 J
1 E& o9 p( l5 ?今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。* M" w! Z* Q) x6 a9 S& ]! A- n
$ Y' Y6 v$ `: b' n首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。, V5 q- h, X' `' z
8 t) K; U+ j( R" Z$ `8 ?; {
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。5 q" s+ ? [9 w, E( {
5 o6 _' N8 V: X( [, ?# `! z0 |" C高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低4 q# V1 t, b2 d
3 j! K4 B) N; z, G8 |- }过了以后再调到最高,再做免杀。6 Q4 w) O1 s! Y3 p
% Q0 }2 t* Y! W' I+ S. M# J以上是废话,
5 j G7 m( f- Z5 @8 Y1 F6 b ~
好了,下面我们来说下常见的免杀输入表方法。, E/ K7 W* N# v1 x+ m- U l
1 p( p& u+ |7 F
一。移位法
8 ^; [. y4 R! s- c1 m
, t8 i! e. k9 p4 v* j9 }4 ^7 W! Y" ~这个已经过时了,我们的国产杀软及时的跟上了时代,
; Z( _9 j0 E) p# U- {' Q( e& X9 m
: ^+ R7 b# L8 m. Q r" r( e% }移位法在去年过金山和瑞星,还有江民都是可以过的,) w% D, [# y: p% T# w4 A5 l
, k9 J) v, |2 S5 [7 X3 f% d" X9 t
现在的杀软智能化了,移位么?呵呵 ,追杀你。
8 \4 y* W! H- ]2 z+ ?3 i' @+ _% v- W; ^8 Q7 V9 B! S
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。0 Q* ~' R& G4 g. J
) _- W+ t9 Y, B" n/ U: E二,重建输入表6 d- J: t$ Q$ g8 t/ H7 y
3 I8 x, T0 a' c1 I: [效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
; p' \# u4 C4 R
% I: U& J2 `6 @) T+ }* N这里我介绍下,
3 ^; K1 Y. K: \7 K. j
- l6 ~2 ^0 g3 c0 G用到工具:0 b. S n6 y0 \. \8 J" S
importrec1.68 Y% z$ R' [* l. Q( K h
od( w. p1 P1 l' c% e) X
c32asm6 g, T; W1 b! N* Q
loaderpe
2 ^& @/ [8 P8 S* f- S这里我们简单的介绍下,如何重建输入表7 ?* V4 d' q+ ?: e4 W& b
& w5 B: u/ y8 I" u/ @* n0 B
首先吧文件拖入od,打开inportrec1.6
H ^& |7 P) F& W. m, ? A
% u' N" A1 _# o) _% X如图 选择拖入od的程序,
, U' q1 r9 K: W
* h* I. [/ c! |
' q: }; w: o! g- Y4 L0 Y这个时候,我们打开loaderpe,
" e, N d) A8 a8 ^4 J7 `- k$ F2 u3 P8 M r
拖入我们的木马
/ H; V% g' u, Y9 {, ^1 B0 Z- W0 r, A: T
选择目录,# D. h- Q; D+ u: G
' ?* F3 D" ]: r" O2 q我们看到导入表这里。。。! T0 G9 u# e0 w( y( p3 j/ t
* l: C/ X2 M: z
如图:3 W# |7 q1 T$ X9 s. c" i" B

d5 E3 Z% {5 O' j5 U2 F2 b7 D# H5 }2 }: d1 y! e
RVA地址是0001D000 大小是0000154C$ J! C+ W% g+ Z" \% ]# r0 a5 `2 [
4 H( a$ y3 d2 u+ G, s
好的,我们把这两个输入到import1.6里去8 s0 T& `) z! K$ Z
, R9 r' C0 V9 W. A5 t2 Q' w9 ^2 A就是在“加载树文件”那上面一点 5 u8 \) v( X9 N+ z; G. T* S
# T& o- H4 j2 g0 r
输入RVA的地址和大小。/ J" H, h; N) |- }7 ^
3 ?+ \: D4 v1 z B) y5 i4 y0 E) `点击“获得输入表”
1 W! [. Z1 _0 A% h# n
7 k2 y. H! u7 z! Q然后点击“显示无效的”2 @ P* Q; x. y: v
X/ d( K4 P+ x& }
接着importrec会自动列出
/ [7 Y5 I3 Z# m0 P: }# v- t6 T9 O" I! h9 K- e
我们把深蓝色的字体 右键 剪切无效的指针
8 w& D8 `, O3 r" k2 i
* c; w5 }; }0 K) \5 l! E
; |" E$ p7 F! s% o9 r最后,我们点“修理dump”
* O. `6 s" ~* l8 N
2 O; v& W! i# n$ n7 G# e选中我们的木马就可以了0 O8 h& ~- }9 L! @* p: B
z$ B& w5 ~- h8 d+ h最后我们要用到c32asm
, j& L0 @$ H) \0 h! Y- P# n! Q& O4 a; `$ \5 i- A; a
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。 I o6 w5 S4 W( ]) H% N; U2 p. \- U
1 U e* R: O5 E& U这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
, {+ p2 Y( y4 M# H" u7 d o% g7 a6 Z- ]! s# F4 @% X! H( ]
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
( U" h1 q u* ^6 j' ?/ s8 n$ ~' _* Z+ Q: F4 N
我们把马子拖入od的以后,打开了importrec1.6 H( B: [% I' d8 | X' y
0 `: I) m+ u; S: t @6 P: x3 j: J
在选项那里,选择根据序数建造输入表和创建新的IAT( k+ ?3 E; X6 z
1 ?' K5 N( h% {7 R# `( u
如图
- M* g1 O, Y. V+ g
+ m' E5 w5 U% V8 v% O( o& d+ w) A
以后的步骤照上面的方法继续就可以了
' e0 P0 W J( q" v7 [
: Q- l$ _# G: m5 i不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
. e2 y! i( W( u$ _' |
; K. s5 V. b. X, ?; O& k因为kernel32.dll的大小不一样。
. s# `7 P& U V
% l" v S6 |2 G3.修改originalfirstthunk
1 [/ M) I. r7 G! B" L9 ~+ S) R+ C: N, W( w N
如图所示8 _ m" {4 o/ z( N& ]

! G( T, n' p. @1 ?( C% R0 B7 u2 x% v9 D+ g5 {6 T
我们打开loaderpe,依次点 目录--导入表(后面那个横线)* C/ L9 [4 w# {# N/ l8 ~
# R! P3 G, Y, z \* H我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll8 n9 k# X5 }4 |7 ^" l5 l
0 H6 [5 f% R( f) l3 ^) L) o
我们右键--编辑--把函数后两个00修改为FF
1 ?, |/ g1 T1 D) L- t3 B+ T; ]% n- I1 t3 G/ P/ F8 A/ x; ^/ U5 X
这样可以过小红伞查杀。 虽然会出现错误提示
]6 P8 q( H& z4 I6 Z1 m
: d( S% N2 o* ~, B3 q0 }: @但是不影响木马的功能,不影响上线。
% r' Y9 m5 @( ^
3 \& U: T, X: S1 N: H6 l4.dll后面加20 90法过卡巴查杀2 v; M; ]! o( ?5 ^7 x: k; E
9 z$ R/ t; E& t; j5 x
需要的只是一个c32asm而已,非常简单但却非常有效! s+ o4 v1 H- I! m, P
3 p. |- F+ A+ ?! g4 A, D5 W如图
8 X C5 ~' G1 j) b2 [, h- m- x5 a8 W3 M' c, a$ X0 u

* |1 ~$ Q0 s9 U( I2 N
& P/ w$ g- S2 |* c* I我们可以看到,* ]/ h) l: v, P! {! [
" [: u ^+ B* g5 p0 k' {. W' O+ X: ]
在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 90) [0 R$ R. ?4 L, M# X
0 S! h1 m, S5 C7 r1 v这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
' X9 g7 O& K% W4 [% H
/ u4 a5 M# n+ K* j2 V, |4 `我们只需要在他的所属dll后面加个20 90就可以了
4 |( J6 M: r" _2 Q" R
& F! B0 [& Z* V6 G; r [卡巴目前还不查杀此免杀方法: L8 a/ A+ ]& h
2 n- o0 B7 c* L0 t6 {
# W! e" g( }; Q4 U1 Y' [
唧唧歪歪这么多,打字有点累了8 I: Z) }' }+ }. r/ _7 I/ d
6 W, o5 W; N" V/ v( @以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。% |! H1 m7 Z. [' m
; J$ S7 y- V# g/ x/ ~
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|