SQL Server 2000数据库一般都是安装在Server操作系统中。在网络入侵过程中,对数据库的攻击也是典型的攻击手段之一,加之目前市面上很多安全检测和入侵软件均具有数据库口令扫描功能,所以一旦获取数据库中sa用户的口令,入侵者就可以执行添加用户等危险命令,数据库很容易被入侵者完全控制。常见的数据库攻击主要有以下几种。
(1)通过互联网直接连接进行攻击
数据库要想正常使用,必须开放1433(1434)或者指定端口。这些端口在互联网上都可以探测到。如果没有对IP地址进行限制,则在互联网上的任何用户都可以访问这台服务器的1433端口,SQL Slammer蠕虫就是针对SQL服务器的漏洞实施攻击的。这些直接的攻击能够导致拒绝服务攻击、缓冲溢出和其他攻击。
(2)安全漏洞扫描
安全漏洞扫描通常是指针对操作系统、网络应用程序或者数据库系统本身的弱点进行扫描。攻击者在安全扫描过程中可以很轻松地发现没有使用SQL安全补丁、互联网信息服务(IIS)设置弱点及SNMP(简单网络管理协议)等漏洞并实施攻击,从而攻破数据库。入侵者在攻击过程中可能使用公开的工具,也可能使用专用工具,还可能利用一些大型公司提供的安全扫描程序,如Qualys的普通扫描工具QualysGuard、SPI Dynamics的网络应用程序扫描工具WebInspect等。
(3)列举SQL服务器解析服务攻击
Chip Andrews的SQLPing v2.5可用来查看SQL服务器系统、数据库实例及确定版本编号等。当长时间的SQL服务器请求发送到UDP端口1434的广播地址时,会出现缓冲溢出问题。
(4)破解sa口令
攻击者可以通过破解sa口令的方法进入SQL服务器数据库。Application安全公司的AppDetective和NGS软件公司的NGSSQLCrack等商业性工具软件都有破解sa口令的功能,还有一些扫描工具软件也可以很好地破解sa口令。在下面的案例中,我们会着重介绍如何扫描sa口令并实施完全控制。
(5)直接利用安全漏洞攻击
可以利用Metasploit等工具软件直接实施攻击。Metasploit利用在正常的安全漏洞扫描过程中发现的安全漏洞实施攻击,这种攻击手段非常有效,攻击者还可利用这种手段突破系统、进行代码注入或者取得未经授权的命令行访问权限。
(6)SQL注入攻击
SQL注入攻击是目前网络上最为流行的一种攻击方式,主要通过构建SQL语言脚本实施攻击。目前网上有很多流行的SQL注入攻击工具,如“教主”的HDSI 3.0、“明小子”的Domain 3.5等。利用这些工具实施攻击,操作很简单。
(7)Google hacks
Google hacks利用Google搜索引擎不同寻常的力量搜索出可公开访问的系统泄露的SQL服务器错误,如“Incorrect syntax near”,黑客能够使用Google找到口令、网络服务器中的安全漏洞、基本的操作系统、公开提供的程序及其他能够用来攻破SQL服务器系统的东西。
(8)熟读网站源代码,寻找0day漏洞
目前,很多网站的BBS、Blog、文章系统、内容管理系统都是使用公开发行的版本,通过阅读这些公开程序的源代码,研究和分析系统代码中存在的问题(这些问题极有可能是0day漏洞),找到问题以后就可以利用并实施攻击和控制。
运行Hscan,分别设置一个扫描IP段的起始地址和结束地址,然后在扫描模块中只选中“check MSSQL weak accounts”选项,如图3-60所示。设置完毕,在菜单中单击“start”命令进行扫描。
图3-60 设置扫描MSSQL弱口令模块
在Hscan扫描中有3个地方存放了扫描结果:第1个是Reports文件夹下的html文件;第2个是log文件夹下的Hscan.log;第3个是HScan扫描窗口左下方区域,该区域中显示了IP地址、用户名称(username)、口令(password)及类型(type),如图3-61所示。
图3-61 Hscan扫描结果
说明
(1)Hscan.log文件在每次扫描时对内容完全进行覆盖,不保留以前的扫描记录,因此,每次扫描结束后,必须更改文件名或者另存为其他文件。
(2)关闭Hscangui程序后,HScan扫描区域左下方的扫描结果会被自动清除。
选中类型为“MSSQL”的记录,在扫描结果区域单击左键,选择“connect”命令直接连接数据库,连接成功以后如图3-62所示。
图3-62 连接MSSQL数据库
注意
在选择记录时一定要小心,右键是清除记录命令(Clean),左键是连接命令(Connect),清除扫描结果以后不能恢复。
在SQLCMD提示符下分别输入命令“net user”、“net user aspnet aspnet****”、“net localgroup administrators aspnet /add”,查看并添加“aspnet”用户,口令为“aspnet****”,提升“aspnet”用户的权限到Administrators组中,如图3-63所示。
图3-63 执行命令
说明
(1)由于这种弱口令的MSSQL服务器极有可能有多个入侵者进行了扫描,入侵者在入侵成功后会将一些存储过程删除,导致SQLCMD能够连接却不能执行命令。这个时候,可以通过SQL查询分析器连接该数据库,连接成功后即可查看数据服务器中的数据库,将数据库中表的内容(如user表等)配合Web实施控制。数据库中的一些表包含用户名称和密码等信息。
(2)通过“net localgroup administrators”命令可以查看刚才添加的具有管理员权限的用户aspnet。在本例中可以看到有多个管理员用户,说明该计算机已经被入侵,如图3-64所示。
图3-64 查看所有管理员用户
在DOS命令提示符界面输入“psexec \\218.*.*.212 cmd -u aspnet -paspnet2005”,找出一个DOSShell,可以在该Shell中上传木马程序、开启3389远程终端服务等。
本案例主要通过扫描MSSQL弱口令实施攻击。一旦扫描出MSSQL的弱口令,则很容易通过Hscan的SQLCMD连接工具进行连接。连接成功后,如果与在DOS下的操作命令相同,就相当于一个DOS下的Shell,可以执行各种命令。