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)が付与されたファイルが無いか確認。
ほかにも、エクスプローラーで隠しファイル・フォルダが無いか確認。
エクスプローラーで隠しファイル・フォルダを表示するには
- エクスプローラーを開く。
- Viewメニューより、Options -> Change folder and search options
- Viewタブより、Hidde files and foldersの項のShow hidden files, folders, and drivesをチェック
- 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
を発見。このファイルにフラグが記載されていた。