TryHackMe: Anthem Writeup

TryHackMeのAnthemのwriteupおよびメモ。

数日間に渡り取り組んだため、標的マシンのIPアドレスがちょいちょい変わっているのはご愛嬌。

Task 1: Website Analysis

What port is for the web server?

nmap -Pn -A 10.10.15.183
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-12 08:49 EDT
Nmap scan report for 10.10.15.183
Host is up (0.27s latency).
Not shown: 998 filtered tcp ports (no-response)
PORT     STATE SERVICE       VERSION
80/tcp   open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
3389/tcp open  ms-wbt-server Microsoft Terminal Services
|_ssl-date: 2024-05-12T12:51:07+00:00; 0s from scanner time.
| ssl-cert: Subject: commonName=WIN-LU09299160F
| Not valid before: 2024-05-11T12:49:07
|_Not valid after:  2024-11-10T12:49:07
| rdp-ntlm-info: 
|   Target_Name: WIN-LU09299160F
|   NetBIOS_Domain_Name: WIN-LU09299160F
|   NetBIOS_Computer_Name: WIN-LU09299160F
|   DNS_Domain_Name: WIN-LU09299160F
|   DNS_Computer_Name: WIN-LU09299160F
|   Product_Version: 10.0.17763
|_  System_Time: 2024-05-12T12:49:56+00:00
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 113.69 seconds

答えは80。

What port is for remote desktop service?

上記nmapのスキャン結果より、答えは3389。

What is a possible password in one of the pages web crawlers check for?

http://10.10.15.183/robots.txtの中に以下が記されていた。

UmbracoIsTheBest!

# Use for all search robots
User-agent: *

# Define the directories not to crawl
Disallow: /bin/
Disallow: /config/
Disallow: /umbraco/
Disallow: /umbraco_client/

答えはUmbracoIsTheBest!

What CMS is the website using?

上記のrobots.txtの中に/umbraco/というディレクトリがあった。

答えはUmbraco。(ちなみにUmbracoというCMSのことは今回初めて知った。)

What is the domain of the website?

http://10.10.15.183/にブラウザでアクセスすると、Anthem.comというタイトルを確認できた。

答えはAnthem.com

What's the name of the Administrator

Webサイトの中のブログ記事を確認したところ、Jane DoeとJames Orchard Halliwellというユーザー名を発見したが、どちらも正解ではなかった。

色々調べてみたが分からなかったので、公式のヒントを見てみた。以下、ヒント。

Consult the Oracle.(your favourite search engine)

ググれ(意訳)とのこと。

「Umbraco default administrator」でググってみたり、Jane DoeやJames Orchard Halliwellについてググってみたり、ドメイン名のAnthem.comのWhois情報を調べてドメインの管理者名を確認してみたりと色々試したが、すべて空振りに終わった。

どうしても分からなかったので、他所のwriteupを覗いてみた。

ブログ記事 /archive/a-cheers-to-our-it-department/の中には以下の詩が書かれている。

Born on a Monday,
Christened on Tuesday,
Married on Wednesday,
Took ill on Thursday,
Grew worse on Friday,
Died on Saturday,
Buried on Sunday.
That was the end…        

この詩の一文をググるとSolomon Grundyという童謡の一節であることが分かる。

で、Solomon Grundyが管理者の名前とのこと。なんか納得が行かない。。。

Can we find find the email address of the administrator?

ブログ記事 /archive/we-are-hiring/の中にJane Doeのメールアドレス JD@anthem.comが確認できる。

メールアドレスはイニシャル + ドメインのパターンになっている模様。

よって、管理者Solomon GrundyのメールアドレスはSG@anthem.comとなる。

Task 2: Spot the flags

What is flag 1?

/archive/we-are-hiring/のソースコードを表示すると、冒頭のmetaタグの中に1つ目のフラグがある。

What is flag 2?

Webサイトのトップページのソースコードを表示すると、inputタグの中に2つ目のフラグがある。

