🛡️

setodaNote CTF Exhibition Writeup (OSINT)

2024/10/16に公開

OSINT - tkys_with_love

だいぶ元気なようだ。長期休暇中の後輩からメッセージが届きました。「どこにいると思います?コールサイン C6DF6 の上ですよ!!」どうやら何か乗り物に乗っているようです。後輩が何に乗っているのか特定してください。

後輩が乗っているという乗り物の正式名称を特定してください。

フラグは乗り物の名称をフラグ形式で答えてください。名称に英字や空白が含まれている場合はすべて英小文字で、空白をアンダースコアに置き換えて回答してください。例えば This is a FLAG が名称である場合は flag{this_is_a_flag} のように答えてください。

コールサインとは無線通信で用いられる信号のことです。
「コールサイン」「C6DF6」でGoogle検索すると、以下のWebサイトがヒットします。

https://idyllicocean.com/vdb/ship18_vsl_info.php?id=2975

正答:flag{symphony_of_the_seas}

OSINT - Dorks

あなたは組織が所有するドメインの Web サイトで login.php が不用意に公開されていないかを Google を使って確認するように依頼を受けました。

あるドメインに限定して検索するには検索演算子 site を使えばよさそうです。さらに login.php が利用されているかどうかも、ある5文字の検索演算子をひとつ使えば検索できそうです。

Google で login.php を URL に含むページを検索するための検索語句を検索演算子を含めて フラグ形式にして答えてください。

英字が含まれる場合はすべて英小文字で答えてください。例えばファイルタイプを限定する filetype の検索演算子で pdf を検索するための検索語句を答える場合は flag{filetype:pdf} となります。

問題タイトルにある(Google)DorksとはGoogle検索のコマンドのことです。
今回はURLにlogin.phpという文字列を含むWebサイトを検索すればよいので、inurl:login.phpとなります。

正答:flag{inurl:login.php}

OSINT - filters_op

Twitter アカウント @cas_nisc が2017年5月15日にツイートした注意喚起に付与されている英字のハッシュタグをフラグ形式で答えてください。

例えば付与されていたのが「#HashTag」であればフラグは flag{#HashTag} となります。

Twitter(X)の検索欄に「from:@cas_nisc since:2017-05-15 until:2017-05-16」と入力すると、以下のポストを発見できます。

https://x.com/cas_nisc/status/864058208536543232

