これは、2021/8/21~2021/9/4の期間で開催された、setodaNote CTFの OSINT 分野のwriteupです。全体writeupはこちら
tkys_with_love (30)
だいぶ元気なようだ。長期休暇中の後輩からメッセージが届きました。「どこにいると思います?コールサイン
C6DF6
の上ですよ!!」どうやら何か乗り物に乗っているようです。後輩が何に乗っているのか特定してください。フラグは後輩がいるという乗り物の正式名称を flag{} で囲んで答えてください。名称に空白が含まれている場合はアンダースコアでつないで回答してください。例えば This is a FLAG が名称である場合は flag{This_is_a_FLAG} のように答えてください。
C6DF6
で調べると、この船が出てきた。ロイヤルカリビアンの所持するクルーズ船らしい。
大文字小文字の指定がなかった&検索すると大文字の位置が説明によって微妙に違ったのでいくつか試したが、下記が正しいflagでした。
flag{Symphony_of_the_Seas}
Dorks (50)
あなたは組織が所有するドメインに関係するサイトの中で
login.php
が不用意に公開されていないかを Google を使って確認するように依頼を受けました。login.php
が利用されているかどうかは、ある5文字の検索演算子をひとつ使えば調査することができそうです。Google で login.php を URL に含むページを検索するための検索語句を検索演算子を含めてすべて小文字 でフラグ形式にして答えてください。
例えばファイルタイプを限定する filetype の検索演算子で pdf を検索するための検索語句を答える場合は flag{filetype:pdf} となります。
URLに特定の単語を含むかの検索は inurl
検索演算子が使えるので、答えはinurl:login.php
。
filters_op (50)
Twitter アカウント @cas_nisc が2017年5月15日にツイートした注意喚起に付与されている英字のハッシュタグをフラグ形式で答えてください。
例えば付与されていたのが「#HashTag」であればフラグは flag{#HashTag} となります。
@cas_nisc
はNISC内閣サイバーセキュリティセンターの公式アカウント。
NISC内閣サイバーセキュリティセンター (@cas_nisc) | Twitter
2017年のツイートなので古い。日時を絞って検索します。
https://twitter.com/search?q=(from:cas_nisc) until:2017-05-16 since:2017-05-15
ハッシュタグが二個ついていましたが、英字のは一つ。答えは #WannaCrypt
。
MAC (50)
友人が簡単な暗号を作ったから意見を聞かせてほしいと言ってきました。公開情報に基づき解くことができるといいます。あなたは暗号文を解いてみることにしました。
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}
暗号文を解きフラグを得てください。
タイトルがMACだったので、公開されているMACアドレスのOUI情報(MACアドレスの前半部分で、ベンダーが取得している)をhttps://ouilookup.com/search/で検索してみると、
00:03:93 = Apple 00:01:A9 = BMW AG 04:2A:E2 = Cisco
だったので、所持している会社の頭文字が暗号になっている事がわかる。問題のOUIを同様に検索して変換すると、flag{O_U_I_Y_A}
tkys_eys_only (50)
送られてきたデータが端末に表示されます。後輩の活躍により、監視対象者が操作していた端末画面の取得に成功しました。映し出された画面はある組織の所在地に関する情報を含んでいます。画像を解析し、所在地に最も関係する組織名を特定してください。
添付されたファイルを解析し、所在地に最も関係する組織の名称を英語表記で答えてください。名称にスペースがある場合はアンダースコアに置換しフラグ形式で回答してください。
例えば組織名が
International Criminal Police Organization
だった場合はflag{International_Criminal_Police_Organization}
となります。
配布された画像は、お天気サイトの画面が。urlが途中まで載っているので見てみるとhttps://forecast.weather.gov/MapClick.php?lat=40.749444&lon=-73.968056
。(lonのマイナスを付け忘れてハマってた)
google mapで 40.749444, -73.968056
と入れ、緯度経度検索すると、"United Nations Secretariat Building, 405 E 42nd St, New York, NY 10017, USA" というのが出てきました。なんのビルだろう。
United Nations Secretariat Building - Wikipedia
wikipediaによると、"United Nations"(国連)の管理下にあると考えられている、とのことなので、これをflagにして突っ込むと通った👍
MITRE (100)
識別子があることを知っておくことは共通の認識をもつために必要なことでしょう。ですが、すべての識別子を覚える必要はないと思います。そういう理由で私はこの課題に必要性を感じません。そう説得したが教官は首を縦に振ってはくれなかった。そして、私はこれからこの文字列を解読しなければならない。
T1495T1152T1155T1144 T1130T1518 flag{T1170T1118T1099T1496T1212_T1531T1080T1127T1020T1081T1208_T1112T1098T1199T1159T1183T1220_T1111T1147T1220}
フラグに英字が含まれる場合はすべて大文字で答えてください。
MITREの識別子を使った問題のようだ。MITREについては こちら のとおり、攻撃者の攻撃方法や行動・目的を明文化したフレームワークのこと。それぞれに識別子がつけられているので、これを検索して適切な文字列に置き換えられれば良さそう。
こちらの一覧から、該当する識別子のタイトルを抜き出して頭文字をつなげれば良さそう。一覧に出ていないものがあったので、https://attack.mitre.org/techniques/
の先に識別子を入れたURLにアクセスしていくと、タイトルが全部確認できました。
https://attack.mitre.org/techniques
T1495: Firmware Corruption T1152: Launchctl T1155: AppleScript T1144: Gatekeeper Bypass T1130: Install Root Certificate T1518: Software Discovery
この時点で "FLAG IS" なのであってそう。めんどくさいけど、残りも同様に頑張った。
T1170: Mshta T1118: InstallUtil T1099: 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: Credentials In Files T1208: Kerberoasting _ T1112: Modify Registry T1098: Account Manipulation T1199: Trusted Relationship T1159: Launch Agent T1183: Image File Execution Options Injection T1220: XSL Script Processing _ T1111: Two-Factor Authentication Interception T1147: Hidden Users T1220: XSL Script Processing
頭文字をつなげると
FLAG IS flag{MITRE_ATTACK_MATLIX_THX}
Ropeway (120)
休暇中の同僚から写真が送られてきました。あるロープウェイから撮られた写真とのこと。そしてもし写真から撮影場所が特定できたらいい地酒をお土産に買ってくれると言います。あなたは仕掛中の仕事を脇に置き、写真の解析を始めました。
添付されたファイルを解析し、ロープウェイ名称を英小文字のフラグ形式で答えてください。例えばロープウェイの名前が「瀬戸田ロープウェイ」の場合、フラグは flag{setoda} となります。
こんな画像が添付されています。見たことないけど、湖が2つか3つ見える。入り組んだ地形のようだ。流石にmetadataに位置情報は載っていない。
google画像検索にエイヤッと投げてみたところ、浜名湖周りのサジェストが出たので、浜名湖のロープウェイで探してみると、「かんざんじロープウェイ」というのっぽい。
浜名湖かんざんじ温泉観光協会のサイトが「kanzanji」表記のドメインだったので、きっとこれがフラグ!とおもってflagフォーマットで囲むと、通りました👍
N-th_prime (200)
電車の中で誰かの会話が聞こえてきます。
「巨大な素数の秘密を知っているか兄者」「知っているとも弟者。巨大な素数は秘密を守る要なのさ」「兄者、1番目の素数は?」「2 だ」「2番目の素数は?」「3 だ」「数え上げて 72057594037927936 番目の素数は?」「・・・」「兄者マテッ!ときに落ち着けって!」
数え上げて 72057594037927936 番目の素数をフラグ形式で答えてください。例えば 11 だった場合は flag{11} と答えてください。
なぜこれがCryptoでなくてOSINTにいるのか…?それはきっとググれば答えが出てくるからに違いない!といういことでググってみた。
72057594037927936という数は、2の56乗らしい。
…というところまではわかったけど、全然ヒットせず。他のかたのwriteupで復習。
下記、検索のアプローチなど大変参考にさせていただきました。
まとめると、N-th prime (Nが大きい時)を求めるので使えるサイトは
- PrimePage Primes: The Nth Prime Page
- 1,000,000,000,000thまで求められるが、今回はそれ以上(なので今回は使えない)
- The On-Line Encyclopedia of Integer Sequences® (OEIS®)
- OEIS(The On-Line Encyclopedia of Integer Sequences)
- 様々な整数の数列を出してくれるサイト
- 2N th prime の数列の最初の方を検索に入れると、候補を出してくれる
- mersenneforum.org - View Single Post - Riemann, Goldbach does not know!
- ググったらここにたどり着いたという人が。(question: 2N th prime rate)
- わかっている限りの2N th prime の数列で検索するとたどり着いた模様
特に上の2つのサイトは今後もお世話になりそう。
他、このサイズのNだと厳しかったようですが、プログラムを組んだりmessieでN-th primeを計算するというアプローチもありました。(私も最初プログラムを組みかけたが、どう考えても無理そう&OSINT枠だったので検索にアプローチを絞りました)
identify_the_source (250)
組織はある攻撃者グループの動向を調査しています。あなたは旧知の情報提供者からその攻撃者グループが攻撃に利用しようとしているというファイルを入手することに成功しました。情報提供者はファイルの配布元URLの情報も持っているようですが、そちらの情報を入手するためには高額な対価が必要となりそうです。あなたが自由にできる予算は限られています。巧みな話術でどうやらあるマルウェア解析サイトから取得した情報であるようだというところまでは聞き出せました。組織はあなたに配布元URLを特定し、攻撃を未然に防ぐとともに攻撃者グループに関する重要な情報が含まれていないか調査するよう指示を出しました。
添付されたファイルを解析して関連する配布URLを特定、調査し、フラグを入手してください。
配布されたファイルは形式不明のdata。less
コマンドで中身を見てみると、最後に
The flag was written on a website where you would have been able to download this file.
と書いてあります。
このファイルのHash(SHA256)は64f10be20a97f7d25fd23d48e563cc391c54882c97d1c232832ea6beb61ca1da
。
MD5は 692d63870043c597ad56bcfba440dc89
いくつかマルウェア解析サイトを巡ってみて、下記のサイトでそれっぽい手がかりを発見。
https://www.hybrid-analysis.com/
こちらで、Hash検索してみると、tsuru
という検体が引っかかります。
こちらのサイトは無料で検体をDLできるとの情報があったのでリンクを探してみると、
hxxps://yrsuccessesareunheraldedyrfailuresaretrumpeted.setodanote.net/tsuru
のhxxpsをhttpsに直して飛んでみると
うーん。Nice Tryでflagではない…。
この線であってそうなので、ドメイン名yrsuccessesareunheraldedyrfailuresaretrumpeted
でググってみると、web魚拓がいっぱい出てきた!その中でも7/15の魚拓には履歴がたくさん残っていて、その中の一つにflagがありました👍
secret_operation (300)
あなたと同僚は敵対組織が秘密裏に進めているオペレーションの調査を命じられました。
「どうやら事を起こそうとしているようだ。」
調査開始からしばらく経った頃、同僚からある画像が届きました。それはかなり不鮮明だったものの、どこかの Web ページを写したと思われる画像データでした。詳細を確認しようと同僚と連絡をとろうとしましたが返信はなく、同僚からの連絡はそれを最後に途絶えてしまいました。画像の Web ページを調査し敵対組織が秘密裏に進めているオペレーションを明らかにしなければ。
添付されたファイルを解析し、フラグを得てください。
配布されたファイルはこの画像。この画像から読み取れる情報を手当り次第試してみます。
上のバーに表示されているURLhttps://green-pond-97ff.setodanote.net
を踏んでみると
自分の現在のCity, Region, Country, Timezone が表示されています。
これをもしかして、画像の中の条件に合わせることができると情報が得られるかも?
Information Display The time is always right to do what is right. Your info City: St Petersburg Region: St.-Petersburg Country: RU Timezone Europe/Moscow (petersburgがロシアのモスクワ時刻らしいので)
まずは素の状態で得られる情報。(curl
使用)
$ curl https://green-pond-97ff.setodanote.net <!DOCTYPE html> <body> <head> <title>Information Display</title> <link href="https://use.fontawesome.com/releases/v5.15.1/css/all.css" rel="stylesheet"> <style> body{padding:6em; font-family: sans-serif;} h1{color:#f6821f} h2{color:#f6821f} .icon.brands:before {font-family: 'Font Awesome 5 Brands';} .fa-twitter:before {content: "\f099"; color: #00acee;} a {text-decoration:none; color: #00acee;} </style> </head> <h1>Information Display</h1> <p>The time is always right to do what is right. </p> <!-- <p class="icon brands fa-twitter"> Twitter </p> --><br /><h2>Your info</h2><p> City: Brighton</p><p> Region: England</p><p> Country: GB</p><!-- <p> Latitude: xxx</p> --><!-- <p> Longitude: xxx</p> --><!-- временно удалён --><p> Timezone: Europe/London</p>
はい、私今イギリスのブライトンにいます。
位置情報を取得している+ロシア語で「一時的に削除」とコメントしているようなので、これをごまかして送れないかやってみます。
ヘッダに X-Forwarded-For
でIPを偽装して送ってみたりしたが、違うところを見ているようで反映されず。
TorブラウザでIPをごまかせるなら、指定できないかといろいろ調べてみたけど方法が見つからず。メニューからNew Tor Circuit for this Site
を選ぶと出口IPが変更できるので、ランダムでひょっこり正解付近の出口ノード引くのを期待してリフレッシュしまくったけどロシアは引けず。
ここで時間切れでした。
他の方のwriteup読んでみたところ、Torブラウザの出口ノードの国固定なんて方法があるの!?これをやりたかったんだ〜!!
ということで試してみた。
CTF用の仮想環境をLinuxで構築してそこでいじるのが安全面からも情報量の多さ的にも絶対良いのだけど、試しにMac上で上記をやってみた。torrc
のpathは
~/Library/Application Support/TorBrowser-Data/Tor/torrc
だったので、このファイルの末尾に
ExitNodes {ru} StrictNodes 1
を書き足してTorのidentityを更新したところ、違う画面が出てきました!
さっきは見えなかったtwitterのアカウント情報もちゃんと書かれています!どんな人でしょう。
このtwitterアカウントを深堀りすることに。
フォローしているのはPresident of Russia
(公式)だけなので、こちらの情報はなさそう。フォロワーは0。ツイート数は59。画像つきのツイートもいくつかしています。
ダーッとツイートを見てみて、気になったのがこの最初のツイート。キリル文字で写真を撮った人の名前が書いてある。
ロシア語のアルファベット入力キーボード。変換不要!一覧から文字を選択 | やまでら くみこ のレシピでキリル文字をテキストに起こしてみました。
Лечение Наркомании
ぐぐってみると、薬物・中毒治療に関する説明やサイトがたくさん出てきた。最初の画像にあったサンクトペテルブルクにも実用医学研究所というのが有るらしい。関係あるかな?
とりあえずこの写真だけ重要っぽい雰囲気あるので、ダウンロードしてforemost
かけてみた。
$ foremost suspective.png Processing: suspective.png |foundat=YXV0aC5wbmc?PNG *|
おや。様子がおかしい。出力結果をみてみると、zipファイルが抽出されていました。出てきたファイルはこちら。
$ file YXV0aC5wbmc YXV0aC5wbmc: PNG image data, 407 x 57, 8-bit/color RGB, non-interlaced
これファイル名をbase64 decoceすると、auth.png
だ。これは怪しい。中身はこちら。
Userに関するヒントとPasswordが!UserはtwitterのbioがJ.S
とだけ書いてあるのでこれっぽい。これなんのアカウントだろう?
と思って、ロシアからしかアクセスできなかったサイトのページをもう一度見てみると、一番下にリンクがついてる。リンク先に飛ぶとUser,Passを要求されるので、上でGetしたやつを入れると通った🚩
今回はTorブラウザでの出口ノード国固定を覚えたので、大収穫だった!競技中チャット調べた情報ではたどり着けなかったので、皆さんのwriteup読んでよかった。