利用微软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

相关推荐
4SAPI15 分钟前
营销内容生成大模型 API 生产选型指南:4SAPI、硅基流动与 OpenRouter 的架构权衡
数据库·人工智能·架构·php
zyxqyy&∞17 分钟前
sqli-labs-union联合查询(Less1-Less4)
数据库·安全
数据库小学妹25 分钟前
MySQL binlog格式怎么选?ROW、STATEMENT、MIXED的区别与坑
数据库·mysql·binlog·主从复制·数据一致性
小冯不疯37 分钟前
查询旺店通货品策略实战教程:从源系统拉取到轻易云的端到端落地
java·大数据·数据库
wuyk55541 分钟前
PyQt6-第10讲-PDF工具箱
python·microsoft·pdf·pyqt
RacentCLM1 小时前
HTTPS只在登录时有用?关于TLS的误解讲清
数据库·网络协议·https
杨云龙UP1 小时前
生产实战:Keepalived + Nginx + MySQL 双向复制高可用架构部署与原理详解
运维·数据库·mysql·nginx·架构·keepalived·高可用架构
代钦塔拉2 小时前
【C++/Qt 进阶】设计模式系列(7):过滤器模式——把“筛选条件“变成可组合的积木
数据库·系统架构
TDengine (老段)2 小时前
TDengine IDMP 十大亮点功能(一)
大数据·数据库·物联网·时序数据库·tdengine·涛思数据