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

HTB htb-medium

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

HTB Poison ウォークスルー・ライトアップ Hack The Box

Summary

local shell取得まで

ターゲットポート:TCP 22(ssh)、80(http)
脆弱性:ターゲットのwebサイトでは、Local File Inclusion(ローカルファイルインクルージョン)の脆弱性が内在しており、
ユーザのsshのクレデンシャル情報を入手することができた。これを利用してsshでlocal-shellを取得した。
local権限を取得したユーザ:「charix」

privilege Escalation取得まで

脆弱性:ターゲットでは「xvnc」が起動していた。また、「xvnc」のクレデンシャル情報は「charix」で閲覧できた。
「xvnc」経由でroot権限を取得した。
root権限を取得したユーザ:root

Information Gathering

ポートスキャン

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

nmapの結果、上画像の通り、TCPポート番号22(ssh),80(http)が開いていることが分かりました。
まずはhttpサービスから調査していくことにしました。

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

まずは、httpでfirefoxにアクセスしました。その結果、以下サイトに接続しました。
何かサーバー内のデータを閲覧するツールのようでした。

Sites to be tested: ini.php, info.php, listfiles.php, phpinfo.php (意訳:次のphpファイルは検証済みです。ini.php, info.php, listfiles.php, phpinfo.php)

「サーバー内のデータを閲覧できる」という観点からLocal File Inclusion(LFI:ローカルファイルインクルージョン)の脆弱性を疑いました。
LFIの脆弱性を調査していった結果、以下の通り、「/etc/passwd」のデータを読み取ることができました。

上記の結果から。「charix」というユーザがターゲット内に存在することが分かりました。

続いて、「listfiles.php」というファイルを調査しました。
その結果、「pwdbackup.txt」というファイルを見つけました。

「pwdbackup.txt」にアクセスした所、以下が表示されました。

This password is secure, it’s encoded atleast 13 times..(意訳:パスワードはセキュアです。少なくとも13回エンコードしてます。)

どうやら、この文字列は何かのパスワードのようでした。13回エンコードされているということで、13回デコードして複合を試みました。

エンコードされたパスワードをデコードする

先程の文字列を「key」というファイルで保存しました。13回エンコードを繰り返した所、パスワードの複合に成功しました。

Charix!2#4%6&8(0 

local shellの取得

SSHアクセスの試行

先程見つけたパスワードですが、Charixという文字が含まれていることに気づきました。
ターゲットの「/etc/passwd」を確認した際に「charix」ユーザが居たことを思い出し、SSHでアクセスを試行しました。

使用したクレデンシャル情報は以下です。

ID:charix Password:Charix!2#4%6&8(0 

その結果、SSHでlocal-shellの取得に成功しました。取得したshellのユーザは「charix」でした。

上画像の通り、「charix」のホームディレクトリにflag「user.txt」と「secret.zip」というファイルを見つけました。

Privilege Escalation

「secret.zip」の調査

まず、「secret.zip」を自分のマシンにダウンロードしました。(ツールは「scp」を使用しています。)

また、ダウンロードした「secret.zip」は「unzip」を使って解凍しました。
「scp」、「unzip」共にパスワードが求められた際には、以下で通りました。

Charix!2#4%6&8(0 

その結果、「secret」というファイルが見つかりました。

「secret」の使い道を探す

「secret」という名前から、なんらかの鍵ファイルだと推測できましたが、使い道が分かりませんでした。
そのため、ターゲット内部を調査していくことにしました。

その結果、ターゲットのローカルで「xvnc」が動いていることが分かりました。(127.0.0.1:5901ポートです。)

先程見つけた「secret」ファイルが、「xvnc」のログインで利用できるのではと考えました。

「xvnc」経由でshellを取得する

まず、sshのポートフォワーディングを使用して、ターゲットと自分のマシンを接続しました。

続いて「vncviewer」を利用して、ターゲットの「xvnc」に接続しました。接続する際に「secret」ファイルを使用しています。

その結果、「xvnc」経由で「root」ユーザのshellを取得することができました。

flagを探す

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

以上で、Poisonのウォークスルーは終了です。