Mirai 日本語でウォークスルー Hack The Box Machine:

HTB htb-easy

Hack The BoxのMiraiのウォークスルー・ライトアップ(walkthrough/writeup)です。難易度はeasyとなっています。
※本記事はサイバー犯罪を助長するものではありません。悪用は厳禁です。

HTB Mirai ウォークスルー・ライトアップ

サマリー

local shell取得まで

ターゲットポート:TCP 22,80 (http)
脆弱性:ターゲットでは「Raspberry Pi OS(ラズベリーパイOS)」が動作していた。また、ユーザ名とパスワードが初期設定のままだったので、
SSHを使用し、local-shellを取得した。
local権限を取得したユーザ:pi

privilege Escalation取得まで

脆弱性:「pi」ユーザは認証無しで「root」ユーザに移動できるようになっていた。
root権限を取得したユーザ:root

Information Gathering

ポートスキャン

それでははじめます。まずはターゲット上で動作しているTCPポートをnmapで探します。nmapについてはこちらを参照ください。

nmapの結果、上画像の通り、TCPポート番号22(ssh),80(http)が開いていることが分かりました。

最初のnmapの結果では、TCPポート番号22(ssh),80(http)以外に空いているポートは見当たりませんでした。
そのため、まずはターゲットのhttpサービスについて、深く調査していくことにしました。

ターゲットのhttpサービス調査

まず、gobusterを使用し、ターゲットのhttpサービスのフォルダ階層を調査しました。

その結果、「/admin」というフォルダを見つけました。このフォルダにアクセスした所、以下に接続しました。

IoT機器などで使用されている「Raspberry Pi OS(ラズベリーパイOS)」のように見受けられました。

Local shellの取得

「Rasberry Pi OS」のSSH接続を試みる

ラズベリーパイOSの公式であるraspberrypi.orgから、デフォルトパスワードを調査しました。
その結果、ユーザーが「pi」、パスワードが「raspberry」であることがわかりました。

ターゲット上では、TCPポート番号22番(ssh)が開いていたので、このデフォルトクレジットを使って、SSH接続を試みました。

その結果、上記の通り、ユーザーが「pi」、パスワードが「raspberry」でSSHログインできました。
ユーザー「pi」のlocal-shelが取得できたことになります。

Privilege Escalation

sudo権限の調査~root権限の取得

「pi」ユーザーのsudo権限を調査した所、「(ALL:ALL)ALL (ALL)NOPASSWD:ALL」という文言が見つかりました。
これは、「pi」ユーザーであらゆる「sudo」コマンドが使用できることを意味します。

上記の通り、「sudo su」コマンドでroot権限に移動しました。

flagを探す

user.txtは「/home/arrexel」の直下にありました。

root.txtは「/root」の直下にありました。しかし、catコマンドでroot.txtを読み取ろうとした所、
以下文言が表示されました。

「I lost my original root.txt! I think I may have a backup on my USB stick…」
(日本語訳:元の「root.txt」を消しちゃった!私のUSBメモリの中にバックアップがあるかもしれない。。。)

意訳が入っていますが、こんな内容でした。そのため、おそらくターゲットサーバに接続されているだろうUSBメモリの中から「root.txt」を探すことにしました。

USBメモリのデータを探す

以下のような形で「usbstick」というフォルダを見つけました。

しかし、「usbstick」フォルダの中に、「root.txt」はありませんでした。
代わりに、「damnit.txt」というフォルダがあり、その内容は以下でした。

「Damnit! Sorry man I accidentally deleted your files off the USB stick. Do you know if there is any way to get them back? -James」
(日本語訳:やっちゃった!ごめんね!意図せずUSBメモリの中にあった、あなたのデータ消しちゃった。そのデータを復元しる方法知ってる? ジェームズより)

意訳ですがこんな感じです。どうやら「ジェームズ」さんが、USBメモリの中にあった「root.txt」を消してしまったようです。そのため、消してしまった「root.txt」を復元する方法を探りました。

USBメモリのデータを復元する


「lsblk」コマンドで確認した所、USBメモリは「/dev/sdb」としてマウントされているようです。

「/dev/sdb」を「cat」コマンドで確認した所、文字化けしましたが、何かのデータが出てきました。
そのため「strings」コマンドで再度データを確認した所、以下の通り、「root.txt」の中身を見ることができました。

以上で、Miraiのウォークスルーが完了です。

余談:マシンタイトルの「Mirai」について

「Mirai」はIoT機器のウィルスの名称

余談ですが、今回のマシンタイトルである「Mirai」とは、IoT機器に感染させるコンピュータウィルスの名称です。
過去には、IoT機器に感染させ、大量のDDOS攻撃に参加させる事例も起きています。
今回のマシンは、「Mirai」に感染させる前のroot権限取得の方法にとても似ている印象を受けました。

詳しくは以下のサイトをご確認ください。

以上、参考まで。失礼いたします。