摘要:而且據我們一開始獲取的信息,這臺靶機是開放了 ssh 服務的,所以我們嘗試使用 L4mpje 作爲用戶名來登錄。所以這個 VHD 文件裏面可能包含了更有用的信息。

介紹

目標: 0.10.10.134 (Windows)

Kali:10.10.16.65

總的來說,Bastion 其實並不是一個特別簡單的機器。如果使用 windows 可以更方便地解決這臺靶機。Command VM 對於這臺靶機其實挺不錯的,不過我們也可以使用 kali 來完成這個靶機。

信息枚舉

首先,探測開放端口

# Nmap 7.70 scan initiated Sun May  5 12:33:32 2019 as: nmap -sT -p- --min-rate 10000 -oN ports 10.10.10.134
Warning: 10.10.10.134 giving up on port because retransmission cap hit (10).
Nmap scan report for 10.10.10.134
Host is up (0.33s latency).
Not shown: 60653 closed ports, 4873 filtered ports
PORT      STATE SERVICE
22/tcp    open  ssh
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
49664/tcp open  unknown
49665/tcp open  unknown
49667/tcp open  unknown
49668/tcp open  unknown
49670/tcp open  unknown

從上面開放的端口,我們可以推導出這是一臺開放了 ssh 服務的 windows 機器。接着嘗試獲取這些開放端口對應的服務:

# Nmap 7.70 scan initiated Sun May  5 12:29:46 2019 as: nmap -A -oN services 10.10.10.134
Nmap scan report for 10.10.10.134
Host is up (0.53s latency).
Not shown: 996 closed ports
PORT    STATE SERVICE      VERSION
22/tcp  open  ssh          OpenSSH for_Windows7.9 (protocol 2.0)
| ssh-hostkey:
|   2048 3a:56:ae:75:3c:78:0e:c8:56:4d:cb:1c:22:bf:45:8a (RSA)
|   256 cc:2e:56:ab:19:97:d5:bb:03:fb:82:cd:63:da:68:01 (ECDSA)
|  256 93:5f:5d:aa:ca:9f:53:e7:f2:82:e6:64:a8:a3:a0:18 (ED25519)
135/tcp open  msrpc        Microsoft Windows RPC
139/tcp open  netbios-ssn  Microsoft Windows netbios-ssn
445/tcp open  microsoft-ds Windows Server 2016 Standard 14393 microsoft-ds
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.70%E=4%D=5/5%OT=22%CT=1%CU=37821%PV=Y%DS=2%DC=T%G=Y%TM=5CCED772
OS:%P=x86_64-pc-linux-gnu)SEQ(SP=F4%GCD=1%ISR=10A%TI=I%CI=I%II=I%SS=S%TS=A)
OS:SEQ(SP=F3%GCD=1%ISR=10A%TI=I%CI=I%TS=A)OPS(O1=M54BNW8ST11%O2=M54BNW8ST11
OS:%O3=M54BNW8NNT11%O4=M54BNW8ST11%O5=M54BNW8ST11%O6=M54BST11)WIN(W1=2000%W
OS:2=2000%W3=2000%W4=2000%W5=2000%W6=2000)ECN(R=Y%DF=Y%T=80%W=2000%O=M54BNW
OS:8NNS%CC=Y%Q=)T1(R=Y%DF=Y%T=80%S=O%A=S+%F=AS%RD=0%Q=)T2(R=Y%DF=Y%T=80%W=0
OS:%S=Z%A=S%F=AR%O=%RD=0%Q=)T3(R=Y%DF=Y%T=80%W=0%S=Z%A=O%F=AR%O=%RD=0%Q=)T4
OS:(R=Y%DF=Y%T=80%W=0%S=A%A=O%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=80%W=0%S=Z%A=S+%
OS:F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=80%W=0%S=A%A=O%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%
OS:T=80%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=80%IPL=164%UN=0%RIPL=G%R
OS:ID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=80%CD=Z)
Network Distance: 2 hops
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
Host script results:
|clock-skew: mean: -43m13s, deviation: 1h09m14s, median: -3m15s
| smb-os-discovery:
|   OS: Windows Server 2016 Standard 14393 (Windows Server 2016 Standard 6.3)
|   Computer name: Bastion
|   NetBIOS computer name: BASTION\x00
|   Workgroup: WORKGROUP\x00
|  System time: 2019-05-05T14:27:12+02:00
| smb-security-mode:
|   account_used: guest
|   authenticationlevel: user
|   challengeresponse: supported
|  messagesigning: disabled (dangerous, but default)
| smb2-security-mode:
|   2.02:
|    Message signing enabled but not required
| smb2-time:
|   date: 2019-05-05 12:27:09
|  start_date: 2019-05-05 12:10:06
TRACEROUTE (using port 143/tcp)
HOP RTT       ADDRESS
1   693.81 ms 10.10.16.1
2   694.08 ms 10.10.10.134
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done at Sun May  5 12:30:42 2019 -- 1 IP address (1 host up) scanned in 56.60 seconds

