利用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,如下所示:
由于主机是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
下面阅读原文,有啥 ?