返回列表 发帖

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

最近和一位木马免杀牛人交流,感觉新增进不少,1 w' A/ v7 _7 [7 B/ g
; K& t$ }7 r7 y! j
特拿来分享给大家。
: k. }: N4 e: ~. c% k3 {
5 E$ Q  ~  e& T; H7 U今天我们不提我们国产的那些杀软,真的垃圾的要死,# P3 J% n5 A+ k" m
) }0 ]3 T: A# E0 y
上次有位朋友叫我帮忙做上兴免杀过瑞星,说内存特征码定位在输入表
+ [/ c- h+ Y; c3 L2 m  U: Q, e: N, u7 m# Y6 @3 Z
我简单的重建了输入表就把瑞星搞定了,
$ [" L2 V* _+ p4 ~  [2 c' q( t) ?& H$ S$ b7 _
失去信心了。我曰
6 `  x* O& m! ]# ?  n8 B1 o2 k2 i- s+ G2 S7 `5 U! k. k( \0 n: J! o9 F
今天我们说的是免杀输入表,以下是我的经验,也有牛人传授的免杀方法。1 j' c8 ^& ]/ b: h3 @: k9 ]

3 J, [% s" S$ g/ E' Q5 P) x) a, C首先,大家要知道一点,国产的都没有高启发式扫描,瑞星,金山等都没有。: \) t, X9 B2 D( a$ @' q/ Q

1 L* n6 ]0 B+ v: M外国的,如nod32,卡巴,小红伞都有启发式扫描,尤其以卡巴的高启发式和他的2009主动防御难过。. x  k) I1 W/ T

' }( T/ k8 H* |5 t6 Q高启发式扫描必然导致特殊的特征码,我建议新手朋友做卡巴等免杀的时候,先把启发式调到最低
- N3 G3 d  S9 H8 Y
( k" F) t+ z+ n/ [过了以后再调到最高,再做免杀。2 Y2 H) U3 N" d" i/ B
: D6 J/ W% D, R/ ?- V" g
以上是废话,
  c4 A% A) A0 @% r* D1 a
, m% q  T/ K& j/ c3 Q好了,下面我们来说下常见的免杀输入表方法。
# W: D( d4 M/ e& z$ I
  }7 |' h8 {7 n3 v一。移位法
2 k. [* F; |$ F6 w+ o
) s. z4 d. M* K) M% @7 g9 n这个已经过时了,我们的国产杀软及时的跟上了时代,& z5 _+ r3 v  f
" A  t5 J; Z" ^
移位法在去年过金山和瑞星,还有江民都是可以过的,
* d) ]& ^+ W! B
6 _& y* @, T2 Z& N7 u2 @8 X6 ^! |现在的杀软智能化了,移位么?呵呵 ,追杀你。
+ h* R$ ~# @$ L$ u( {! E% a; r, \2 ?# b/ v/ @( @+ u) n' K
如果你想了解怎么个移位法,去百度搜吧,大堆的老教程等你看。, H& d# S) r: |. y6 a

