查看原文
其他

利用SQL注入漏洞获取Windows企业管理级别权限

信息安全公益宣传,信息安全知识启蒙。

加微信群回复公众号:微信群QQ群16004488

加微信群或QQ群可免费索取:学习教程

教程列表见微信公众号底部菜单


利用SQL漏洞攻击流程


收集信息


由于一些限制条件禁止我们主动枚举,所以只能被动的从收集信息开始。


我们从github、pastebin和其他一些地方收集信息。这些信息包括:


识别客户所拥有的IP范围、枚举域名和子域名。


再利用shodan和其他几种OSINT技术寻找暴露的的服务。


我们把收集的信息根据一些规则排列,这些信息包括密钥、服务进程以及过时的软件等。


然后我们与客户沟通,确认下一阶段的目标。



获取权限


探索了一个高级网站,并确定其中包含SQL注入漏洞。在SQLMap中使用'--is-dba'选项,确定我们具有DB管理级别权限。


利用这个权限,我们发现了多个数据库和交互访问的权限,并定位了一些数据库用户帐户和相关联的密码哈希。(通过使用hashcat我们能够破解一些密码哈希


另外,由于在数据库服务器上启用了'xp_cmdshell',我们可以执行OS命令。


执行OS命令


这证实OOB DNS调用了我们的定制域“xyz.abc.sos.notsosecure.com”。如下所示:



交互式Shell


下一步是通过交互式shell实现更好的控制。


我们处理了多个meterpreter payload,但几乎都失败了。


当我们不断尝试使用多个exfiltration技术(如ICMP隧道),我们通过xp_cmdshell安排了一个交互式ICMP shell,如下所示:

通过使用新获得的ICMP shell,我们处理了被破坏的系统,并四处寻找在开发后可以帮助我们的任何东西。


由于主机是Windows,我们尝试获得一个powershell meterpreter payload。它有一个shell,但是在几秒钟内就被检测到,终止了连接。


一些枚举可以证实,主机上安装了企业防病毒软件。经过几次规避保护的尝试之后,我们退回了主机上的枚举,并确定安装了python。


然后我们使用msfvenom生成一个python meterpreter payload,运行以下命令:


将上述payload托管在我们的服务器上,并指示受感染的服务器使用ICMP shell中的以下Powershell命令,下载payload:


我们为meterpreter启动了metasploit多处理程序,并通过ICMP shell执行了payload。


这让我们得到了我们想要的shell,如下图所示:


虽然比我们的初始ICMP shell更稳定,但是由于python meterpreter实现的局限性,大多数默认命令无法获取结果。


从我们新获得的meterpreter中进一步列举。根据我们过去的经验,网络共享通常不包括在防病毒扫描范围内。幸运的是,我们偶然发现了一个共享主机,并在那里丢下了一个Windows的meterpreter payload。


我们为这个meterprey payload开启另一个metasploit监听,执行二进制代码并按预期获得了一个可用的本地meterpreter shell。


现在我们dump哈希,尝试使用mimikatz获取明文密码,提取代理令牌。


但是我们没有收到任何可以帮助我们的东西(没有找到明文登录凭据)因为没人登录,本地哈希不能用于其他地方


我们发现主机有多个网络接口,所以我们使用新获得的meterpreter shell,使用以下命令向内部网络添加一条路由:



一旦添加路由,我们执行ARP扫描,利用metasploit模块识别网络上的实时主机,并识别出多个主机。


使用metasploit auxiliary模块,在实时主机上执行端口扫描,以尝试识别任何运行MSSQL的主机,如下所示:


然后,我们使用 “auxiliary/scanner/mssql/mssql_login” 模块与先前破解的数据库帐户对比,看是否有任何帐户被重用,如下所示:

我们发现其中一个帐户在另外两个主机上也有效,并具有数据库管理员的权限。


在“auxiliary/admin/mssql/mssql_exec”模块的帮助下,我们可以使用这个特权帐户来获得一个作为系统运行的meterpreter shell。


该主机运行Windows Server 2003操作系统(现在已经过时)。



获得域控权


随后dump本地的哈希,破解了大量本地帐户。


然后,篡改shell用于转储域帐户哈希值,如下所示:


除此之外,mimikatz还用于从主机的内存中转储明文密码,如下所示:


在进一步列举后,我们确定了其中一个用户的企业管理员身份。


这使我们能够直接访问域控制器。


由此,我们可以开始使用这些高权限的凭据,再结合PowerShell脚本“ Invoke-MassMimikatz.ps1 ” ,从所有其他主机中提取了多个明文密码。


此外,我们现在可以在域控制器上执行hashdump来获取诸如“krbtgt”这样的高权限帐户的哈希值。


这里我们使用metasploit kiwi扩展名为“dcsync_ntlm”的命令来提取krbtgt帐户的哈希值,如下所示。

最后,我们可以利用此哈希值作为万能通行证,在网上获取持久的权限。


来源:BUGBANK


下面阅读原文有啥

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存