はじめに
今回は難易度Easy
のルームtomghost
をやっていきたいと思います.
ポートスキャン
いつも通りのポートスキャンです.
sudo nmap -p- -vv -T4 -O -sV 10.10.212.123
今回はいつもと違って珍しくいろんなポートが開いてますね.
TomcatとかJservとかが動いてますね.
とりあえず8080番でHTTPが動いているので見てみます.
ルームの最初のほうに脆弱性関連のことが書かれていたので調べてみます.
「Tomcat 9.0.30 vulnerabilities」と調べるとそういう脆弱性があるようです.
参考:https://github.com/Hancheng-Lei/Hacking-Vulnerability-CVE-2020-1938-Ghostcat/blob/main/CVE-2020-1938.md
*これをそのままクローンして実行したらエラー出ますが少し修正すれば大丈夫です.
TypeError: makefile() got an unexpected keyword argument 'bufsize'のエラーはbufsize=0のbufsizeを消せばいけました.
TypeError: sequence item 0: expected str instance, bytes foundは最後のprintのクオーテーションの前にbを付ければいけます.
python3 CVE-2020-1938.py
第1引数は標的のIPアドレス,-pでJservのポートを指定します.
最初はtskyfuckで試してみましたが\t
もエスケープシーケンスですね.
これでSSHログインします.
ssh skyfuck@10.10.212.123
find / -name user.txt
で探してみます.
/home/marlin/user.txt
にあります.
Privilege escalation
取り合えずsudo -l
をしてみますが見れません.
credential.pgp
とtryhackme.asc
があります.
tryhackme.ascがPGPカギになっているようです.
gpg2john tryhackme.asc > hash.txt
sudo john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
gpg --import tryhackme.asc
gpg --decrypt credential.pgp
ここに先ほど解析したパスワードを入れる.
これでSSHログイン
ssh marlin@10.10.212.123
zip
コマンドが使えるみたいです.
gtfobinsで調べてみると使えそうなのがあったので試してみます.
root
になれました.
/root/root.txt
にあります.
おわりに
gtfobinsのありがたさを感じましたね.
PGPやASCファイルについては全然詳しくないのでこの辺りも勉強したいと思います.