1 Y4 q9 s" t5 {二,重建输入表  J" j) X8 l. `0 p, L
! ?0 F  }4 ?2 |) Y
效果不错,这里说下,简单的重建输入表,还是可以过我们的国产杀软的,外国的就不行啦。哈哈! B$ j% _" J6 @7 `! U6 n+ Q; x
: X8 k: {- N2 {0 \5 V/ [
这里我介绍下,
2 Z8 M6 \( ]1 f# H( h
+ y6 |6 ]/ _  t% [! [- i9 ^用到工具:
! g  S+ \1 D4 Z: x" o% \7 Q. P# iimportrec1.6
% Q0 A4 F# o3 ?8 i; Vod
; t# o) D& D* _7 a" Wc32asm
! J2 k( j; [9 ^' nloaderpe
* K4 X3 G/ P. C1 j这里我们简单的介绍下,如何重建输入表
' x3 e$ w" I" D/ T) l) V5 w, D, a
首先吧文件拖入od,打开inportrec1.60 n2 n( ]; V# ?# g9 k- }2 r
( E( T  C2 F7 L" |8 O, x) U
如图 选择拖入od的程序,6 p: v0 x* A; y

8 `. ?( S1 O. ^* j* A# A( V3 B$ v$ j! }
这个时候,我们打开loaderpe,
: R- a# c6 w7 _. G& M! L& s1 s
! `/ \( j9 A+ a1 @拖入我们的木马  E  Q3 e& e+ l
# m5 j1 ~# q3 x- e2 L
选择目录,6 i8 U! j* [) q% s) n1 U5 _! b

3 ~6 G, N/ j4 {, \% @( I我们看到导入表这里。。。4 i+ `: e2 W. T# c1 N6 F

1 b: j: E: x; |# q9 X2 l6 f如图:+ c2 H  d( ]* r* }* Z4 i
/ O- v* _5 k; L; u0 p) g. b/ x# i
& C6 |0 f8 \  H: |
RVA地址是0001D000  大小是0000154C
) D  Z6 W; x* W5 d( r4 ?2 b- ]
0 r& D- W* ]5 O: D/ B好的,我们把这两个输入到import1.6里去
% n" K+ B( q  T- K- z
! }# m% w" L% `8 H, K就是在“加载树文件”那上面一点 2 w6 S4 p! [' p  r" D

) d" f' B: C1 ~4 Q2 {+ e输入RVA的地址和大小。8 ~' M: C: U% b5 ]

) W" l* [0 }( F5 w: d点击“获得输入表”
  `+ |3 g3 m# O- Y# V* ]' W3 v
: m" R7 _- T  d. h5 N然后点击“显示无效的”
9 a- d: F  X3 [. z- x. |  }
$ F2 j# E) _7 g2 ]5 _接着importrec会自动列出% i# {  v$ Y7 Y0 A6 O3 X
2 x4 B+ g# F) F9 l9 w
我们把深蓝色的字体  右键   剪切无效的指针
, H) g: N) O1 ^; g, n+ x" s0 M
- j7 y% K! Z; D5 ~
0 c5 q6 I/ ?& ?8 o8 h. l. ^1 M最后,我们点“修理dump”
/ _; d: Y5 w- K0 A9 I3 S) J5 u+ x& d( K9 D
选中我们的木马就可以了2 x& q1 q" Y0 d
+ {/ n# s% M* C# z  Z
最后我们要用到c32asm1 S' m! H. j* S9 g  ?/ A
* `) |, j1 l2 f, a6 h- u9 L
我们会看到两个输入表,我们只要把原先的输入表全部填充为00就可以了。( r- y8 p+ h. I' G$ d0 n
: c6 L8 R1 u. Z3 u
这样做,只能过国产的杀软,外国的 如卡巴就免杀不了(如果他的特征码在输入表的话)! b: w7 ~1 t8 {4 c' j6 i( \+ h, z
+ B1 a4 ~: o: q6 E  h9 c" t6 a
这里,我教大家一个方法,也是重建输入表,可以过卡巴,不过加了个小步骤,
3 J3 b, ?6 W$ G! P" o
6 S; J2 M& G0 a3 m- L" \! [我们把马子拖入od的以后,打开了importrec1.6
8 \. K0 p  [9 B  U, ^3 L* v. D9 Z1 \
在选项那里,选择根据序数建造输入表和创建新的IAT
( r1 w8 F/ g. C# a
! \' g4 ]: a$ I如图! T8 k/ k6 }: Z( N8 b) m# j9 h9 [
* u$ z, |- J7 c  A6 U' i2 O* D. O* C

2 ?2 n6 ?4 e; S8 |' k* t- r, c5 i' M以后的步骤照上面的方法继续就可以了3 R, L9 K/ A8 A; [( f7 |6 A
4 Z1 k1 E% Q) w' R  `% ~8 W
不过此方法有个弊端就是,如果你在sp3下作的免杀  生成的服务端会在sp2的系统下运行不了
: Y0 h+ U# s9 E* A, j! H/ u3 t) H4 k
因为kernel32.dll的大小不一样。3 l* {6 [9 X" G  o: T. K% A- `

& Q6 J, U9 f1 X4 C  I2 p$ f* y+ b3.修改originalfirstthunk
& S8 s4 A6 _- m0 w; @# v- f" C# u
* ~3 f6 d4 X' }" e如图所示
+ \0 t2 r- l+ m# _' n
* d$ W, O2 @& s9 G! R' x, X, d$ O2 R# _
我们打开loaderpe,依次点  目录--导入表(后面那个横线)
! p4 n& I! P6 B2 A9 {% E/ E. }4 J5 ?% }" ?( ~5 l2 c; d+ B
我们可以看到所有的dll,如图,我们假设杀软杀的是wininet.dll4 W8 T+ A) ]8 |- l8 {9 N
5 j1 L% R  s! T3 g
我们右键--编辑--把函数后两个00修改为FF5 t- P5 t( A- {0 E

. I$ e9 S: L) [/ n+ w. c& d这样可以过小红伞查杀。  虽然会出现错误提示  K$ _" U1 X* i/ ^. f

* b' X, N" u( Y: F但是不影响木马的功能,不影响上线。% m' C$ B+ B8 v. ~/ m
3 V1 i* p: w5 ?, F3 Z" u
4.dll后面加20 90法过卡巴查杀( k& F& ]' P% \9 i
! c- g" c9 m, Y0 X% x" L
需要的只是一个c32asm而已,非常简单但却非常有效+ G- i9 E0 ~  D3 j/ b: G& T  K

6 B$ l' O1 Y1 M% \如图
. [: S( e! j& ]3 U; u$ F) K3 y9 r3 s3 d& b, |" Y
+ ^* O3 C  e' V9 p3 l
$ k3 f1 W2 U& ]: Q8 N4 N+ d
我们可以看到,8 Z( i/ A9 U3 \9 M7 `

  K1 s# ]& U0 R- j* @3 F" H7 D" S在ntdll.dll后面有一个空格和一个问号   对应的ascII码是20 904 t& H; y+ A+ X8 j5 d
" U  e$ U5 y5 M4 \0 _1 E( c
这里假设卡巴杀的是ntdll。dll下的函数ZwUnmapViewOfSection# k: k8 `& F4 ^
' z7 d4 s$ d) w1 j* D4 Z( ]0 W
我们只需要在他的所属dll后面加个20 90就可以了' e; `- M% l2 ~8 ~

& B/ @5 b$ R- Q6 E( X卡巴目前还不查杀此免杀方法
) Y' L4 k6 _+ a0 ~% D" W1 V- y5 @# D3 y9 m+ }9 }; V7 r

1 j+ l& f" Q( f% {( m% q9 Q唧唧歪歪这么多,打字有点累了
3 p1 e3 g. E' E4 y& u6 m/ @) d) b5 F
以后有新的免杀的方法我会继续公布的。暂时先写这么多吧。% o0 d) ]; ^' g
" c# X! g2 `  J0 \/ o3 ^# ?
[ 本帖最后由 1335csy 于 2009-3-31 11:35 编辑 ]

返回列表