automotiveCTF に参加しました. 30/382, 14/143 でした. 初めてチームで参加していました (!?).
自分が解いた or 関わった問題だけ writeup を書きます.
# writeup 書こうと思ったら問題サーバが一日足らずで閉じていたので (!?) 覚えている範囲だけです

OSINT

Scanning Plates

ナンバープレートを検索するとリトアニアの記事がでてきます. なので答えはリトアニア

I know a lot about cars

google photo で検索するとランボルギーニの記事が出てきます. 型も一緒に出てくるのでこれがこたえ

We’ll see in the Mach-E

ログファイルが渡されて,どの通りを通っていた?とかどのラジオを聴いていた?とかの質問に答えます. 頑張ってログを眺めて答えを見つけます.つらい...

DID Access

0x4915 で調べる

What is the VIN?

Ford のマスタングなので VIN は 3FM から始まります. これで頑張って探す

Street Names

ログを眺めると ~~dr みたいな記述があるのでこれをデコード

When were we driving?

ログを眺めると 2024 みたいな記述があります. これを含む行だけ抜き出すとよい. 良い感じにデコードして日付のフォーマットになるものを抜き出す

Steering Angle

ほぼ勘

Misc

I Lost my Tesla NFC Card

wireshark で HTTP エクスポートすると NFC を含んだ通信全体が見えます. これを hex decode します

Gameboy Game

Gameboy のチートを題材にした問題を見つけたのでこれに沿って解いていました. スコアを変動させればいい,というところまでたどり着いたんですが,スコアを変動させる方法が分からず断念したところ,チームメイトの方が解いてくれました.

一回は手でクリアする必要があるらしいです.大変だ…

Lost in the echo

sigrok で与えられたファイルを見ると,UART が見えるのでボーレートを計算してデコードします. 前半部と後半部でボーレートが変動するうえ,後半部だけテンプレートのボーレートではないので計算する必要があります. あとは anotation 取り出し,hexdecode, Caesar で OK

Siggy

まず画像を復元します.PNG のヘッダを追加するだけでOK
画像の LSB だけで再構築すると左上の方に変な QR コードが見えます.これを読み取ると 1s_we1rd が見えます. ここで詰まっていました.PNG の横幅変えるのか?でもフィルタとぶつかるな,とか google photo で画像検索すると何か分かるかな?とかいろいろ見てましたが,チームメイトの方が exiftool にフラグが隠されているのを教えてくれました. これ見つけられないのヤバすぎ…

Hobbyist

wireshark で POST のみ検索すると cardata.zip を POST している通信を見つけます. これを raw でダウンロードし,当該部分だけ抜き出すと select_car なるファイルを手に入れます. これをリバエンすると b64 encode されたフラグが見つかります

Reversing

want a password

IDA に dll を読ませてだらだら読んでると GeneratePassword の中に時間を管理している部分を見つけます. これが rand のシードになり,ひいては生成されるパスワードになります.
せっかくなので x64dbg の動的解析機能を使ってレジスタの値を変えて実行してみました. 何時か忘れましたが何時かのときに正しいパスワードが見つかります

steg

ivi

イメージファイルを testdisk で見ると zip が見つかります. zip のパスワードは strings で頭の方にあります.
イメージファイルのうち,二つ目のパーティションは LUKS で暗号化されています. この復号用パスワードは zip ファイルの中に書いてあります.
パーティションを覗くと GPS 情報が書いてあるテキストファイルを得ます. GPS visualizer でマッピングすると文字になり,これがフラグになります.

所感

ステガノとか forensics 系は苦手なので面白い問題を体験できてよかったです. 車系の問題がほとんどなかったし UDS の使いどころもなかったのが残念でしたが,CAN の読み方を集中して勉強できたのはいい経験になったかなと思います

(以下愚痴)
Radio がどうしても解けず,discord を眺めていると以下のような質問がありました
format to submit flag for Challenge: Radio?
この質問が出る時点で恐らく何かがおかしいと思うんですが,これに対してスタッフの方が以下のように回答していました
bh{}
一方で,正しい答えは 95.5 でした(チームメイトの方が解いてくれました…神).
「FM radio station」が聞かれているのに 95.5 なのもおかしいし(95.5 っていうラジオ局があったらすみません.),スタッフの方の回答が間違っているのも変だと思います(ちゃんと問題を把握していない?). 順位も大して高くないし,時間を割いて CTF を開いてくれること自体ありがたいことだと思いますが,これは CTF 運営の上手さというよりも,イベントごとに真摯に向き合うかどうかの問題だと思います…

納期のデーモンにやられたのかな…