返回列表 发帖

[原创文章] 木马免杀之免杀输入表篇

最近和一位木马免杀牛人交流,感觉新增进不少,
# \, _+ A. J  H# T( s; f) R  O9 v' E
特拿来分享给大家。: T+ _( ]. \, `5 x& @

: f' G) i  J3 x; W1 N' u9 Z4 A今天我们不提我们国产的那些杀软,真的垃圾的要死,
( k1 X  p. D2 |$ U6 X) X* |! |+ _6 Y' A( ]) }
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
4 S/ f5 y- G1 t3 n2 z% V( s1 V' c8 i, x0 V% [
我简单的重建了输入表就把瑞星搞定了,2 |. b# O. O: q$ w0 b. @$ ~# M
; q2 p: s( ?. d2 \- B. ]3 R+ l, O
失去信心了。我曰
% i& Z) Y# _  x- G3 A. x
& d4 k0 Q3 ~  ?! f今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
% N1 x. ]2 Y8 d1 o- H. R: v& N  ^) Z  [$ O/ c
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。: t6 _# E9 f; o4 R$ ~; f. W

2 Y; h) i/ }" e外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
* R* p+ C9 e( P. `: e( B4 ~& F9 c) w2 b5 `/ ?+ U
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
2 T4 `6 [0 `7 r  h9 \5 a" }; Y( q2 ^% w9 Q2 y2 x2 V
过了以后再调到最高,再做免杀。
! q2 B, i9 ?, @7 V! v0 a9 ]& X/ |( a: {; Z. Z
以上是废话,, _( r. r3 g- `
( d8 G+ _9 M( x) }( j! v$ T+ [* n" J( ?* L
好了,下面我们来说下常见的免杀输入表方法。, c) `- C; c! |* K* u' H
$ I6 A  L. h% K3 h$ k; N: C+ B7 a! c) ^
一。移位法
- B5 L/ j/ s( L* Y
( c# e/ X; D: o; w# q这个已经过时了,我们的国产杀软及时的跟上了时代,
2 ~7 R! E8 w7 l
) r; }! P1 X3 z  ~+ R% g" k) L移位法在去年过金山和瑞星,还有江民都是可以过的,$ Z6 n/ V' b$ T4 F1 O

0 H5 t; L# j" n! J- d+ k现在的杀软智能化了,移位么?呵呵 ,追杀你。
3 [2 S7 B3 s- H& n. C" I
) o" P1 R! N1 M; \) O! @# `5 e如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。9 }) {* C: @0 v
. K" U, y. {5 x* v; f
二,重建输入表
2 R" w2 b6 F* U0 Q0 }* E
* l- a+ L8 J% O5 W; t/ [+ Q效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
9 E  u  s9 ]/ A4 B4 F- T  ?/ }' c/ S  A1 Y
这里我介绍下,
$ T4 Y% g( I* o5 k8 x: \
% x5 e- Z- X% I. F: S用到工具:
0 N/ ~4 u8 ~. j, q( _importrec1.6
" j, S" B' N! z" x: Tod
- h( q1 a+ E9 D9 z: k6 _. d7 z( {c32asm6 v, @6 Q- M1 k, x* Y
loaderpe
6 m7 B- j; r7 p& a" A8 G7 i) r8 e这里我们简单的介绍下,如何重建输入表' B& e: ^/ X9 j

, M* g6 P- T& @, P首先吧文件拖入od,打开inportrec1.6$ t" a* v1 Q& A6 n

8 `( a! |6 k7 c+ [如图 选择拖入od的程序,+ b* A3 z9 v/ c, c2 Z7 B& D( h
% ^; u' P( j( x% g- z

; {: Q" J3 H0 V6 h0 w, c; @' R# g这个时候,我们打开loaderpe,+ B/ E8 F4 J% [  L" H0 }

$ R1 w# I/ M4 V6 s拖入我们的木马4 V9 Y' e0 y5 F% S8 Q# @
  l5 F9 p- |& {# c
选择目录,
8 B/ l. ~1 W- j1 B, g, _- m5 Y
# Y5 U& b) Z: }我们看到导入表这里。。。- p% ~3 O) _8 ?2 v+ a5 k+ r; G
  M% G6 j! h  r
如图:
& c4 b4 U* \: U0 P  h! G9 j2 q' Y6 ?! D! Q
) g! B+ s. B" \# F& ^9 B
RVA地址是0001D000  大小是0000154C9 Y" ~: R( w$ K0 }: f
- O" z6 [2 P% n
好的,我们把这两个输入到import1.6里去
3 r) s7 u. T+ {$ }/ r) B; {' G6 X( Z/ Z- v9 X' R
就是在“加载树文件”那上面一点 . E" k) S& o1 S2 M3 _0 ?5 t
6 ]; R' g7 Z+ M% v
输入RVA的地址和大小。  d1 ?/ [1 x7 y. s; J; M3 {: }( j

& r3 V$ j: U0 b' ^# d1 {9 s点击“获得输入表”
5 f/ `+ I: J3 X4 ~2 C$ Z4 X4 k0 B' @
然后点击“显示无效的”
4 t$ p3 Y% J5 s- ^9 F% o& o. H6 R+ U- s! A0 l# v
接着importrec会自动列出* w: I' u0 j* \2 }" S! k8 b( N- E

$ H% u( f9 n$ l' }- l我们把深蓝色的字体  右键   剪切无效的指针
- v( I$ }  C& x# h! v8 n; d
, d( O$ b  O) V0 u  J
3 ~# I+ y  |9 s6 D5 @" u最后,我们点“修理dump”- e# L5 U) ^, c+ o

: H" g; q6 C2 w1 l选中我们的木马就可以了4 y  M, W  m) ~

3 y7 j) i, ~" T2 m最后我们要用到c32asm3 j) u: z) O0 f( ~8 s% G1 ]
, ?; u' v. _& j
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
. K! N( Y" f3 R* U4 R5 f5 J: R8 w3 w) @- T  R1 X- c. y
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
( _2 a  p9 L7 z! B' v4 x' O1 m. M9 i" e7 Z% a
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,. ]. [' |2 A1 z- }9 D0 X- w

$ ?8 s7 Z* F8 T# F9 n我们把马子拖入od的以后,打开了importrec1.63 H! C0 ~- G! z' D3 c$ n

/ k0 d7 G; y- f6 M! \在选项那里,选择根据序数建造输入表和创建新的IAT
# v# _- C$ J# O7 [' f- c7 n/ V& j8 l
如图
  U* d9 A) t# i0 h" I9 M
6 o. V4 x* I" Q$ ~  v; J8 N5 Y8 G
- j) G! q. s1 T2 k以后的步骤照上面的方法继续就可以了
- v% U" e/ g/ x( B) u5 n; q7 N* r& h
不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了  L- k1 R- g* k) l
/ m1 I% q9 F6 C% d
因为kernel32.dll的大小不一样。$ P" `5 J; x5 {" Q6 ~

/ @! u# S4 z3 E/ L0 C+ k3.修改originalfirstthunk* l  N+ ?- w/ `  X
6 [! ^. J. N2 y5 h9 n$ t- V; g
如图所示
4 @- J. q% v* A( I4 e# O4 Q$ `5 p  b/ O  h
7 W3 ?! ]) M; H" e5 p! l+ l. Q
我们打开loaderpe,依次点  目录--导入表(后面那个横线)
' i/ z! k( p/ _  L3 U' i& x* O
# V& t( U' Q6 Y1 [: e  X我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll8 o- J' E5 P; F+ [
8 v( S4 H6 l! C8 ?
我们右键--编辑--把函数后两个00修改为FF
2 |+ q6 q- X: N1 n4 L; ]
' {( k2 T" G* N, y) x这样可以过小红伞查杀。  虽然会出现错误提示
5 O$ N: T+ L8 i# p& V. H4 {/ |' [. f: _0 M" x
但是不影响木马的功能,不影响上线。7 Y! G4 g" o0 v( e

# q- J' e  }/ @4.dll后面加20 90法过卡巴查杀
& z5 N% D' z* \7 x* D
$ V% K* M9 w- M9 {8 \* n' f7 S需要的只是一个c32asm而已,非常简单但却非常有效$ {, O' V5 J4 W

+ T! W& E/ {- ^如图/ M! T: i9 h0 V

( q! _( @6 j8 G7 o3 h
, L; \$ ]: X% u0 a
* C  i& V: g& `9 J我们可以看到,
' c2 ?+ g: _0 i* P: O& x1 a
* a9 x& C( z' U0 X在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
# n' g" w5 G- H6 y' ?
' S5 `) l/ Y& U: }  S3 H( ?2 b  N这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection5 P6 F* S3 G8 P! f
( e# @& q( A, R  X" K8 R. ^& N
我们只需要在他的所属dll后面加个20 90就可以了2 i, w9 d! ]- i5 N2 R. y3 \

4 K6 ?3 h! {6 Y1 K4 n1 S( }卡巴目前还不查杀此免杀方法/ ~5 y. ^3 m3 v3 ^* y  J

/ `; h+ O" i& ?2 P; ?: X
& a  o& V1 Z# D1 T2 o7 n唧唧歪歪这么多,打字有点累了
/ O4 X3 a6 W# e2 `4 [
2 m$ j* M. {. [2 I8 m以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
5 U1 n8 w1 |; c" `1 [8 T) e( `# x- ]% Z) y$ x9 Q
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表