Popcorn 日本語でウォークスルー Hack The Box Machine:
Hack The BoxのPopcornのウォークスルー・ライトアップ(walkthrough/writeup)です。難易度はmediumとなっています。
※本記事はサイバー犯罪を助長するものではありません。ハッキングやクラック等の悪用は厳禁です。
目次
HTB Popcorn ウォークスルー・ライトアップ Hack The Box
Summary
local shell取得まで
ターゲットポート:TCP 80(http)
脆弱性:ターゲットのwebサイトでは、「Torrent Hoster」が動作していた。これは、Torrent Hoster – Remount Uploadの脆弱性が内在していた。
これを利用して、reverse-shell用のスクリプトをターゲットにアップロードし、起動することでshellを取得した。
local権限を取得したユーザ:「www-data」
privilege Escalation取得まで
脆弱性:ターゲットのLinuxOSでは、Linux Kernel 2.6.37 ‘Full-Nelson.c’ Local Privilege Escalationの脆弱性が内在していた。これを利用してroot権限を取得した。
root権限を取得したユーザ:root
Information Gathering
ポートスキャン
それでははじめます。まずはターゲット上で動作しているTCPポートをnmapで探します。nmapについてはこちらを参照ください。
nmapの結果、上画像の通り、TCPポート番号22(ssh),80(http)が開いていることが分かりました。
まずはhttpサービスから調査していくことにしました。
ターゲットのhttpサービス調査
まずは、httpでfirefoxにアクセスしました。その結果、以下サイトに接続しました。
なんらかのサイトが動いているようです。しかし、この段階では何が動いているか分かりませんでした。
gobusterを使用して、ターゲットのフォルダ階層を調査しました。
その結果、「torrent」というフォルダを見つけました。
この「torrent」にアクセスした所、以下が表示されました。
どうやら、「Torrent Hoster」というアプリケーションが動いているようでした。
「Torrent Hoster」の脆弱性調査
「Torrent Hoster」の脆弱性を調査した所、Torrent Hoster – Remount Uploadが見つかりました。
そのため、「Torrent Hoster」経由でreverse-shellを取得する方法を検討することにしました。
local shellの取得
「Torrent Hoster」の脆弱性を利用してreverse-shellを取得する
まず、「Torrent Hoster」のアカウントを作成することにしました。先程の画面の「Sign up」から以下の通り、アカウントを作成しました。
続いて「Upload」タブをクリックしました。その画面で、以下の通り任意の「torrent」イメージをアップロードしました。
その後、アップロードした「torrent」イメージに対して、以下の通り「Edit this torrent」を選択しました。
すると、以下のようなポップアップが表示されました。どうやら「Update Screenshot」から何かファイルがアップロードできるようでした。
ここからreverse-shell用のファイルをアップロードしていきました。
まず、reverse-shell用のファイルをpentestmonkeyからダウンロードしました。
ダウンロードしたファイルは「php-reverse-shell.php」とし、自分のマシンのIPアドレスとポート番号に変更しました。
ただしこのままだと、このアップローダーは画像ファイル(「.jpg .jpeg .gif .png」)しか添付を許可していませんでした。
そこで、BurpSuiteを使用しました。
BurpSuiteを起動し、以下の通り、「Submit Screenshot」から「php-reverse-shell」をアップロードしました。

すると、BurpSuite側で、以下の通り表示されたので、「Content-Type」を「application/x-php」から「image/jpeg」に変更しました。
変更後は、BurpSuite側で「Forward」をクリックしました。
そうすると、以下の通り、「php-reverse-shell.php」がアップロードされたことが分かりました。
ファイルのアップロード先を探すために、再度gobusterを利用した所、「torrent/upload」というパスを見つけました。

「torrent/upload」にアクセスした所、以下の通りアップロード先を見つけました。
netcatを仕掛けて、上記画像のphpファイルをクリックした所、reverse-shellを取得しました。
取得したshellは「www-data」でした。
Privilege Escalation
Privilege Escalationの脆弱性調査
linpeasを使ってターゲット内を調査しました。
すると、ターゲットのOSが以下であることが分かりました。
Linux version2.6.31-14-generic-pae
このLinux versionの脆弱性を調査した所、Linux Kernel 2.6.37 (RedHat / Ubuntu 10.04) – ‘Full-Nelson.c’ Local Privilege Escalationを見つけました。
こちらの攻撃コードを自分のマシンに「15704.c」としてダウンロードしました。
Linux Kernelの脆弱性を利用した攻撃
以下の通り、wgetを使用して自分のマシンからターゲットへ「15704.c」をダウンロードしました。
「15704.c」をコンパイルし、実行した所、root権限を取得することができました。
flagを探す
user.txtは「/home/george」にありました。
root.txtは「/root」直下にありました。
以上で、Popcornのウォークスルーは終了です。