正答:flag{#WannaCrypt}

OSINT - MAC

友人が簡単な暗号を作ったから意見を聞かせてほしいと言ってきました。公開情報に基づき解くことができるといいます。あなたは暗号文を解いてみることにしました。

00:03:93 = A
00:01:A9 = B
04:2A:E2 = C

上記の通り変換されるとき、以下の文字列はどうなるか。

flag{2C:C2:60_FC:EC:DA_00:02:B3_AC:44:F2_FC:4E:A4}

暗号文を解きフラグを得てください。

以下のWebサイトにて「00:03:93」・「00:01:A9」・「04:2A:E2」を検索すると、それぞれ「Apple, Inc.」・「BMW AG」・「Cisco Systems, Inc」がヒットします。
つまり、MACアドレスの最初の3バイトに対応するベンダの頭文字に変換すればよさそうです。

https://uic.jp/mac/

2C:C2:60」・「FC:EC:DA」・「00:02:B3」・「AC:44:F2」・「FC:4E:A4」を検索すると、「Oracle Corporation」・「Ubiquiti Inc」・「Intel Corporation」・「YAMAHA CORPORATION」・「Apple, Inc.」がヒットします。

正答:flag{O_U_I_Y_A}

OSINT - tkys_eys_only

送られてきたデータが端末に表示されます。後輩の活躍により、監視対象者が操作していた端末画面の取得に成功しました。映し出された画面はある組織の所在地に関する情報を含んでいます。画像を解析し、所在地に最も関係する組織名を特定してください。

添付されたファイルを解析し、所在地に最も関係する組織の名称を英語表記で答えてください。名称にスペースがある場合はアンダースコアに置換しフラグ形式で回答してください。

例えば組織名が International Criminal Police Organization だった場合は flag{International_Criminal_Police_Organization} となります。

問題にはscreen.jpgとして以下の画像が添付されています。

アドレスバーにはhttps://forecast.weather.gov/MapClick.php?lat=40.749444&lon=-73.968056とありますが、latパラメータは緯度(Latitude)、lonパラメータは経度(Longitude)を表していると推測できます。
そこで、Googleマップにて「40.749444, -73.968056」で検索してみます。

すると、近くに国際連合本部ビル(United Nations Headquarters)があると分かります。

正答:flag{United_Nations}

OSINT - MITRE

識別子があることを知っておくことは共通の認識をもつために必要なことでしょう。ですが、すべての識別子を覚える必要はないと思います。そういう理由で私はこの課題に必要性を感じません。そう説得したが教官は首を縦に振ってはくれなかった。そして、私はこれからこの文字列を解読しなければならない。

T1495T1152T1155T1144 T1130T1518 flag{T1170T1118T1099T1496T1212_T1531T1080T1127T1020T1081T1208_T1112T1098T1199T1159T1183T1220_T1221T1147T1220}

問題タイトルの「MITRE」と問題文末の形式からMITRE ATT&CKのTechniquesの識別子だと分かります。

https://attack.mitre.org/techniques/enterprise/

https://attack.mitre.org/techniques/」+「識別子」をアドレスバーに入力し、各識別子に対応するTechniques名を調べると以下のようになります(時々リダイレクトされますが気にせず調べます)。

  • T1495:Firmware Corruption
  • T1152:System Services: Launchctl
  • T1155:Command and Scripting Interpreter: AppleScript
  • T1144:Subvert Trust Controls: Gatekeeper Bypass
  • T1130:Subvert Trust Controls: Install Root Certificate
  • T1518:Software Discovery
  • T1170:System Binary Proxy Execution: Mshta
  • T1118:System Binary Proxy Execution: InstallUtil
  • T1099:Indicator Removal: Timestomp
  • T1496:Resource Hijacking
  • T1212:Exploitation for Credential Access
  • T1531:Account Access Removal
  • T1080:Taint Shared Content
  • T1127:Trusted Developer Utilities Proxy Execution
  • T1020:Automated Exfiltration
  • T1081:Unsecured Credentials: Credentials In Files
  • T1208:Steal or Forge Kerberos Tickets: Kerberoasting
  • T1112:Modify Registry
  • T1098:Account Manipulation
  • T1199:Trusted Relationship
  • T1159:Create or Modify System Process: Launch Agent
  • T1183:Event Triggered Execution: Image File Execution Options Injection
  • T1220:XSL Script Processing
  • T1221:Template Injection
  • T1147:Hide Artifacts: Hidden Users
  • T1220:XSL Script Processing

頭文字(「:」がある場合は「:」以降の頭文字)を並べると

FLAG IS flag{MITRE_ATTACK_MATLIX_THX}

正答:flag{MITRE_ATTACK_MATLIX_THX}

OSINT - Ropeway

休暇中の同僚から写真が送られてきました。あるロープウェイから撮られた写真とのこと。そしてもし写真から撮影場所が特定できたらいい地酒をお土産に買ってくれると言います。あなたは仕掛中の仕事を脇に置き、写真の解析を始めました。

添付されたファイルを解析し、ロープウェイ名称を英小文字のフラグ形式で答えてください。例えばロープウェイの名前が「瀬戸田ロープウェイ」の場合、フラグは flag{setoda} となります。

問題にはropeway.jpgとして以下の画像が添付されています。

この画像をGoogle画像検索で検索してみると、似たような画像が多数ヒットし、舘山寺ロープウェイであることが分かります。

正答:flag{kanzanji}

OSINT - N-th_prime

電車の中で誰かの会話が聞こえてきます。

「巨大な素数の秘密を知っているか兄者」「知っているとも弟者。巨大な素数は秘密を守る要なのさ」「兄者、1番目の素数は?」「2 だ」「2番目の素数は?」「3 だ」「数え上げて 72057594037927936 番目の素数は?」「・・・」「兄者マテッ!ときに落ち着けって!」

数え上げて 72057594037927936 番目の素数をフラグ形式で答えてください。例えば 11 だった場合は flag{11} と答えてください。

「72057594037927936」をGoogle検索すると72057594037927936 = 2^{56}であることが分かります。
次に、整数列のデータベースであるThe On-Line Encyclopedia of Integer Sequences (OEIS)にて、2^n番目の素数列があるか調査します。

https://oeis.org/

  • 2^1番目の素数:2
  • 2^2番目の素数:3
  • 2^3番目の素数:7
  • 2^4番目の素数:19
  • 2^5番目の素数: 53

より、「2, 3, 7, 19, 53」で検索してみます。

以下の表より、2^{56}番目の素数は2991614170035124397です。

https://oeis.org/A033844/b033844.txt

正答:flag{2991614170035124397}

OSINT - identify_the_source

組織はある攻撃者グループの動向を調査しています。あなたは旧知の情報提供者からその攻撃者グループが攻撃に利用しようとしているというファイルを入手することに成功しました。情報提供者はファイルの配布元URLの情報も持っているようですが、そちらの情報を入手するためには高額な対価が必要となりそうです。あなたが自由にできる予算は限られています。巧みな話術でどうやらあるマルウェア解析サイトから取得した情報であるようだというところまでは聞き出せました。組織はあなたに配布元URLを特定し、攻撃を未然に防ぐとともに攻撃者グループに関する重要な情報が含まれていないか調査するよう指示を出しました。

添付されたファイルを解析して関連する配布URLを特定、調査し、フラグを入手してください。

問題にはtsuruという謎のファイルが添付されており、fileコマンドでファイルの種類を調査しても中身を確認してもよく分かりません。
そこで、ファイルのSHA-256ハッシュ値「64f10be20a97f7d25fd23d48e563cc391c54882c97d1c232832ea6beb61ca1da」をANY.RUNのPublic submissionsで検索してみます。

https://app.any.run/submissions

すると、最も古いsubmissionsにURL「https://yrsuccessesareunheraldedyrfailuresaretrumpeted.setodanote.net/tsuru」が記載されています。
このURLにアクセスしてみると、「404 Not Found」と表示されます。
次に、「https://yrsuccessesareunheraldedyrfailuresaretrumpeted.setodanote.net/」にアクセスし、ページのソースを確認してみます。

<!DOCTYPE HTML>
<html>
	<head>
		<title>Good job</title>
		<meta charset="utf-8" />
		<link rel="stylesheet" href="main.css" />
	</head>
	<body>
        <p>NO DATA</p>
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<br />
	<p deleteTime="1626307200">The flag is no longer here.</p>
	</body>
</html>

flagはもうここにはない、つまり2021/07/15 09:00:00[1]以前はここにflagがあったと予想し、「https://yrsuccessesareunheraldedyrfailuresaretrumpeted.setodanote.net/」をWayback Machineで検索してみます。

https://web.archive.org/

2021/07/14 16:21:01のアーカイブのソースコードを見てみます(長いため一部省略しています)。

~省略~

<p>Now laoding...</p>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<p><!-- flag{No_one_cares_the_bomb_that_didn't_go_off} --></p>

~省略~

正答:flag{No_one_cares_the_bomb_that_didn't_go_off}

OSINT - secret_operation

あなたと同僚は敵対組織が秘密裏に進めているオペレーションの調査を命じられました。

「どうやら事を起こそうとしているようだ。」

調査開始からしばらく経った頃、同僚からある画像が届きました。それはかなり不鮮明だったものの、どこかの Web ページを写したと思われる画像データでした。詳細を確認しようと同僚と連絡をとろうとしましたが返信はなく、同僚からの連絡はそれを最後に途絶えてしまいました。画像の Web ページを調査し敵対組織が秘密裏に進めているオペレーションを明らかにしなければ。

添付されたファイルを解析し、フラグを得てください。

※ フラグを入手する上で必要となる外部サービスの仕様変更により、作成時の想定より解くことが難しくなっているため、ヒントを追加しました。何卒、ご了承ください。(2024年8月3日 追記)
What his favorite should have told you. (ヒント)
He found a way to pack data into PNG files on the SNS.

問題にはoperation-sculd.jpgとして以下の画像が添付されています。

まず、画像内のURL「https://green-pond-97ff.setodanote.net/」にアクセスしてみると、どうやらIPアドレスからアクセス元の場所を表示するサイトのようです。

operation-sculd.jpgではロシアからアクセスしているようなので、こちらもロシアのプロキシ経由でアクセスしてみます。

ページ最下部の「Link」(https://billowing-poetry-3254.setodanote.net/)はアクセスすると認証を求められるため、一旦放置しておきます。
次に、X(https://twitter.com/aarron142857)の方にアクセスしてみます。
すると、最初のポストに不自然な写真が掲載されているのでダウンロードしておきます。

https://x.com/aarron142857/status/1411688065207132165

ここで、問題文末のヒント「He found a way to pack data into PNG files on the SNS.」を使います。
「Twitter PNG データ 埋め込み」でGoogle検索してみると、以下の記事がヒットします。

https://news.mynavi.jp/techplus/article/20210322-1823367/

記事によると、XではPNGファイルに埋め込んだデータは一定の条件を満たしていれば削除されないそうです。
ちなみに、ヒント追加以前は他人のアカウントのいいね欄を閲覧することができたため、そこから以下のポストに辿り着けた[2]そうです。

https://x.com/David3141593/status/1371974874856587268

…というわけで、先ほどダウンロードした画像の拡張子をzipに変更して展開します。
すると、拡張子のないファイルが格納されていますが、内容を確認するとPNGから始まっているので、拡張子pngを付けて開いてみます。

認証を求められて一旦放置していたhttps://billowing-poetry-3254.setodanote.net/にユーザ名「J.S[3]、パスワード「right_next_to_you」でログインします。

正答:flag{=we_can_change_tomorrow=}

脚注
  1. deleteTimeの値である1626307200はUnixtime表記であり、変換すると2021/07/15 09:00:00となります。 ↩︎

  2. https://github.com/nmantani/ctf-writeups/blob/main/2021/setodaNote CTF/writeup.md#secret_operation-300-pts-39-solves ↩︎

  3. ユーザ名は「<< CHECK MY BIO >>」とあるので、Xのプロフィールを見ると「J.S」の記載があります。 ↩︎

Discussion