- 帖子
- 143
- 积分
- 419
- 威望
- 415
- 金钱
- 446
- 在线时间
- 65 小时
|
最近和一位木马免杀牛人交流,感觉新增进不少,
9 R0 O a+ F0 o5 K+ n
* c. @0 ?) l5 d' y# g9 b特拿来分享给大家。/ z" Y/ r+ p; ^& `9 E+ \% I& I8 F
$ l% Q6 S b' D
今天我们不提我们国产的那些杀软,真的垃圾的要死,6 r4 c* Y" L2 o$ T5 r
3 r+ K3 T9 |% S! D0 Z2 t1 G0 q
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表* Z, {' K) O& A* e! K5 m( r/ V
" |: ?- |8 O r3 ^: ]我简单的重建了输入表就把瑞星搞定了,
0 b1 K8 Y6 S( c5 y# X2 F- U, Q2 `/ Q
失去信心了。我曰0 | A2 ]2 z) q8 Z7 u! q
* g) G6 N- Z2 b0 Z5 X9 X1 |6 o
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
2 j8 M" R+ L8 X1 ]: G3 J. O
( E. P% Y% A; U' m% B* ~首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。6 @6 q0 E! Z* F7 U
4 Q+ p3 b; @/ a g
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
; t' W# e9 g2 f' y. V
8 o0 ?) s* X* \/ u3 k/ D高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
* I8 v$ O: B/ s2 G( W8 I- J! {+ f5 [) E7 n
过了以后再调到最高,再做免杀。) |7 q$ B6 L0 i' x
* m' V9 i$ N1 { F8 T以上是废话,- \! v% `# P& u
( |) u7 W/ v' e. q
好了,下面我们来说下常见的免杀输入表方法。. H6 S& i3 ^: u% L: Q* C
3 g. ]' ~8 f6 R( l8 ^一。移位法
( Y0 ?0 D0 \2 J5 g" b" ~. O6 X) ?8 M- }* S
这个已经过时了,我们的国产杀软及时的跟上了时代,4 P5 r6 [0 \2 i2 R) \, A
/ b- c4 b& ^5 U% Q% H8 f5 i移位法在去年过金山和瑞星,还有江民都是可以过的,
N1 F0 @" Z4 G! N9 P
8 W# s" v+ Y' ?5 G; o现在的杀软智能化了,移位么?呵呵 ,追杀你。$ u/ F7 B3 |4 J# Y- k3 l2 t5 F
8 Y/ H& Q6 W/ I6 @* D _9 P( K
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
" L3 j: g. M; ?( C4 {% j% {2 K) o( Q0 y6 K0 `- r8 Z
二,重建输入表
) j6 a$ k8 r3 @# v( g7 W
! C- ~' v" ?9 x效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈 {0 ^3 z z$ k; `# u% m- E7 b
: N$ I0 b# z$ F( Y2 R) ^8 g
这里我介绍下,
2 h/ l$ Q" |% F: U! D+ Z
3 x; p. P9 `: J9 G! g" K; ~2 {用到工具:
6 M9 F( c9 N3 P1 ? d2 Fimportrec1.69 e: f8 E# y5 U) i _- e
od
+ r8 j; r3 b1 G& W" i+ T- G, ]c32asm- a: Y6 j) z1 Z5 o9 ]
loaderpe; M4 e2 \* j/ t. T' B; Z
这里我们简单的介绍下,如何重建输入表; o1 U* q/ h6 d$ s
7 d6 d1 q* w1 \
首先吧文件拖入od,打开inportrec1.6! ^+ d' s0 [2 D+ T% v) n# N- |* l3 c
5 b. w; o3 s- s$ Y1 ^2 p# k如图 选择拖入od的程序,' C! i- O- |6 m/ Y; L
, S5 Y; |! N& n" r, l7 d# G. F
- x* v5 Z3 C9 ], w/ t这个时候,我们打开loaderpe,
: a6 \1 B0 m4 E! l; m! v" j1 E5 I1 x! _
拖入我们的木马
* [* u$ M7 I6 C N5 z5 a( ~+ c, x6 B, B# R5 n5 U9 @
选择目录,) p. C2 O8 F. f v, ~
3 a/ }: _. i- L( Q- r: J我们看到导入表这里。。。
* @% L( L, k% _# e- \
+ H0 X- p A8 F4 W0 ?如图:
# i1 N* H; ?; @. \
9 u( z3 `- A/ S+ v: W- U/ K0 A6 k- H8 g
RVA地址是0001D000 大小是0000154C
" X( @" l7 Q; E* z, [1 ?" f: ]( \4 w! M7 `
好的,我们把这两个输入到import1.6里去 j+ o8 n2 ?% m6 O% _! }. D. b) ^
) s5 A- w; h" e i4 }' c3 X4 k/ i
就是在“加载树文件”那上面一点 8 a1 ?+ W: |. x& ]# e1 Q
" Z% @" b3 z$ i' [5 L2 j1 v) X8 }
输入RVA的地址和大小。/ @7 v* a, w: _, n
# [7 t3 r* Q2 @* f$ Y
点击“获得输入表”
' n2 U. x& T; Z- W1 x
5 N( n" y* r5 I2 R0 k v然后点击“显示无效的”5 x) g, f1 ]4 v0 L0 X* @
% I8 V$ ~6 a2 x6 K% Y
接着importrec会自动列出; S* _4 x+ j+ J' G* Y
. a) ?4 N. G0 O# @. N: N我们把深蓝色的字体 右键 剪切无效的指针- s; _5 w, ]! V& z& g0 G5 J' W. O
/ j- C2 H) w5 W M4 S7 {, \6 h* u: y+ d: t' B S
最后,我们点“修理dump”
" {5 t1 ~1 G+ E& U1 A3 J* }2 y4 D5 `/ l& g
选中我们的木马就可以了 @0 P, b7 p7 A8 ]( c- `. A5 @
7 a6 o/ ?% Z! l* [最后我们要用到c32asm* n. A- H+ `5 I
; O* h0 j3 u) ^) E# w1 C我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
4 a- |% [1 H3 P+ Q7 P2 ~' L3 l& w) X( m1 T
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
- z, d' `0 L/ B8 ?# f3 B. H% M( Y. D1 Y4 ~
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,6 N- _; m4 @! Q) e8 [
0 y5 b x( O/ z$ K/ r* M7 \
我们把马子拖入od的以后,打开了importrec1.6
4 o: {4 f$ b4 O! r" u6 _. ^/ B- i' ^' i* n" G
在选项那里,选择根据序数建造输入表和创建新的IAT* Y d1 b' I @. i9 M
" H' m3 e! c7 J1 u6 F
如图1 S9 A9 D; i, i0 y# L9 @
( {8 t* _7 V* K
/ a7 Y& u! k. D* y; a以后的步骤照上面的方法继续就可以了2 A5 s: v, X' i) @# S
( l5 v: l' x+ V5 b5 s6 b不过此方法有个弊端就是,如果你在sp3下作的免杀 生成的服务端会在sp2的系统下运行不了
$ k. T8 z: h. D# r
2 D- T1 C& I/ f) D8 j: Z" l因为kernel32.dll的大小不一样。
! J# S8 d3 @& W2 i r$ g* g2 L& A- z- }1 q4 r6 O6 [ B
3.修改originalfirstthunk
3 i& L0 [8 Z& B$ J* h# G, s" F( ^( i$ n Y5 }( }
如图所示
3 K% R4 U. b1 n8 u9 |
5 H2 e6 P2 ?& v4 Q$ o1 |( f1 X. F; k8 W `5 c4 m
我们打开loaderpe,依次点 目录--导入表(后面那个横线)
! K; X( r1 E, t0 X! |# N7 n0 B/ y# G0 h/ S2 T
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
3 q& z* I6 a% _0 P$ z, a7 j) U6 ~- v8 H. m9 o: p
我们右键--编辑--把函数后两个00修改为FF6 F: ^' e! @* c& U8 f# @
, c) {! Y" f0 m& W: [
这样可以过小红伞查杀。 虽然会出现错误提示/ h" }/ X0 G+ F
( T3 L6 T% d' |# Y) X
但是不影响木马的功能,不影响上线。
" x! H: Q# I3 C8 C, D( `9 m, t
4.dll后面加20 90法过卡巴查杀; R$ V5 x$ v" A/ a2 L1 j3 s
8 k6 F$ |. G+ N$ C需要的只是一个c32asm而已,非常简单但却非常有效* R( y$ s; }3 S" m# A; z$ L
0 n: S, s4 l+ n( k, ~" k
如图
! R% A; l* E; `0 k& E9 u% b
. R* e' t+ w$ C* S7 R0 d* \3 i% _
, N1 n4 X& D) n" o$ K1 F5 @# H2 p- p2 E! J( Y4 [4 J9 a( w
我们可以看到,
+ H# B* {- t5 H8 x# n; n. J
6 q. @5 Q# _# g在ntdll.dll后面有一个空格和一个问号 对应的ascII码是20 902 o0 ?3 ]' @7 s- b: w0 m
. @0 B. K V5 ~3 L& f" n" Y7 q2 B
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection6 t4 E& O& a+ G. |- T! G
* p7 _" U9 _9 o* Z/ A8 w我们只需要在他的所属dll后面加个20 90就可以了
7 E& ^1 M2 p4 E2 I3 f4 c6 f6 y& G' R
卡巴目前还不查杀此免杀方法/ T8 r+ L" u' M# W# M% y+ |
7 @1 u) V6 {6 ? [0 c8 S
5 A; v" i+ q5 v4 x+ b& m7 l" U# O唧唧歪歪这么多,打字有点累了- n% X1 M9 Y! e
1 b- `) e$ v g& O i& W
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。. B" h- z5 K+ ~; o9 d i
A! m4 c$ x" M7 X% i' ~7 B( a
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ] |
|