返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,
# q* t! b# L) m/ _* p
/ I: C% W$ P+ D, E5 r/ t# B特拿来分享给大家。
7 ~$ r% n; t" U/ N9 }' P+ y$ Y3 p+ U, e4 f$ C0 T
今天我们不提我们国产的那些杀软,真的垃圾的要死,
2 q7 m% w" I% d) K& q1 J$ o9 }/ s4 v* m! d) h; s+ l1 C
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
& t7 _: P0 I. @( O* |5 U0 }4 C% u; e7 M7 r
我简单的重建了输入表就把瑞星搞定了," n8 J; |. k3 u$ ^3 v- u# O$ U3 _. q% j
0 \  x8 C' U! W( t
失去信心了。我曰
& s2 X8 W$ u9 V' q. v$ f5 Y7 ^  m* W
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。
/ a/ {- i" s' I' b( i: e6 q# G' w8 S6 U9 \9 l, o
首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。! J8 g$ V# @+ F7 P5 S9 ]9 L
6 }/ u# ]9 l3 E4 E# W
外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。. E$ V3 ~2 x7 `
5 B0 _0 O5 E4 v" F0 Q8 X1 g% k
高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
* S2 F+ _. Q' n+ s
: u1 S- v& O3 e9 _过了以后再调到最高,再做免杀。
3 a2 }& Q$ B4 E2 F5 x" J: {% F# l; V" f, k2 M5 z! ?( a' ^
以上是废话,2 o+ D% G* X# g9 L' L* G' k$ n
& p! C$ a. {' A/ D1 B
好了,下面我们来说下常见的免杀输入表方法。
2 E6 n& d3 r% X: _4 D( b$ P% a3 X' Y2 K
一。移位法
9 w8 j) j2 c9 Y5 T) g9 A4 \( h4 y. S
这个已经过时了,我们的国产杀软及时的跟上了时代,
3 i2 g, P) ~% r; G* }9 S/ a1 U/ T1 d% {
移位法在去年过金山和瑞星,还有江民都是可以过的,
! S" i7 p9 b- J: }# Q3 J
8 T# f3 e8 k6 w9 e% H现在的杀软智能化了,移位么?呵呵 ,追杀你。
( I- J' C# ~5 h' ^" H4 H5 ~8 w! s
7 _& j( D. A+ i( s, t) C4 o如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。
/ p. O- L% T! ?- G! O/ y9 j# Z% Z
二,重建输入表: f  W7 s7 e6 |) S) F2 J2 y+ C* L
: [4 L" C4 }, s- |4 h3 U
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈: k# N8 {/ V) L
$ y! t+ D8 |& s7 d. I2 p& x: ]( N9 m
这里我介绍下,
( R' P0 ?+ ?0 z5 u  }! d( I- C: d6 }  O6 l, c
用到工具:
2 I+ D- a( Z& ]importrec1.6
6 z6 q* k3 p3 h8 z8 Z; h* r+ d8 ]od
/ E' F  T2 }2 G$ W5 yc32asm  f" {4 G. b+ i( b  I; g
loaderpe' D' c! B& [4 M0 U  p
这里我们简单的介绍下,如何重建输入表
  z0 @  z* E# l4 C, E% S& J' O" I5 H  q. ?! D, D! Q# B
首先吧文件拖入od,打开inportrec1.6
* p. G* c9 F* I
/ S, K% d& \! `% n+ f# J. K如图 选择拖入od的程序,( @) N- I( L" {* l5 k, ]3 X
9 V- p7 t$ v0 X. e& k( j" L

/ e- _  [' J9 u: W* G这个时候,我们打开loaderpe,
! p( t; x$ `; E# d
5 {; S* {" j3 z& T9 u拖入我们的木马6 C" C/ o5 k* e3 N# ^5 b+ `5 b

9 R. a( O' B6 }2 ^/ h, ~1 X选择目录,
" z) c+ N, I0 h% f- L
& V8 {6 c  ]3 Z" X我们看到导入表这里。。。
8 E, B  m2 j$ {- c" C# {) t  C  L
' D1 y$ f; X- U' N# `8 J4 V- l如图:1 D, A6 S+ ]9 b/ ?

& J4 l/ ^) l4 v1 _! n
+ l0 o9 H# ?* }+ rRVA地址是0001D000  大小是0000154C0 z$ X( y7 p' M0 Q/ l

7 a2 x3 j$ ]- u4 s4 W. s) l# _好的,我们把这两个输入到import1.6里去
. a5 R; A, T. V* Q, N* ^' b3 g* s! O* P9 r) ]6 b( g( W# x
就是在“加载树文件”那上面一点
+ H6 V: U6 S1 A5 w, v
0 r; a3 I8 ]! b8 N输入RVA的地址和大小。
; W9 l! o; Y9 i
/ Z: Y' h1 L# d" h7 c点击“获得输入表”
3 a# A3 p; v4 b, M$ ?7 K; m( I7 y
- p+ M' F) j3 f3 j3 z0 ]然后点击“显示无效的”
  K: `1 L# F) N2 y# S2 k, g3 w* ?6 \% f; T( q' \% l2 y8 T, u, x9 ~
接着importrec会自动列出8 h: \7 H3 s' Z3 ?

7 ?. q) K2 T& F我们把深蓝色的字体  右键   剪切无效的指针+ S  `: s. ~$ m$ A0 ^+ B* z
3 N& ^' W0 w% W) w; w, h
: f1 h; r/ g( B" @0 [
最后,我们点“修理dump”
+ X! S1 ^2 Q6 J! F* H% O
1 z9 d" p9 X/ o; ^选中我们的木马就可以了( e3 s4 q0 p5 {8 k4 v

8 C+ A/ L7 H( C' T- O最后我们要用到c32asm8 Q4 Z+ H) l+ M
3 d1 J1 [  m. l7 d- E5 U! t& O
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。6 n# @% ]" S" x$ G1 U/ n- _( l9 w& ~

  a$ `  [0 g3 ^, z& j* n这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)
* I' h5 M2 P6 b' G2 Y1 ~" x) Q; [: c7 Z7 S' p* C) c
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,, D1 ?# l; y$ A3 ], q0 J
: j8 H; A! U" w) ^" r+ V
我们把马子拖入od的以后,打开了importrec1.6
2 b: V. ^1 y8 [& Y- V$ @% L  S9 x( x9 M  q  q- z
在选项那里,选择根据序数建造输入表和创建新的IAT* C4 H: f, E; |. ~! E# E

* g4 O3 m  b6 K8 Z& z4 x5 u如图$ k4 H- Q. x' O  {5 @: z

% ^& N5 ^8 E1 Z8 k4 ~5 D( Z7 a# _# G6 `
以后的步骤照上面的方法继续就可以了2 m* ?! g0 a, `8 j0 S* {# ?! Q
8 `( U  P5 l; |" Z& |; X" S
不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了6 a' {7 Y/ s2 X7 ?8 J1 G0 l- |

" ]6 \% ?8 i3 f因为kernel32.dll的大小不一样。
* ]. ?" z$ u* Y6 Z9 Y
6 v0 r7 Z. M8 A* b3.修改originalfirstthunk
! B. i/ p3 \  [: E; s  y( w, n1 ^3 P0 E; V' L0 T( t
如图所示
, H) b" R7 r8 a& ?6 T
6 u; q4 i6 i5 J9 D' {3 I3 j7 i. z  z4 b
$ m1 N% _0 N' @我们打开loaderpe,依次点  目录--导入表(后面那个横线)# g, ]: f# ?/ I/ R" D; p2 M5 P

0 D7 t8 B  s0 k我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll5 d" @) N/ M. ?  o8 z' P

4 n2 I9 {) T) [% T& l我们右键--编辑--把函数后两个00修改为FF
5 |/ ^( a3 H- R! `8 G
: e) I0 A4 e( D; z这样可以过小红伞查杀。  虽然会出现错误提示+ q( o+ T- ^' |% G: P. _' K

% v+ ~8 }* ]7 T* o) o但是不影响木马的功能,不影响上线。$ A9 D4 \& b" p6 o1 R
4 @/ Q; H9 `! I) C/ G) ^
4.dll后面加20 90法过卡巴查杀6 O2 o/ D6 a/ W$ F7 j) p4 s( A2 G
! R( O3 V4 B5 O; X3 d+ z
需要的只是一个c32asm而已,非常简单但却非常有效9 Y- Q& Q( }& _5 C/ l" Y# J

/ f, G6 |8 s$ X0 \% l6 x3 I6 Q如图* Z- O  {& _# I( J

8 ~* {* J% G- Q5 @" ?9 ?0 X8 A5 }$ l( P

$ E9 _* L% I5 ~我们可以看到,  ~" C& ]1 }; |) G
& C( E$ M: S  Y
在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 90
( k1 u# ]" }# F  p5 y9 j
2 R7 G9 t$ D4 |7 |: X& {这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection
  I: w3 q0 n) X
2 I( J$ ]  i# d我们只需要在他的所属dll后面加个20 90就可以了
  J$ N) c5 F! M6 u0 X6 g( C0 ^: s% x; \3 T7 a6 C0 Y% U6 r
卡巴目前还不查杀此免杀方法; d+ k/ W, f6 z' {

" d/ Q/ m7 c* I. V
* C* V. w/ U7 J唧唧歪歪这么多,打字有点累了- M) ]! q$ }3 c  @1 v1 d6 L
. _6 {2 B5 F  R* B
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。
6 L2 e& ]$ p; n! m" q: b( G! k  R5 x9 Q- }( p* s' S1 \2 i
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表