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

HTB htb-easy

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

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

サマリー

local shell取得まで

ターゲットポート:TCP 22,80 (http)
脆弱性:ターゲットではhttpで「Nibbleblog v4.0.3」が動作していた。「Nibbleblog 4.0.3 – Arbitrary File Upload (Metasploit) (CVE2015-6967)」の脆弱性を利用し、local-shellを取得した。
local権限を取得したユーザ:nibbler

privilege Escalation取得まで

脆弱性:「nibbler」ユーザはsudoで「monitor.sh」を実行できた。このスクリプトを加工し、root権限を取得した。
root権限を取得したユーザ:root

Information Gathering

ポートスキャン

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

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

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

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

まず、firefoxを利用し、ターゲットにhttpアクセスしてみました。その結果、以下サイトにつながりました。
「Hello world」と表示されています。

このサイトのページソースを確認した所、以下が表示されました。

どうやら、「/nibbleblog」というディレクトリがあるようです。
このディレクトリにアクセスした所、以下のブログにつながりました。このブログをさらに調査していくことにしました。

Local shellの取得

nibbleblogの調査

dirsearchを使用し、「/nibbleblog」ディレクトリをさらに調査していきました。
その結果、以下が見つかりました。興味深いのは「README」と「admin.php」でした。

「README」は以下の内容でした。この内容から「Nibbleblog」のバージョンが「v4.0.3」であることがわかりました。

また、「admin.php」は、以下のようなログインページでした。

調査を続けた所、ユーザIDについては、以下から「admin」であると仮定しました。

また、パスワードについては、cewlというツールを使用し、ターゲットの「nibbleblog」サイトから推測しました。

「admin.php」で何度かログインを試した所、ユーザー名「admin」、パスワード「nibbles」でログインができました。

「Nibbleblog」のバージョン「v4.0.3」の脆弱性調査

「Nibbleblog v4.0.3」の脆弱性を調査した所、以下の通り「Nibbleblog 4.0.3 – Arbitrary File Upload (Metasploit) (CVE2015-6967)」が見つかりました。

CVE2015-6967を利用した攻撃

こちらを参考に、実際にlocal-shellの取得を試行しました。

上記を実行した結果、以下の通り、「nibbler」のlocal-shellを取得することができました。

python3 -c 'import pty;pty.spawn("/bin/bash")'

上記コマンドを使用し、取得したshellを分かりやすく表示しています。

Privilege Escalation

sudo権限の調査

「sudo -l」コマンドを利用し、「nibbler」ユーザがsudoで何か実行できるか調べました。

その結果、「monitor.sh」というスクリプトがsudoで実行できるようでした。
以下のような形で、一部ファイルを解凍しながら「monitor.sh」にたどり着きました。

以下の通り、「monitor.sh」に「sh」コマンドを追加しました。

「monitor.sh」をsudoで実行した結果、「root」ユーザのshellを取得できました。

flagを探す

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

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

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