What is flag 3?

/authors/jane-doe/にアクセスすると、3つ目のフラグがある。

What is flag 4?

/archive/a-cheers-to-our-it-department/のソースコードを表示すると、冒頭のmetaタグの中に4つ目のフラグがある。

Task 3: Final stage

Let's figure out the username and password to log in to the box.(The box is not on a domain)

色々試したところ、以下のxfreerdpコマンドで標的マシンに接続できた。

xfreerdp /cert:ignore /u:SG /p:UmbracoIsTheBest! /size:95% +clipboard /v:10.10.170.185
  • ユーザー名はSG
  • パスワードは先の設問で見つけたUmbracoIsTheBest!
  • /cert:ignoreをつけて証明書エラーを回避。このオプションをつけないと、証明書エラーで接続が切られる。
  • 標的マシンはドメインに参加していないとのことなので、/dオプションは無し。

Gain initial access to the machine, what is the contents of user.txt?

デスクトップ (C:\Users\SG\Desktop)にuser.txtというファイルがあり、この中にフラグが記載されていた。

Can we spot the admin password?

この問題も苦戦して、最終的に他所のwriteupのヒントを見て解くことが出来た。

以下、試したこと。

cd C:\
dir /s "\admin*" > C:\Users\SG\Desktop\admin-files.txt
dir /s "*passw*" > C:\Users\SG\Desktop\password-files.txt

ファイル名にadminもしくはpassw(d|ord)を含むファイルの一覧を取得して確認。

cd C:\
dir /s /a:h > C:\Users\SG\Desktop\hidden-files-all-dirs.txt

隠しファイル・フォルダの一覧を取得して確認。

dir /rコマンドで怪しいAlternate Data Stream (ADS)が付与されたファイルが無いか確認。

ほかにも、エクスプローラーで隠しファイル・フォルダが無いか確認。

エクスプローラーで隠しファイル・フォルダを表示するには

  1. エクスプローラーを開く。
  2. Viewメニューより、Options -> Change folder and search options
  3. Viewタブより、Hidde files and foldersの項のShow hidden files, folders, and drivesをチェック
  4. Applyボタンで変更を適用し、OKボタンで完了。

エクスプローラーでディレクトリを眺めていたところ、C:\backupという隠しフォルダの中にrestore.txtというファイルを発見したが、読み取り権限が無いため開けなかった。

この時、てっきり読み取りには管理者権限が必要なのだと思い込み、大して気にも留めずにこのファイルをスルーしたのだが、これが間違いだった。。。詳しくは後述。

なかなか目的のファイルが見つからないので、公式のヒントを見てみた。以下、ヒント。

It is hidden.

隠しフォルダやファイルは一通り調べたつもりだけど。。。

ほかに他所のwriteupを覗いたところ、以下のヒントを見つけた。

The file is in a hidden folder in the root of the C:\ drive, you will need to change the permissions of the file to read it though.

どうやらCドライブの直下に隠しフォルダがあり、そこにファイルがあるらしい。ただしファイルを読むにはパーミッションを変更する必要があるとのこと。

ここで、先ほど見つけたC:\backup\restore.txtについて思い出す。

restore.txtのプロパティを確認したところ、(ファイルを右クリック -> Properties -> Detailsタブ) ファイルの所有者はWIN-LU09299160F\SGになっていた。

ということは、管理者権限なしでパーミッションを変更できるのでは?

以下のicaclsコマンドでrestore.txtへのフルアクセスを取得。

icacls restore.txt /grant SG:(F)

無事、restore.txtを読めるようになり、管理者のパスワードを入手できた。

Escalate your privileges to root, what is the contents of root.txt?

先の設問で入手した管理者パスワードを利用してC:\Users\Administrator\Desktopにアクセスしたところ、root.txtを発見。このファイルにフラグが記載されていた。

Leave a Reply

Your email address will not be published. Required fields are marked *