【HackTheBox write-up】StartingPoint Oopsie

はじめに

久しぶりにHackTheBoxに触ってLinuxサーバーのルートがとれたので記録

これでやっとStartingPointの2台を攻略

マシンについて

  • NAME:Valentine
  • OS:Linux
  • IP:10.10.10.79

Enumeration

ポートスキャン

ブラウザでアクセス

ポートスキャンの結果、80番ポートが開いている事がわかったので、

実際にブラウザでアクセスしてみると以下のようなページが表示される
f:id:ryumanji:20201220095052p:plain
 
BurpSuiteを使用して通信を確認

cdn-cgi/login/script.jsへのGET通信があることがわかる

f:id:ryumanji:20201220095616p:plain

http://10.10.10.28/cdn-cgi/login/script.jsにアクセスすると、

以下のログインフォームが表示される

f:id:ryumanji:20201220100133p:plain

 

ユーザー名に admin と入力し、パスワードは、、、?

僕はここでパスワードの特定にかなりハマって公式のWalkThroughを見ました。

すると、パスワードに MEGACORP_4dm1n!! を"再使用"しろと書いてありました。

このパスワードが初見だったのでどこで使用したのか調べると、どうやら他のStartingPoint の Archetype というマシンの攻略に使用していたっぽいです。

 

 

username: admin / password: MEGACORP_4dm1n!! を入力してログインすると以下のページが表示される

portal

上記バーの[Uploads]をクリックすると、

This action require super admin rights. が表示される

ここで、super admin 権限で webshell をアップロードするのではないかと推測を立て、上記バーの[Account]でユーザーを確認するも、ただの admin しかない

[Account]にアクセスした際のURLを見るとどうやら各ユーザーに id が割り振られているっぽい

 

Pythonでurllibを使用して id 1から100まで検索し、

結果をhtmlファイルに出力するコードを作成しsuper adminの情報を取得しました。

コードはGithub(下記リンク)にあげているので必要であれば使ってください。

使い方は readme.txt に記載してあります。

github.com

ちなみに公式WalkThroughでは、

BurpSuiteのSniperを使用した方法で super admin を特定しています。

 

Foothold

上記より、super admin のAccess IDが取得できたので[Uploads]にアクセス

BurpSuiteのInterceptをonにした状態で[Uploads]にアクセスし、リクエストのクッキー情報を書き換える

Cookie: user=34322 を super admin の id に変更して送信すると、

以下のページが表示される

f:id:ryumanji:20201220115219p:plain

[Uploads]ページのURLは下記のとおり admin.php により処理されている

http://10.10.10.28/cdn-cgi/login/admin.php?content=uploads

 

php用の webshell を用意する

 

上記で用意した php-reverse-shell.php の49行目付近の

CHANGE THIS とコメントのついている ip の値を変更する

 

[Uploads]ページのBrowseボタンから、webshell(php-reverse-shell.php) を選択し、

Upload ボタンをクリック

 

Terminal を新しく開き、ncコマンドを実行する

 

別の Terminal から、下記curl コマンドを実行し webshell を起動させる

 

ncコマンドを実行していたTerminalへ下記を入力し、bashを起動する

Lateral Movement

bash が起動したのでマシンの内部を調査

下記より user.txt を取得

root.txt は存在は確認できるものの中を見てもフラグは入っていなかった

 

/var/www/html ディレクトリを調査

ユーザー名とパスワードを取得

 

 

su コマンドを実行し、robert で root 権限を取得

Privilege Escalation

id コマンドを実行し、ユーザーの情報を調査

bugtracker というグループに所属していることを確認

 

find コマンドを実行し、group が bugtracker のファイルを探索

 

find コマンドにより得られたファイルの調査

file コマンドを実行し、ELF ファイルという情報が得られたため、

ファイルを実行する

 

Provide Bug ID に文字列を入力すると以下の文字列が表示される

root/reports/<Provide Bug ID>  を cat していることが推測できる

 

相対パスを使用して cat を呼び出していることがわかったので、
PATHにカレントディレクトリを追加、cat コマンドに shell を追加して、
root に権限昇格させる

 

上記を実行すると、root に権限昇格している

 

/home/robert/root.txt を確認したがフラグを取れず、/root を確認したところ root.txt があったので cat で中身を確認するも表示されず、vi で中身を確認

これで root.txt 取得できた

 

感想

意外とサクサク進んだので近いうちに次のマシンに挑戦したいという気持ち