前のエントリでグローバル決勝進出の旨を書いたが、この度デトロイトで開催されたAutomotive CTF 2024のグローバル決勝に参加してきた。結果は4位だった。
続きを読むAutomotive CTF Japan決勝に参加した&writeup
9/13(金)に行われたAutomotive CTF Japanの決勝に「TeamONE」のメンバーとして参加してきた。結果は2位で、米国デトロイトで開催される「Automotive CTF 2024」の決勝に参加できることに。
Shield Stoneを観戦した
クラウドファンディングを開始して即日目標金額を達成していたShield Stone。支援の特典である現地観戦権で6/22に開催された競技会を観戦してきた。
やっぱりレポートを書く取り掛かりが遅い。はい。
Micro Hardening v2に参加した
今年のHardeningが始動したようで、キックオフがあった。その中でMicro Hardening v2が開催されそこに参加したので参加レポート。
いつも通り取り掛かりが遅い。はい。
大和セキュリティ勉強会: AWSインシデント対応入門 に参加した
4/6に神戸であった、大和セキュリティの勉強会「AWSインシデント対応入門」に参加してきたというレポ。
続きを読むZANSINを使っておうちでMINI Hardening v4を楽しもう
Black Hat Asia 2024 ArsenalでMINI Hardeningの方々によるZANSINが公開された。
なんと、ZANSINを使うことでMINI Hardeningのv4を自宅で動かすことができちゃう。
しかも環境が手元にあるので何度も繰り返し実施して腕を磨くことができる。やったぜ。MINI Hardening v4についてはこちらを参照。
というわけで手元で動かしてみた。
続きを読む防衛省サイバーコンテスト2024 (Feb.) writeup
TsukuCTF 2023 writeup #TsukuCTF
TsukuCTF 2023に参加したのでwriteupをば。TsukuCTFといえばOSINTなのにOSINT問やってません。
web – basic
WireSharkで開いてみるとHTTP通信をしている。httpでフィルタするとこんな感じ。401 Unauthorized
が返ってきた後のリクエストでAuthorization
ヘッダにID/パスワード載せて送っている。
Flag: TsukuCTF23{2929b0u4}
ちなみに最速の正解者は44秒で回答してる。マジかよ。
misc – what_os
tty.txt
を見てみると、/etc/uids
という見慣れないファイルがあることに気づく。
# chdir etc
# ls -al
total 34
104 sdrwr- 2 root 110 Jan 1 00:00:00 .
41 sdrwr- 7 root 70 Jan 1 00:00:00 ..
106 lxrwr- 1 bin 5778 Jan 1 00:00:00 as2
105 sxrwr- 1 bin 446 Jan 1 00:00:00 getty
107 sxrwr- 1 sys 2662 Jan 1 00:00:00 glob
108 sxrwr- 1 sys 1192 Jan 1 00:00:00 init
109 sxrwr- 1 sys 186 Jan 1 00:00:00 msh
110 s-rw-- 1 sys 272 Jan 1 00:00:00 passwd
111 s-rwr- 1 root 512 Jan 1 00:00:00 std0
112 s-rwr- 1 bin 2082 Jan 1 00:00:00 suftab
113 s-rwr- 1 sys 88 Jan 1 00:00:00 <strong>uids</strong>
"/etc/uids"
でググると印刷した紙をスキャンしたPDFが出てくる。ベル研って今ノキア傘下なんですね。
これは最初期のUNIXのマニュアル。これがフラグ。
余談だけど、フラグフォーマットがTsukuCTF23{xxx}
で指定されてるのにずっとxxx
をSubmitしててIncorrectになって時間溶かしまくった。あほ。
Flag: TsukuCTF23{UNIX}
他に使えそうな情報
- ファイル編集に
ed
を使っている。昔はvi
やemacs
なんてなかったのだ。 cd
ではなくchdir
を使っている。/usr/sys/maki.s
ググると同様にUNIXの情報が出てくる。cal
で1971年(最初のUNIXがリリースされた年)のカレンダーを表示している。ken
はケン・トンプソン。dmr
はデニス・リッチー (Dennis MacAlistair Ritchie)
misc – build_error
配布ファイルを同じフォルダにおいてmake
すると以下のエラーが出る。
$ make
cc main.o one.o -no-pie
/usr/bin/ld: main.o: in function `main':
main.c:(.text+0x8b): undefined reference to `a'
/usr/bin/ld: main.c:(.text+0x92): undefined reference to `b'
collect2: error: ld returned 1 exit status
make: *** [Makefile:4: all] Error 1
main.o
とone.o
をIDAに食わせて見てみると、main.o
からはone_init, a, b, c
を参照しているのにone.o
のExportテーブルにはone_init, c
しかない。
main.o
とone.o
のIDAでのデコンパイル結果は以下の通り。
int __fastcall main(int argc, const char **argv, const char **envp)
{
int i; // [rsp+4h] [rbp-2Ch]
__int64 v5; // [rsp+8h] [rbp-28h]
__int64 v6; // [rsp+10h] [rbp-20h]
__int64 v7; // [rsp+18h] [rbp-18h]
__int64 v8; // [rsp+20h] [rbp-10h]
v5 = 12LL;
v6 = 11LL;
v7 = 75LL;
one_init(argc, argv, envp);
for ( i = 0; v6 > i; ++i )
{
if ( v5 > i )
++v7;
if ( v7 < i )
++v6;
++v5;
}
v8 = v6 + v5 + v7;
if ( v8 == b + a + c )
printf("flag is %ld\n", v8);
else
puts("please retry");
return 0;
}
__int64 one_init()
{
__int64 result; // rax
int i; // [rsp+0h] [rbp-4h]
a = 12LL;
b = 11LL;
c = 75LL;
for ( i = 0; ; ++i )
{
result = b;
if ( i >= (unsigned __int64)b )
break;
if ( i < (unsigned __int64)a )
++c;
if ( c < (unsigned __int64)i )
++b;
++a;
}
return result;
}
main
の中でone_init
の後にやっている処理はone_init
とまったく同じ処理であることがわかる。one_init
の処理は引数もなく関数外の値に依存せず常に同じ結果になるので、この関数だけ切り出して実行してみればa, b, c
の値がわかる。
a = 23
b = 11
c = 86
Flag: TsukuCTF23{120}
rev – title_screen
配布されたファイルは以下の3つ
- character.bmp
- main.asm
- main.cfg
main.asm
内の命令をググるとどうやら6502
というCPUであることがわかる(冒頭に書いてあるのには気づかなかった!)
どうやらファミコンで使われていたものらしい。画像も見てみると8×8の画像が並んでいる感じで文字も含まれている。ということでこれはファミコンのプログラムだなと推測できる。
細かく処理を追っていきたかったが、時間がなかったのでCTFを解く思考に変えた。
どの画像をどういう順番で表示するかをどこかで指定しているはず。
→ざっと見てアセンブラコードにはなさそう
→下の方にdata
というデータ列がある
→これがそうに違いない
→各バイトの上4bitをY軸のインデックス、下4ビットをX軸のインデックスと考えるとちょうど文字のところにあたってよさそう
→解読するとTsukushi_Quest
になる(一番最後は文字じゃない画像なので無視)
Flag: TsukuCTF23{Tsukushi_Quest}
最初、TsukuCTF23{xxx}
の形で出てくると思っていたのでTsu
までうまくいった時点で勝利を確信したが、実際はちょっと違った。ゲームタイトルがTsu
で始まってなかったらもうちょっと疑いながらやって時間かかったかもしれない。
感想
OSINT問は手を付けていなかったので難易度のほどはわからないけど、他の問題は易しめの難易度でよかった。でもWebは解けない。Writeupみて精進します。
防衛省サイバーコンテスト2023 writeup
MINI Hardening 4.5に参加した / Hardeningに参加しよう
去る6月17日、MINI Hardening 4 Returns #4.5@未来研究所に参加した。
何だかんだと参加レポートを書かずにいたのでやる気を振り絞って書いてみた。
遅いよ。知ってる。