返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,2 V" u4 a: B; E/ `7 k! E
" x) ?7 }) D- w, ~5 m
特拿来分享给大家。
. z& ?. Y" g8 o! \- F# C: g. s$ s) c5 [
今天我们不提我们国产的那些杀软,真的垃圾的要死," k7 v' ]4 j' l4 A- i( I( ?2 u
+ X: Q7 O0 h' z+ Q/ l, x9 z
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
% s5 M; H& d9 t/ Z2 \7 B
5 @0 W- _' z' L8 t6 g% G我简单的重建了输入表就把瑞星搞定了," D( Y& L0 i+ L2 J. Y% y
8 w: A# F9 o  \% q" L
失去信心了。我曰4 I0 x0 f" |( P) }) ^

" u; |* _! u( Y; y今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
+ Y* o+ q5 X8 G8 z, n2 H
& @1 d1 g! P+ h首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。* _% {, n' S8 c

& t  d1 U0 x) @( l0 m1 P外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。
4 j9 ?" [4 Q8 H" N: w
; [6 [/ w" U' J高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低/ @7 y5 i. T8 W+ A( `

% `6 O% C' _8 {% `, h) w& e! L过了以后再调到最高,再做免杀。; J5 B' A( Q2 @2 d& N- U4 |, ^
' M: I! ?, V  \: G" E$ ^0 f
以上是废话,
, y3 Z4 `( L3 w3 F7 S" O
6 e& _2 B( o1 y好了,下面我们来说下常见的免杀输入表方法。
9 X5 p: u( i+ ^2 z! D, x+ N2 U3 M- A$ \0 U0 g9 }
一。移位法' f! w# \; E" s, F
# n7 }& O2 e7 d! Y6 v) F6 p: \
这个已经过时了,我们的国产杀软及时的跟上了时代,
, x  A( Q* X* F% _( j. D7 @/ \& i. [/ S3 P
移位法在去年过金山和瑞星,还有江民都是可以过的,
& ~) y. _  u5 }) I- \+ S# ~4 Q$ M" ^1 x' S
现在的杀软智能化了,移位么?呵呵 ,追杀你。# T# L* L; s2 _# s( q' I/ i! m
$ r, a0 @7 y% T( n+ I
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
, a5 e$ y' _# P) Y+ G& Z% k0 Z
7 f6 s: @/ |9 T4 s% J# ~二,重建输入表
0 L( A0 Q7 D$ v. q, T* m& S" e: C4 a5 V8 W- E; d6 p
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈4 Z7 h0 ~) j- P* f7 M( A' W8 p

5 K8 P1 B; Z5 s这里我介绍下,
& J- b& r5 t. u# x
, v  J* P  ~- w7 |用到工具:
5 ?8 {$ \# V8 l# ]7 |/ ]0 p1 O5 Uimportrec1.6  m( Z8 K; E' N7 g# w) a
od
& N3 [# _$ @4 \' T& H! R3 v$ \c32asm
4 q  ~( H! R% c6 y. {) D- Vloaderpe
' h" a9 A; y: ^5 f0 ]% z这里我们简单的介绍下,如何重建输入表5 Y9 O3 ~& t% d1 L. p) U) h
; \- s& N6 W% u! I9 q
首先吧文件拖入od,打开inportrec1.6
. ^# ^4 _) g3 [/ l* Z1 z6 d* M- ]* }
- _- r8 G% [1 k7 I5 u  f如图 选择拖入od的程序,
8 ?  K  f4 R. }" I/ Y: l8 C
5 S, y2 W# o* r7 L7 K1 R" x
; T( K2 J# q; t& R这个时候,我们打开loaderpe,
; \! R) G. @4 J& R+ j% l- q
: `9 H& U: k: i4 n2 O. }( y. U拖入我们的木马; N9 I& ~6 z* K3 \) {. f8 I
4 i( F9 w) k! {2 V8 y
选择目录,& D) c1 V3 o. F3 i) j

$ p2 V+ m! M" O2 j) Y6 R我们看到导入表这里。。。: |. Q: x/ c' }6 Y% ]$ R! e

; H8 Y6 |  \8 D; R0 @1 L如图:. s% [" E$ B/ [

. t* h1 _7 j& V$ e8 V( M2 ~( d
  Z& \- d% {4 A+ I7 P1 ]RVA地址是0001D000  大小是0000154C( F  W+ I% a6 P4 `

$ E: q, A" h* G3 p- N好的,我们把这两个输入到import1.6里去# o/ V2 N8 r; J, W$ w% f) Q/ I
8 y2 A& l. [# l
就是在“加载树文件”那上面一点
' j% o; u2 S. j
& [2 ?9 Y! Z8 {# c' W输入RVA的地址和大小。
$ Q$ X# ]& w0 I2 Z
; \4 S7 Z5 I, q3 ^; M' q. b* R4 {7 ^7 I点击“获得输入表”
: j' C. O, B! F5 p& u
' _8 R" e* i) b3 y; G然后点击“显示无效的”
; F4 C& D3 b5 Q% _2 b4 ^" y' @( m' z' P' ~
接着importrec会自动列出
3 v) F) j3 {& A0 y4 Q& U. I4 i7 [* V. C4 q3 r/ }: \/ N. f+ v1 A
我们把深蓝色的字体  右键   剪切无效的指针
/ [/ L) V7 v7 U! g1 {; ^) o3 |% C) v1 p" q0 p0 T

1 x& }' w5 D- x+ p  O最后,我们点“修理dump”3 i7 {3 C% ~1 e  s* l# _2 |
& y# [! t" \! }# j- X
选中我们的木马就可以了
3 x& Z: n/ m  c# I
. e& `  a% h; L! I最后我们要用到c32asm6 r! u1 q/ x! B: j+ Z9 G  H
: \( b$ g% @: t! I
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。" l( \5 D! ]. y% m5 a5 F5 V$ g
$ {' j) I7 H1 P! Z/ i" O) N
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
5 o% {' x2 @3 T# a6 B* z3 P3 a
* v7 }7 g( i6 v7 D4 o( N+ P; z这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
( u4 L$ h# F/ K0 ?$ y  G) Q$ n% f3 Q4 B
我们把马子拖入od的以后,打开了importrec1.6
. s+ y% ?! w4 Q2 m( k2 k9 D1 s  d# T* O
在选项那里,选择根据序数建造输入表和创建新的IAT
& _0 b& R% A7 i3 G
. p' v+ d; ?. B9 ]- l5 O9 S, u3 I如图" j. q" z  y" M6 K' m
; p% d3 t- ]& S6 E8 @( N

: w3 Z+ N9 ^' K8 T+ l7 E; B+ z以后的步骤照上面的方法继续就可以了
3 j& }* B; U5 }2 O  e0 l" w: c- z* P8 M$ ?
不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
* G$ l( t- c* ^0 p( c! x
0 a- e: d: F( A9 a因为kernel32.dll的大小不一样。* x9 K- q! w/ [+ h: N0 M

: Y! I0 a& I! a) F' s; P3.修改originalfirstthunk: n+ H9 Z& E) H. P7 d$ e

. I+ P! F8 B. p/ ?1 I如图所示
4 F6 k" z( D6 g. z; P! I
  i! G8 O) o+ g/ a9 e. i1 G; V" L* c* G: h
我们打开loaderpe,依次点  目录--导入表(后面那个横线)
/ X* t6 [5 {- C! k+ j# X* `: m- B* D3 R$ V: J
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll
) E! M9 d% V7 ]3 d7 B, P. V! P4 U4 m
  i/ o8 t  w4 j; V我们右键--编辑--把函数后两个00修改为FF& p& `9 h. q: I& M0 T; l
4 p7 @+ ?: q' h! Z# `( I7 ?
这样可以过小红伞查杀。  虽然会出现错误提示
' o# d; j1 `$ t8 {5 P5 P& i2 ~$ w2 K8 M' B
但是不影响木马的功能,不影响上线。! U$ o4 X  f1 B( K

! `2 T6 ?$ w4 Y) L4.dll后面加20 90法过卡巴查杀; o+ x! _  i1 s0 Z

4 }2 x6 e$ {$ ?) K需要的只是一个c32asm而已,非常简单但却非常有效7 a, h2 q3 W! a9 G. o
0 M7 c1 Z1 y, \3 g8 b6 A
如图
/ q# q, \' L8 n' @+ n0 `# S0 N- v' t, u" m* Q. I
0 W) o  d" e3 W5 I

* X' [0 y% t/ T$ I3 z) O) a我们可以看到,
7 ?4 y1 B& T1 a* N6 w9 @/ n, r3 [1 r, u& }! \/ g1 Y
在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
1 Z3 i2 i& v0 }5 g4 \' G/ d6 }  k8 p% c1 ?! Y; ~+ T2 Q# O
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
8 r1 [, q) P" L7 r9 G
+ A! ?+ }- {" K/ d$ R% z我们只需要在他的所属dll后面加个20 90就可以了# Z2 s: Y; w% d! J: u5 a, x+ I
% U% L: K0 D2 b$ G5 _
卡巴目前还不查杀此免杀方法: [$ A) B5 o6 L1 z( Y

# [0 f# P) B4 }' w& R" L
& M" y1 C' H: u8 y/ U唧唧歪歪这么多,打字有点累了
3 r+ D% x: z3 U- A# G% ~+ J7 q5 y. K9 H& k0 P
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。* n  ^$ J" r  E- K# @
7 ]: O; O& T9 C) K- q. X$ d8 z
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表