Beep 日本語でウォークスルー Hack The Box Machine:
Hack The BoxのBeepのウォークスルーです。難易度はeasyとなっています。
※本記事はサイバー犯罪を助長するものではありません。悪用は厳禁です。
目次
HTB Beep ウォークスルー
サマリー
local shell取得まで
ターゲットポート:TCP 443 (https), TCP 80 (http)
脆弱性:Elastixサービスに内在しているLocal FIle Inclusionの脆弱性「Elastix 2.2.0 – ‘graph.php’ Local File Inclusion」
この脆弱性により、SSHのrootユーザのパスワードを入手することができた。
local権限を取得したユーザ:root
privilege Escalation取得まで
脆弱性:必要なし。
Information Gathering
ポートスキャン
それでははじめます。まずはターゲット上で動作しているTCPポートをnmapで探します。nmapについてはこちらを参照ください。
nmapの結果、上画像の通り、様々なTCPポートが開いていることが分かりました。その中でもまずはTCPポート80番(http)に着目しました。
firefoxを使用し、ターゲットへhttpアクセス
firefoxを使用し、httpアクセスした所、httpsにリダイレクトされました。また、以下のようなサイトへ接続しました。
「Elastix」に関するなんらかのログインページのようです。そのため、この「Elastix」に何か脆弱性が内在していないかを調べることにしました。
Elastixの脆弱性調査
「Elastix」の脆弱性を調査した所、以下のような脆弱性が見つかりました。
この時点では「Elastix」のバージョンは不明であったため、見つかった脆弱性を上から試していきました。(バージョンが違うため、攻撃が成功しないかもしれませんが、とりあえず試してみることにしました。)
その結果、「Elastix 2.2.0 – ‘graph.php’ Local File Inclusion」の脆弱性で成果がありました。
この脆弱性は、Local File Inclusion(LFI)に関するもので、特定のURLを記入することで、ターゲット内のパスワードを入手することができるものでした。
特定の文字列はこちらです。
この脆弱性を使った攻撃がうまくいきそうでしたので、このままこの方向で、local-shellの取得を目指すことにしました。
Local shellの取得
Elastixに内在するLFIを利用した攻撃
「Elastix 2.2.0 – ‘graph.php’ Local File Inclusion」を利用した結果、以下の通りパスワードの取得に成功しました。
気になったのは「ARI_ADMIN_PASSWORD=jEhdIekWmdjE」という文言でした。どうやらこのパスワードはadminパスワードとして使用されているようです。そのため、このパスワードを他のTCPポートのサービスで使いまわしている可能性を考えました。着目したのはTCPポート22番(SSH)です。
SSHによるログイン試行
とりあえず、ユーザをデフォルト設定で有名な「root」とし、SSHでターゲットに接続してみることにしました。(もしユーザ「root」がだめなら、ユーザ「admin」等の別のユーザ名でも試してみるつもりでした。)
実際に接続を試した所、以下のようなエラーメッセージが返ってきました。
ターゲットのサーバで使用している暗号鍵が古いため、SSH接続ができないエラーのようでした。こちらを参考に、古い暗号鍵に対応した形でSSH接続を試してみることにしました。
その結果、デフォルトユーザ「root」、パスワード「jEhdIekWmdjE」でログインすることができました。rootユーザのshellを取得したため、privilege Escalationは必要ありませんでした。
flagを探す
user.txtは「fanis」ユーザのディスクトップ上にありました。root.txtは「root」ユーザのディスクトップ上にありました。
以上で、Beepのウォークスルーが完了です。