数学建模社区-数学中国

标题: SQL Server 7.0 sa帐号密码攻击法 [打印本页]

作者: 韩冰    时间: 2004-10-6 11:20
标题: SQL Server 7.0 sa帐号密码攻击法
SQL Server 7.0 sa帐号密码攻击法$ m/ h. v! Y6 V9 G" k2 \; f% }+ c* J

; F( f9 X/ x0 `影响版本:
; B) Q+ l( ^$ T0 V/ o" A  Q5 zSQL Server 7.0
! V4 ]6 r' [% o9 d6 K1 J& [$ W1 q) i! t& L3 B
漏洞描述
7 ]$ d; }1 s3 d0 u8 A' }使用一个很简单的策略,就可以随意的改变SQL 7.0服务器的SA(system administrator)的密码.MS SQL Server 7.0在master.mdf使用sysxlogins表对象保存登陆信息.它的password字段的类型是varbinary(256)。执行这样的一个查询"select name, convert(varchar(256), password) from sysxlogins"将返回和密码等价的字符串。有趣的是密码是被保存为16个字节的数值。所以如果密码少与16个字节也产生一个16个字节长的加密字符串。这个固定长度的密码被保存在sysxlogins表中的一个固定位置。.如果密码多与16个字符,那么前16个字符还是保存在同样的位置。所以我们只要这样一来做就可以改变这个SA管理帐号的密码:
2 V1 T- [+ i4 m/ G! y8 z3 ta) 找到这个适当的加密字符
* N  F' f5 O' z  v9 J4 c7 P( }b) 找到在sysxlogins表中密码的偏移位置: q3 U# Y+ [/ @0 d# B2 k
c) 定位到记录sa* m$ ^7 V# a- Z; t+ Y* T
d) 替换password字段. j+ s8 g, ^' t* K9 s! x& e% i" \2 d
8 _6 k* M4 ^& V8 s- ?
证实过程
& ]8 ~' l# C. S1 \5 D4 H8 {* [要成功的改变密码,SQL Server应该要在修改其间停止运行,并且你必须要拥有对SQL数据目录的读写访问权限。这的确限制了这个安全漏洞,但是使用其它的技术可以绕过这个限制。- f9 ^0 e  h$ c) K1 b
合理运用这个方法,你也完全可以把它当成一个管理工具,一旦当你的SQL Server的SA密码丢失时,可以恢复数据库使用。& U0 F& ]$ F: \  Q) k& h

9 ]; k9 G2 r$ f3 |防范方法% g) ?6 g3 X2 ~: \
由于这个漏洞必须是在SQL Server停止服务的时候才能够进行,最简单的办法就是严格保护你的系统中对DATA和BACKUP目录文件的访问权限。让服务器上的服务启动权限只有管理员帐号才能够拥有。但是有一种SQL Crash攻击可以让SQL Server停止服务。简要信息如下:( }9 |) s9 l3 C1 J0 L
这种攻击方法被称为:“Malformed TDS Packet Header”漏洞。如果一个特定格式的TDS数据包被发送给SQL server,将导致服务器Crash.这种攻击将导致不能够访问服务器上的数据,但是它也不能够让攻击者自己控制这台服务器。而只要重新启动SQL Server就能够解决这个问题。但是唯一的缺陷是,如果受攻击的机器开放了1433端口,允许远程访问SQL Server数据库的话,有恶意的人就可以使用上面提到的那个方法修改SA帐号的密码。/ S' s5 t& I: A" r6 J- I

" ^6 s. \7 u4 ~7 {5 C% |+ w解决方案:
4 `$ @4 K5 J2 Z) m6 A: G4 n1。首先下载最新的补丁解决“Malformed TDS Packet Header”漏洞。这有这个漏洞的详细描述:7 K: A8 Z7 u  a& p
http://www.microsoft.com/technet/security/bulletin/fq99-059.asp. z& w+ b, `/ {5 I( w& t( l4 a) Q
2。尽量使用SQL SERVER的第二种登陆方式:Windows NT Authentication 方式下面是一篇详细介绍有关SQL Server安全设置的文章。
, G1 V8 e& H" S6 zhttp://www.microsoft.com/sql/DeployAdmin/Security.doc
作者: ilikenba    时间: 2004-10-19 21:44
SQL SERVER2000中也有这个表,里面同样存放着sa的信息,是不是一样有这个漏洞?
作者: 韩冰    时间: 2004-10-20 10:36
<>应该是具有!</P>




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5