【TryHackMe】Simple CTF

お勉強は終わりだ!

ということで、CTFにチャレンジしていきます。

自分の記録用に書いていましたが、password craking向けのpython script実行の部分は、困った人には有益かなと思います。

では始めます。
まずはnmapで開いてるポートを調べる。
21/tcp open ftp
80/tcp open http
上の2つが開いてます。

他は
2222/tcp sshが開いてます。

「どのCVEを使いますか?」という質問。
httpはApache 2.4.18、ftpはvsftpd 3.0.3。
vsftpdをCVEのwebページで調べるも、該当するものはなさそう。
ApacheについてもDOSを受ける可能性がある脆弱性のばかりでExploit向けの情報がない。
あ、「どのCVEをアプリケーションに対して使いますか?」という質問でした。
つまりwebの後ろにアプリケーションがいるのか。
ちょっと、ブラウザから見てみましょう。
うーんIP直打ちだと、Apacheのデフォルトページしか出ませんね。
どんなページがあるのか見たい、gobusterを使います。
gobuster dir -e -u http:[Target IP address] -w /usr/share/wordlists/dirb/common.txt
結果、http://[Target IP]/simpleというページが見つかりました。
ブラウザで見てみると、なんかCMS made simpleとかいうCMSのインストール完了ページが動いてます。フッターにCMS Made Simple version 2.2.8とありますね。
CVEで検索してみます。10個くらい出てきて、絞り込めない。googleで調べてみると、CVE-2019-9053が一番上に出ますね。SQL injectionの脆弱性(SQLi)があるらしい。

Exploit-dbへのリンクにいくと、exploit pythonコードが掲載されています。
このexploit.pyを持ってきて、実行してやりましょう。python3だとSyntax Error出ますね。地味ですが、print文の()がpython3で必要になったようですね。修正して、再度python3 exploit.pyします。オプションの指定方法が出てきました。
python3 exploit.py -u http://[target IP]/simple –crack -w /usr/share/wordlists/rockyou.txtを実行!
お、走りましたね。
パスワードやユーザー名が、Emailアドレスが出てきました。あら?python error出ました。
crack_password()の辞書ファイル読むところで、UnicodeDecodeErrorです。
うーん、エラー解消できず、本日はここまで。

おいおい、2to3なんて便利なもんがあるやないか。
apt install 2to3でインストールして、2to3 exploit.py -wで完了。
もう一度トライ。
あかん、同じエラー。
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xf1 in position 923: invalid continuation byte

で、Discordの#room-hintsで質問。

searchsploitはworkしたらしい。
https://www.exploit-db.com/searchsploit

Attachboxにはデフォでsearchsploit入っている。
searchsploit -uでupdate
searchsploit -t “CMS made simple”でタイトル検索
searchsploit -p 46635で詳細を確認
->File Type: Python script, ASCII text executable
なに?ASCIIじゃないとダメだったのか。。。。辞書ファイルがutf8だったはず。

python scriptは/opt/exploitdb/exploits/php/webapps/46635.pyに入っている。
ちょっと一度実行してみる。やっぱりpython3の文法エラー。2to3しようか。あれディクス空きがなくてインストールできない。。。searchsploit -uしたせいかも。
searchsploitは、いらんな。

Attackboxを起動し直して、2to3インストールして、辞書ファイルをiconv -f utf8 -t asciiしてみる。iconv: illegal input sequence at position 30787。まだか。
https://www.softel.co.jp/blogs/tech/archives/6033
-cで続行できるらしい。→ASCIIへ変換成功!

それでは、再度pythonスクリプトを実行。
TypeError: Unicode-objects must be encoded before hashing
辞書をASCIIにしたのに、ハッシュする変数はUnicodeなんかい。
https://qiita.com/naari3/items/8f2f5e7d42c2126b6aa2
スクリプトのhashlibに渡す文字列変数に.encode(‘utf-8’)を追加して、再トライ。

Password Cracking成功!!!長かったー

sshできるかも、port2222でssh listenしていたので、ssh -p 2222 [getしたuser]@[target]
パスワードを入力して、SSHログイン成功!!!

フラグをサクッと確認して、/home/配下に別のユーザー(sunbathさん)がいることも確認。

さて、ここからPrivilege Escalationです。

sunbathさんは下記いろんなグループに入っている。(cat /etc/group | grep sunbath)
adm, cdrom, sudo, dip, plugdev, lpadmin, sunbath, sambashare
sunbathさんになりたいけど、パスワードわからないしな。
mitchさんが何ができるか、sudo -lで確認。
(root) NOPASSWD: /usr/bin/vim
vimはノーパスでrootとして実行できるらしい。
vimでprivilege escalationする方法をググる。トップにGTFOBinsというサイトがある。
https://gtfobins.github.io/gtfobins/vim/
sudo vim -c ‘:!/bin/sh’
↑を実行するとインタラクティブシェルを生成できるらしい。
root昇格成功!!!

rootフラグを確認して、完了!

Please share this page: