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

HTB htb-easy 未分類

Hack The BoxのSockerのウォークスルーです。難易度はeasyとなっています。
※本記事はサイバー犯罪を助長するものではありません。悪用は厳禁です。

HTB Shocker ウォークスルー

サマリー

local shell取得まで

ターゲットポート:TCP 80 (HTTP)
脆弱性:ShellShock(CVE-2014-6271)によるRemote Code Execution
local権限を取得したユーザ:shelly

privilege Escalation取得まで

脆弱性:Misconfiguration(解釈によっては違うかも)。ユーザshellyはperlをsudoで実行できた。そのため、perlを使用して/bin/shを実行し、root権限を取得した。

Information Gathering

ポートスキャン

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

上画像の通り、TCP80(http)が動作していることが分かりました。試しにfirefoxでhttpアクセスしてみます。

ターゲット上の「Don’t Bug Me!」というhttpサイトにアクセスできました。ただ、このページは、画像のみを表示させるものでした。このページにはログイン機能等も無く、reverse shellを取得することも出来なさそうなので、フォルダ階層を調査してみることにしました。

httpサーバ上の階層調査

httpサーバ上の階層調査にはGobusterを使用します。Gobusterについてはこちらを参照ください。※参照先は英語になっています。

上画像の通り、「cgi-bin」というフォルダがあるようです。ただし「Status 403」のため、firefoxでアクセスしても何も表示されませんでした。そのため、別のツールを使用して、「cgi-bin」フォルダ上に何かファイルがないかを調査します。

別のツールはdirsearchを使用しました。dirsearchについてはこちらを参照ください。※参照先は英語になっています。

dirsearchを使って「cgi-bin」上のファイルを調査した所、「user.sh」というファイルが存在することが分かりました。
「cgi-bin」に関する脆弱性を検索した所、ShellShock(CVE-2014-6271)を見つけました。この脆弱性を軸にLocal shellを取得することにしました。

Local shell取得

サンプルコードの実行

ShellShockに関しては、こちらを参考にサンプルコードを実施しました。

上画像の通り、サンプルコードが成功し、「/etc/passwd」が取得できました。続いてlocal shellの取得を目指します。

local shellの取得

reverse shellのコードは、こちらを参考しました。


無事にlocal shellを取得しました。※私のIPアドレスは塗りつぶしています。
ユーザー名は「shelly」のようです。

shellyのホームディレクトリに移動し、「user.txt」を発見しました。これでlocal shellの取得は完了です。

Privilege Escalation取得

ローカルユーザが使用できるsudoの調査

続いてprivilege Escalation(root権限の取得)を検討していきます。まずは、「shelly」ユーザがsudoで何か実行できるかを調査しました。

上画像で「(root) NOPASSWD: /usr/bin/perl」とあるように、sudoでperlが実行できるようです。そのため、perlで実行できる特権昇格コマンドを試してみることにしました。

perlによるroot権限の取得

rootへの特権昇格のコマンドは、こちらを参考しました。

上記画像の通り、root権限を取得しました。また、rootディレクトリ上に「root.txt」を発見しました。privilege Escalationまで完了したので、Shockerのウォークスルーは以上です。ありがとうございました。