LoginSignup
0
0

More than 1 year has passed since last update.

TryHackMe Boiler CTF writeup

Posted at

Room: Boiler CTF
Difficulty: Medium
Show: Free

CTF形式(一部walkthrough)でマシン攻略しフラグを取得するタイプのRoomになります。
初期シェルを取得するまでにかなり苦労しました。
rabbit holeがかなりあるので、丁寧に列挙していく必要があります。

Questions #1

nmapにてポートスキャンを行いました。
nmap -v -p- -A -sV -T4 10.10.10.178
image.png
image.png
結果、21/tcp(ftp)、80/tcp(http)、10000/tcp(tcp)、55007/tcp(ssh)がオープンしていることがわかりました。
walkthroughの通り、ftpの列挙から進めていきます。

①File extension after anon login

nmapの結果から、21/tcp(ftp)のanonymous loginが有効になっていることがわかっていますので、アクセスします。
image.png
ls -laにて「.info.txt」というファイルの存在を確認できましたので、getコマンドで取得します。
walkthroughの解答は「txt」になります。
image.png
.info.txtを確認したところ、不可解な文章を取得しました。
image.png
見た目上、rot13にて暗号化されているようですので、復号していきます。
echo "Whfg jnagrq gb frr vs lbh svaq vg. Yby. Erzrzore: Rahzrengvba vf gur xrl!" | tr '[A-Za-z]' '[N-ZA-Mn-za-m]'
image.png
上図結果、rabbit holeだということがわかりました。
また、その他ftpより取得できる情報も無いようです。

②What is on the highest port?

nmapの結果よりsshであることがわかっています。
image.png
sshは比較的exploitできる脆弱性や取得できる情報が少なく、認証情報を取得した後のシェル取得に使う場合が多いので、列挙は後回しにします。
image.png

③What's running on port 10000?

nmapの結果よりwebmin ver1.930が稼働していることがわかっています。
image.png
image.png

④Can you exploit the service running on that port? (yay/nay answer)

searchsploitコマンドにて検出したwebmin ver1.930にexploitがないか確認します。
image.png
結果、exploitは無いようです。
念のため、google検索も行っていきます。
image.png
webmin < 1.930にはRCEの脆弱性があるようですが、本バージョンにはexploitに繋がる脆弱性は無いようです。

ブラウザアクセスをしていきます。
image.png
表示通り、webサーバが稼働しているようですが、SSLで接続する必要があるようです。
また、「http(s)://ip-ipaddress.eu-west-1.compute.internal:10000/」の形でアクセスする必要があるようなので、hostsファイルを書き換え、アクセスします。
image.png
結果、webminのログイン画面が出てきました。
現状はUsername,Password共に取得できていない状況なので、ひとまず後回しにします。
その他、隠しディレクトリなども取得できなかったため、本解答は「nay」となります。
image.png

⑤What's CMS can you access?

では、本命の80/tcp(http)の列挙をしていきます。
まず、ブラウザでのアクセスです。
image.png
Apache2 Ubuntu Default Pageが出てきました。
当該ページ上では特に有用な情報は得られませんでしたので、gobusterコマンドにて隠しディレクトリの列挙を行っていきます。
obuster dir -u http://10.10.10.178/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -r -t 50
image.png
いくつか怪しいディレクトリやファイルを検出しました。
まずは本解答ですが、/joomlaが該当しそうです。
image.png
image.png

⑥Keep enumerating, you'll know when you find it.

列挙を続けていきます。
次に怪しげな/robots.txtへアクセスしていきます。
image.png
またもrabbit hole臭のする内容が表示されました。
下部の数列は何かを意味しそうです。
https://www.dcode.fr/cipher-identifier
に入れて分析後、ASCII→Base64→MD5の順にdecodeすると、「kidding」の文字列だということがわかりました。
これは恐らくrabbit holeでしょう。

注:ここからマシンのIPアドレスが「10.10.10.178」から「10.10.143.203」へ変わります。

その他、現状はexploitに繋がる情報はありませんでしたのでさらに列挙を続けていきます。
gobusterにてCMS(joomla)下の隠しディレクトリを列挙します。
gobuster dir -u http://10.10.143.203/joomla/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -r -t 50
image.png
いくつか興味深いディレクトリを検出しました。
特に「/_****」は通常のjoomlaのrootディレクトリには見られませんのでアクセスしていきます。

まずは「_archive」です。
image.png
どうやらrabbit holeのようです。

続いて「_database」です。
image.png
またもrabbit hole臭がしますが、念のためデコードしていきます。
https://www.dcode.fr/rot-cipher
に入れて「JUSTMESSINGAROUND」だということがわかりました。やはりrabbit holeです。

続いて「_files」です。
image.png
これまたrabbit holeっぽいですが、念のためデコードしていきます。
base64で2回デコードしたところ「Whopsie daisy」だということがわかりました。rabbit holeです。
image.png

最後に「_test」です。
image.png
sar2htmlの画面が出てきました。
sar2htmlはOSのシステム統計(sarデータ)をプロットするツールです。

また、画面上のsar2ascii.tarを取得し、中を確認したところ、sar2htmlのバージョンは3.2.1でした。
image.png
searchsploitコマンドにて当該バージョンのsar2htmlにexploitがないか確認したところ、RCEのexploitがあるようです。
image.png

⑦The interesting file name in the folder?

RCE可能なexploitがありましたので、悪用してさらに探索していきます。
searchsploitコマンドのmオプションにてexploitをコピーし、実行していきます。
image.png
lsコマンドを実行したところ、「/joomla/_test/」下の一覧を取得できました。
ログファイル「log.txt」がありましたので確認します。
image.png
SSHの認証情報を取得することができました。これでユーザ権限のシェルが取得できそうです。
ssh basterd@10.10.143.203 -p 55007にて接続していきます。
image.png
無事、シェルを取得することが出来ました。
また、本解答は「log.txt」となります。
image.png

Questions #2

Where was the other users pass stored(no extension, just the name)?

SSHでログイン後、ls -laにてホームディレクトリを確認したところ、「backup.sh」なる怪しげなシェルスクリプトを発見しました。
image.png
catコマンドにて中を確認したところ、別のユーザ(stoner)の認証情報を取得することができました。
本解答は「backup」となります。
image.png

user.txt

改めて取得したユーザのシェルを取得します。
su stoner
image.png
stonerのホームディレクトリへ移動後、lsコマンドにてディレクトリ内を確認したところ、「.secret」というファイルを取得しました。
image.png
catコマンドにて中を確認したところ、flagのようなものを取得しました。
image.png

What did you exploit to get the privileged user?

ここからroot権限のシェル取得に向けて権限昇格を行っていきます。
linpeasを使用して列挙します。

まずはpythonにて簡易的なwebサーバを起動し、curlコマンドを使用してlinpeas.shを対象サーバへ移動させます。
image.png
移動後、実行権限を与えて実行します。
image.png
結果を確認したところ、findコマンドにSUIDが有効になっていることがわかりました。
image.png
GTFOBinsにて権限昇格用のコマンドを確認し、権限昇格を行います。
/usr/bin/find . -exec /bin/sh -p \; -quit
image.png
無事、root権限のシェルを取得することが出来ました。
本解答はfindとなります。
image.png

root.txt

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0