返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,
# \) j7 k, f* ~( p7 U
' N7 n* U  v3 @' J特拿来分享给大家。
- J& c; b4 N- v6 h- Q* j; M7 O2 H$ f9 a4 y' t
今天我们不提我们国产的那些杀软,真的垃圾的要死,
, O+ R3 ^1 q2 U4 P* e! g
" Z1 u. k0 K# F- @上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表" g. t- Y; g. L9 f

" x3 Z' G6 @) K' K6 i1 D# u我简单的重建了输入表就把瑞星搞定了,
, Y7 s( K+ j- M7 e  G. z0 k
% P9 G% Z- \& I# e7 t失去信心了。我曰
: i6 p: V  i% S. o7 f$ N) _
9 s+ L0 Q" F+ K6 j5 o今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
2 Q1 [: t( |: \: U, N1 G, s0 t1 z0 ?8 A9 g- j
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。
1 L# r  j3 i; j- H
$ P& H+ ^. P# O7 ^' Q4 P' K外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
' y$ t1 _+ [+ A6 l( p
/ y# G3 R# w- O. R+ @高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低1 H. F# \% k1 `! P% h

% i0 \& i. {3 y4 w! W过了以后再调到最高,再做免杀。* o- g7 x% Z4 H" t2 W) ^
0 W# Q$ K/ ^4 P; \
以上是废话,
0 ~3 Q, v- l0 b
, J$ d/ a1 U, ]" k: J9 L; k好了,下面我们来说下常见的免杀输入表方法。
5 s) d7 t) w, O# B
4 z) F/ p3 L  H2 A* P7 `: ?一。移位法0 E: \6 j7 C% `# ~9 X* `4 s- c
  \4 e. J. l( o2 r* T7 G9 a, V
这个已经过时了,我们的国产杀软及时的跟上了时代,7 B) A: w, B7 D1 A  h" C
/ p8 a4 W( C, d! V, }
移位法在去年过金山和瑞星,还有江民都是可以过的,
8 x; k# P6 ]* G5 w! n
1 ]9 l! p) w$ T% T; p5 T6 ^现在的杀软智能化了,移位么?呵呵 ,追杀你。, i, c/ A$ v' Q% e4 S8 o. d" o

, N. ?3 \1 t! u& Y& a# z% h如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。1 M  M) m; z) L  ^0 x% N

- n: M" T4 Q5 I) |( j' Q) c4 a二,重建输入表9 A% Z  O7 c' H8 V; [5 \

- Y* _' m$ N5 w, r3 P7 y3 n) S5 K效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈
; E2 O  s* L/ {, N) B
4 z' n0 n- P2 Y& G# n这里我介绍下,
' Z- d5 _8 f0 j9 N
$ H! Q1 u7 w( h, d* Y5 G) t用到工具:
* M% }) E2 f- v6 B  eimportrec1.61 d8 o+ I- Q9 ~, R# z
od
5 {, K$ ^$ Y  e$ d8 O9 y+ \c32asm
" B* `, `' }3 ~- K& Yloaderpe
* r# f# d1 C3 \2 N' W这里我们简单的介绍下,如何重建输入表0 W) c0 e, [+ I# g
! ]6 u# m, X" D  T: X* T
首先吧文件拖入od,打开inportrec1.6+ g$ S+ p2 }% }3 n' `

! r7 g4 ?3 L1 W' Y如图 选择拖入od的程序,
' a9 Z% J% V% Z2 J5 }- V5 I0 F" d2 Q2 y% e; G

6 B# m/ k! o, }3 ?8 q这个时候,我们打开loaderpe,
3 f& b2 w$ [+ o# f  D' m) u9 P
/ _& C( c7 p& L# Y2 ^拖入我们的木马
6 r( d1 Y* ^- A# y9 _3 F9 l' d1 Y# J5 m1 U  y( R% U
选择目录,7 U. D, d, O& z* B. I. ~

4 l9 U+ |0 P! X* }4 c) g5 y& \& y我们看到导入表这里。。。
; E, f2 _- F: S5 O: w* o1 w- M2 I7 u. S) d
如图:
  k, L" i* Y$ [7 ^8 r% u! C9 F. Y+ y9 ]- s4 Z7 A1 ]) u: [
3 R3 ?5 o2 ~( g) |
RVA地址是0001D000  大小是0000154C
+ [7 \; ~4 m9 r2 F+ A
* C) j* T# J2 ]# S) ~7 w好的,我们把这两个输入到import1.6里去! p7 c8 Z5 g# S4 K8 h& I  p9 ^  t

