- 在线时间
- 0 小时
- 最后登录
- 2007-9-23
- 注册时间
- 2004-9-10
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 9975 点
- 威望
- 7 点
- 阅读权限
- 150
- 积分
- 4048
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1893
- 主题
- 823
- 精华
- 2
- 分享
- 0
- 好友
- 0

我的地盘我做主
该用户从未签到
 |
SQL Server 7.0 sa帐号密码攻击法8 Z. N* e/ H$ P' c- u. ]* B% k
& k7 j4 N! }5 H' N+ e& {" Y! e1 g$ ^影响版本:, X% _8 _6 w1 L2 Q: S' `4 F
SQL Server 7.0 & K3 j- X9 v7 X, W# a! K' T4 d$ V
5 P$ m- H' H% g% ~) |漏洞描述
9 t4 h( m0 L2 r, }0 d使用一个很简单的策略,就可以随意的改变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管理帐号的密码:
8 Z7 F+ O3 B2 B) t! L6 x7 O1 o5 Qa) 找到这个适当的加密字符0 {0 i5 y+ f8 {0 j: K8 U
b) 找到在sysxlogins表中密码的偏移位置
* ?9 |8 g& t4 W L- ^$ C2 Tc) 定位到记录sa9 _8 w: d! F- w" @0 ]% Z
d) 替换password字段
# \/ f- b1 y9 l8 \; f% I2 p
4 ]% m+ ]! y4 o. V% y7 c% {+ U) K证实过程4 D C* \4 O4 W! A' D7 F) d; b$ G4 k
要成功的改变密码,SQL Server应该要在修改其间停止运行,并且你必须要拥有对SQL数据目录的读写访问权限。这的确限制了这个安全漏洞,但是使用其它的技术可以绕过这个限制。5 F, C2 y/ H! j# o, r
合理运用这个方法,你也完全可以把它当成一个管理工具,一旦当你的SQL Server的SA密码丢失时,可以恢复数据库使用。: O2 [6 z4 j( `/ V4 t
/ O4 A; {' F3 ~# w/ O( C8 f
防范方法
0 W3 G8 K) a4 \: P/ S$ `由于这个漏洞必须是在SQL Server停止服务的时候才能够进行,最简单的办法就是严格保护你的系统中对DATA和BACKUP目录文件的访问权限。让服务器上的服务启动权限只有管理员帐号才能够拥有。但是有一种SQL Crash攻击可以让SQL Server停止服务。简要信息如下:' R5 D9 X4 o- u" f% {, n' }
这种攻击方法被称为:“Malformed TDS Packet Header”漏洞。如果一个特定格式的TDS数据包被发送给SQL server,将导致服务器Crash.这种攻击将导致不能够访问服务器上的数据,但是它也不能够让攻击者自己控制这台服务器。而只要重新启动SQL Server就能够解决这个问题。但是唯一的缺陷是,如果受攻击的机器开放了1433端口,允许远程访问SQL Server数据库的话,有恶意的人就可以使用上面提到的那个方法修改SA帐号的密码。- q3 S# T6 U5 Z$ g# l. h, g; W
. L+ |1 R9 i- l8 W) _. `解决方案:
7 U8 S/ E$ T' D8 N7 R, u1。首先下载最新的补丁解决“Malformed TDS Packet Header”漏洞。这有这个漏洞的详细描述:" i+ j- F A& O& n" U
http://www.microsoft.com/technet/security/bulletin/fq99-059.asp2 E( B ^ z% V, t. c7 p# e( G
2。尽量使用SQL SERVER的第二种登陆方式:Windows NT Authentication 方式下面是一篇详细介绍有关SQL Server安全设置的文章。* \" J$ E8 J, \; w& L
http://www.microsoft.com/sql/DeployAdmin/Security.doc |
zan
|