利用

上面的信息看起來並沒有什麼特別的。一般的靶機,http 服務往往都是突破口。對於這個靶機,我們應該注意到開放在 445 端口的 smb 服務(445 端口往往也是 windows 機器的突破口)。在 kali 上進行 smb 服務的探測,我們可以選擇使用 smbmap, smbclient, enum4linux 等。我們先來試一下 smbclient:

smbclient -L 10.10.10.134

通過 smbclient,我們可以在不使用密碼的情況下看到這臺靶機的共享。通過 smbclient //10.10.10.134/sharename 來嘗試訪問共享路徑,我們發現只有 Backups 是可以訪問的。 訪問共享 Backups : smbclient //10.10.10.134/Backups 在共享路徑可以發現一個 note.txt 文件。

Sysadmins: please don't transfer the entire backup file locally, the VPN to the subsidiary office is too slow.

對於這個利用過程,這個提示還是有用的。通過 smbclient 來訪問文件不太方便,因爲我們不能夠直接瀏覽文件。所以將這個共享文件夾掛載到 kali 上:

mount -t cifs //10.10.10.134/Backups -o user=guest,password= /mnt/backups

這樣我們就可以直接訪問文件了。這個可能是一個備份文件夾。在一些嘗試之後,我們發現了一些有趣的文件。 VHD(虛擬硬盤)文件看起來很有用。根據 wiki:

VVHD是表示虛擬硬盤驅動器(HDD)的文件格式。它可能包含物理HDD上的內容,例如磁盤分區和文件系統,而後者又可以包含文件和文件夾。它通常用作虛擬機的硬盤。

所以這個 VHD 文件裏面可能包含了更有用的信息。這裏面有 2 個 VHD 文件,一個是 37M,一個是 5.1G。毫無疑問,這個大的可能更有用。但是要把整個 VHD 文件下載下來實在是太困難了,尤其是在這樣的網絡下。而且靶機的作者也在論壇裏面說過你根本不需要將整個 VHD 文件下載下來。那就將 VHD 文件掛載到 kali:

guestmount --add /mnt/backups/WindowsImageBackup/L4mpje-PC/Backup\ 2019-02-22\ 124351/9b9cfbc4-369e-11e9-a17c-806e6f6e6963.vhd --inspector --ro /mnt/vhd

在網絡不是很穩定的情況下這個操作還是蠻耗時的。接着,這個 VHD 文件就掛載成功了。這應該是一個系統硬盤,沒有什麼特別的信息。但是我們可以在裏面發現一個 SAM 文件。安全帳戶管理器(SAM)是 Windows 中用於存儲用戶密碼的數據庫文件。嘗試訪問 SAM 文件, samdump2 可以將哈希導出。 從上面導出的哈希,L4mpje 的哈希看起來很有用。我們可以使用在線哈希破解網站 HashKiller 來破解哈希。 容易我們就破解了這個哈希。而且據我們一開始獲取的信息,這臺靶機是開放了 ssh 服務的,所以我們嘗試使用 L4mpje 作爲用戶名來登錄。很幸運,我們進來了。

提權

在使用 L4mpje 用戶登錄成功後,我們發現我們的權限很有限。一般提權可以利用某些軟件的漏洞來完成。所以,探測這個靶機安裝了哪些軟件很有意義。 我們發現了一個有趣的文件夾 mRemoteNG 是一個開源的遠程連接管理工具。它曾經有一個漏洞,可以通過配置文件獲取用戶的連接信息。對於這臺靶機,已經有人創建了一個工具來破解這個配置文件中的密碼。配置文件存儲在 AppData 文件夾中。 看起來 Administrator 的密碼存儲在 XML 文件中。我們可以利用 mremoteng-decrypt 這個工具來破解密碼。

java -jar decipher_mremoteng.jar "aEWNFV5uGcjUHF0uS17QTdT9kVqtKCPeoC0Nw5dmaPFjNQ2kt/zO5xDqE4HdVmHAowVRdC7emf7lWWA10dQKiw=="

最終,我們獲取了 Administrator 的密碼。

相關文章