" Q4 E' F7 x- ]就是在“加载树文件”那上面一点
! \# |! P3 ?  @$ R! C0 m1 R  J8 o. |" S" }# T3 M( [
输入RVA的地址和大小。* V' r/ y) U2 _3 ]0 i9 r1 Q" B9 ?
! ^( ?6 b+ K+ r" m
点击“获得输入表”
; b! F- D. ^- J# Z( f5 l7 D+ N3 t9 e4 t$ Z# k6 M. s
然后点击“显示无效的”* X0 ?3 A' O  t; x

& Y- F6 i: c- {0 z" |接着importrec会自动列出6 M( [6 K1 W* ]5 v0 `

9 p, d4 {0 a. x5 x$ N* j5 U我们把深蓝色的字体  右键   剪切无效的指针" ?0 Y/ w2 z( v4 X

0 W& w0 z! @2 S% i
9 A. R( ?1 c% S' g7 {$ o2 P最后,我们点“修理dump”) ~! g4 G8 s7 i6 ^7 p  ^" e. S
, Q5 S# {: g# h5 m1 X
选中我们的木马就可以了
0 b( e: K6 v1 E! `# Z
* P" @; W0 I8 Q7 A最后我们要用到c32asm: I( B* }) B# q, P0 M6 M( s% z
: N8 e1 y4 `" i- t; E% j5 N' z
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。
4 I* u+ }$ c# ^  \5 @
: J3 o1 [" W3 ^- e+ z4 R5 Z) u/ a+ o这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
$ U" d6 z" b! L. n' C2 ]
$ u# f2 H3 Y+ Y/ A- ]9 \, Z+ W! |这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
( M8 K4 m% @7 _( d6 m; g" t6 D+ {5 j5 L
我们把马子拖入od的以后,打开了importrec1.6' h, q, ?) |" T
* v, o9 T: v0 j7 d
在选项那里,选择根据序数建造输入表和创建新的IAT
) b3 X6 f! i- z2 I3 Y5 V" P) Y6 s! N7 p8 N) `+ V
如图
& C5 U- j7 r$ H9 e8 `
6 h! l* q1 D- B& ~% @
- f. y' \) g8 _5 a8 J' ]* I以后的步骤照上面的方法继续就可以了
7 J  X( u6 g6 R8 }: F. x
6 g9 v( r7 Z& G; q8 l不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
7 b$ l$ e# E7 M" z) y8 u
; w. R8 G2 Z. j& i3 y1 n因为kernel32.dll的大小不一样。) C0 b9 v8 L) U6 e( \3 r- h$ T* J+ i

$ i, a* O6 K: b+ Q3.修改originalfirstthunk4 V9 }0 ^6 o/ V# k; y5 Z
9 R1 r" G' [! u
如图所示
2 z4 R3 l( q1 G" N1 a3 c0 I( f( X4 u- r4 {3 c3 c

- A# `" ?" T8 J) y* X* F# ^9 a我们打开loaderpe,依次点  目录--导入表(后面那个横线)! m; Q$ j- }, a0 r+ k/ E+ g# V
/ d1 }9 E4 m' @! s4 v
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll; K* I' _7 z4 d
& A% e( U( S+ n/ _
我们右键--编辑--把函数后两个00修改为FF. Z; }" G" b8 L* O

, c' O( ~& ^6 C% o' J这样可以过小红伞查杀。  虽然会出现错误提示, C* _# i! Z5 u
  g3 _% E% O( w7 K" Q$ T
但是不影响木马的功能,不影响上线。
. o) d3 I* U# {. H# c3 L2 r3 E* E+ x; p1 G7 J$ z8 c
4.dll后面加20 90法过卡巴查杀
4 a9 c1 {) K6 i* C6 i1 Y( B& U
1 f% ^3 Z0 o9 b, B" M2 c需要的只是一个c32asm而已,非常简单但却非常有效% a4 ^; s$ {; c. I5 V

3 q6 x; |- n& X2 c8 S6 l: \2 C, D如图
% m% F6 C3 d: [, @) \
- U8 h! ]3 U+ N% H/ W
' z$ z/ w: [+ c+ R$ B" `
) l+ Z1 [) |. R- Z% z我们可以看到,6 f$ F6 t4 X' ?8 P6 {
6 N; ?  ]) Q. f- g
在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 906 {  M) Z7 w: n+ `  G9 f$ I
8 J/ T7 D+ a- a5 b* D% n# k9 }0 x
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection* M4 ^+ P2 o- h9 m2 U, b

% a' c1 B2 [- h6 N% a8 c我们只需要在他的所属dll后面加个20 90就可以了1 o+ A; D* _4 s
/ C6 F% J: `8 @4 I
卡巴目前还不查杀此免杀方法3 u+ ?( b* }: O# m" l9 e
( a& W( _& S9 k0 S6 Y! C

4 O" }" Y$ b: ^+ c唧唧歪歪这么多,打字有点累了! W6 W: K; \- Q; a5 G, E

& H. L. M" M8 z以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。" ~; j% j( _2 j1 v8 o$ ^( o/ G3 ?
7 C: Z" v$ L' V, O- a+ [
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表