利用微软SQL Server数据库管理员(SA)口令为空的攻击活动猖獗

SA密码为空(NULL)的不安全的SQL服务器容易受到蠕虫攻击(Q313418)

此文信息适应于:

1 Microsoft SQL Server 2000 (all editions)

2 Microsoft SQL Server version 7.0

症状

在互联网上已经发现了一个代号为"Voyager Alpha Force"的蠕虫,

它利用那些系统管理员(SA)密码为空的SQL服务器进行传播。此蠕虫通过扫描SQL的默认端口

1433端口来寻找SQL Server服务器。假如蠕虫发现了一台服务器,它就尝试用空(NULL)SA密码登入那个

SQL Server的默认状态。

假如登录成功,它将把这个无防卫的SQL Server的地址广播到一个互联网中继聊天(IRC)频道上去,

并且尝试从菲律宾的一个FTP站点加载和运行一个可执行文件。作为SA登录入SQL Server

后用户可以获得计算机的管理员权限,并且依赖特定的网络环境,还可以访问其它的计算机。

防范

下面的每一步大体上都将使你的系统更加安全,并且单独任何一种方法都将防止

这种特殊的蠕虫感染你的SQL Server服务器。注意这些步骤是针对任何SQL Server

安装的部分标准安全"最佳策略"。

  1. 确保你的SA登录帐号的密码非空。只有你的SA登录帐号没有安全保障的时候蠕虫才会工作。

因此,你应该遵循在SQL Server

联机文档中"系统管理员(SA)登录"主题中的推荐模式,确保固有的SA帐号具有一个强壮的密码,

即使是你自己从不使用SA帐号。

  1. 在你的互联网网关或防火墙上屏蔽1433端口和/或指定SQL Server监听一个可选的端口。

  2. 假如在你的互联网网关上需要利用1433端口,启动用于防止此端口滥用的流入/流出过滤。

  3. 将SQLServer和SQL Server客户端运行在微软的Windows NT帐号下,而不是localsystem。

  4. 启动Windows NT验证,启动监听成功和失败的登录,然后停止并重启MSSQLServer服务。

设置你的客户端使用NT验证。

关于如何恢复一台已经被感染的系统的信息,请访问独立的CERT协调中心的网站,网址如下:

恢复一台被感染的UNIX或NT系统的步骤

http://www.cert.org/tech_tips/win-UNIX-system_compromise.html

入侵者检测清单

http://www.cert.org/tech_tips/intruder_detection_checklist.html

包含在此文中的第三方联系信息有助于你发现你需要的技术支持。

这些联系信息经常在不预先通知就改变了。微软无法担保这些第三方联系信息的准确性。

更多信息

重要:这不是SQL Server的bug;这是由一个不安全的系统造成的缺陷。

下来文件暗示蠕虫的存在:

rpcloc32.exe (md5 = 43d29ba076b4fd7952c936dc1737fcb4 )

dnsservice.exe (md5 = 79386a78a03a1665803d8a65c04c8791 )

win32mon.exe (md5 = 4cd44f24bd3d6305df73d8aa16d4caa0 )

另外,下列注册表键值的出现也暗示了此蠕虫的存在:

SOFTWARE\Microsoft\Windows\CurrentVersion\Run\TaskReg

下列注册表键值是关于一个SQL Server的现有键值,并已被蠕虫利用来

通过使用TCP/IP 网络库来控制计算机的访问权:

SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib\

ProtocolOrder

SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo\DSQUERY

此蠕虫利用xp_cmdshell扩展存储程序,此程序允许蠕虫执行任何运行SQL Server

服务的帐号有权执行的操作系统命令。

下列微软网页连接提供了关于如何保护你的SQL Server服务器的有关信息:

http://www.microsoft.com/sql/techinfo/administration/2000/security.asp

http://www.microsoft.com/sql/evaluation/features/security.asp

相关推荐
Treh UNFO3 分钟前
nginx的重定向
大数据·数据库·nginx
jvvz afqh10 分钟前
mysql用户名怎么看
数据库·mysql
eDEs OLDE14 分钟前
CC++链接数据库(MySQL)超级详细指南
c语言·数据库·c++
EXnf1SbYK15 分钟前
Redis分布式锁进阶第八篇:锁超时乱序深度踩坑 + 看门狗失效真实溯源 + 业务长耗时标准化兜底方案
数据库·redis·分布式
EXnf1SbYK24 分钟前
Redis分布式锁进阶第十一篇
数据库·redis·分布式
xiaohe0729 分钟前
C#数据库操作系列---SqlSugar完结篇
网络·数据库·c#
编码者卢布33 分钟前
【Azure App Service】为什么 Web App 上的文件会被“锁死“?
microsoft·azure·web app
冬奇Lab33 分钟前
RAG 系列(六):向量数据库——存储与检索的基础设施
数据库·人工智能·llm
vooy pktc34 分钟前
macOS安装Redis
数据库·redis·macos
辞旧 lekkk37 分钟前
【Qt】初识(上)
开发语言·数据库·qt·学习·萌新