Knife 日本語でウォークスルー Hack The Box Machine:
Hack The BoxのKnifeのウォークスルー・ライトアップ(walkthrough/writeup)です。難易度はeasyとなっています。
※本記事はサイバー犯罪を助長するものではありません。ハッキングやクラック等の悪用は厳禁です。
目次
HTB Knife ウォークスルー・ライトアップ Hack The Box
Summary
local shell取得まで
ターゲットポート:TCP 80(http)
脆弱性:ターゲットにはPHP 8.1.0-dev – ‘User-Agentt’ Remote Code Executionの脆弱性が内在していた。これを利用し、local-shellを入手した。
local権限を取得したユーザ:「james」
privilege Escalation取得まで
脆弱性:ターゲット上では「knife」がsudo権限で実行できた。これを利用してroot権限を取得した。
root権限を取得したユーザ:root
Information Gathering
ポートスキャン
それでははじめます。まずはターゲット上で動作しているTCPポートをnmapで探します。nmapについてはこちらを参照ください。
nmapの結果、上画像の通り、TCPポート番号22(ssh)と80(http)が開いていることが分かりました。
まず、httpから調査していくことにしました。
ターゲットのhttpサービス調査(TCPポート番号80)
firefoxを使ってターゲットにアクセスしました。すると以下が表示されました。
医療システムを紹介するホームページのようでした。
続いて、firefoxの「Web Developer」-「Inspector」機能を使用しました。
すると、ターゲットが「PHP/8.1.0-dev」を使用していることが分かりました。
「PHP/8.1.0-dev」の脆弱性調査
「PHP/8.1.0-dev」の脆弱性を調査した所、PHP 8.1.0-dev – ‘User-Agentt’ Remote Code Executionを見つけました。
local shellの取得
「PHP 8.1.0-dev – ‘User-Agentt’ Remote Code Execution」を利用した攻撃
上記で紹介されていたスクリプト(「backdoor_php_8.1.0-dev.py」)をダウンロードしました。
git clone https://github.com/flast101/php-8.1.0-dev-backdoor-rce
「backdoor_php_8.1.0-dev.py」を実行した所、local-shellを取得することができました。
取得したshellは「james」ユーザーのものでした。
このままだと、ターゲット上でコマンドが思うように打てなかったので、shellを取り直しました。
先程ダウンロードした「php-8.1.0-dev-backdoor-rce」フォルダの中に、「revshell_php_8.1.0-dev.py」がありました。
netcatを仕掛けてから、「revshell_php_8.1.0-dev.py」を実行しました。

すると、再度「James」のshellを取得できました。今度はターゲット上で制限無くコマンドが打てるようになりました。
Privilege Escalation
Privilege Escalationのための脆弱性調査
続いて、root権限を取得する検討を始めました。
「sudo -l」コマンドを入力した結果、以下が表示されました。
取得した「James」ユーザは、「usr/bin/knife」を「sudo」で実行できるようです。
そのため、「/usr/bin/knife」を軸にroote権限を取得できないか検討しました。
「usr/bin/knife」を利用した攻撃
CHEF Progressを参考に、「knife」について調査しました。
その結果、「knife」ではrubyのコマンドが実行できるようです。そのため、rubyコマンドを利用して、root権限の昇格を狙いました。
以下の通り、rootに昇格するコマンドをconfig.rbとして用意しました。
james@knife:/tmp$ echo 'exec "/bin/bash -i"' > config.rb
james@knife:/tmp$ cat config.rb
cat config.rb
exec "/bin/bash -i"
以下コマンドを実行した所、rootのshellを取得できました。
sudo /usr/bin/knife user list -c config.rb

flagを探す
user.txtは「/home/james」にありました。
root.txtは「/root」直下にありました。
以上で、Knifeのウォークスルーは終了です。
今まで記事にしたHack The Boxのマシンは以下にまとめています。
Hack The Box Machine: 日本語でWriteup/Walkthrough まとめ – mopenten
Hack The Boxのウォークスルー・ライトアップ(walkthrough/writeup)のまとめです。 いままで記事にしたマシンを一覧にしています。 Hack The Box 日本語でWriteup/Walkth […]