ネットエージェントのセキュリティ問題のwrite up(n番煎じ)
例のアレです。
大体4月上旬にmondai10まで行ったんですが、あまり暇じゃなかったのでSD回収には行きませんでした。(多分解いた時には既に一番近いkansai1取られてました)
既にみっきーさんが執筆されてるwrite upです。
ネットエージェント最終面接問題 Write-up その1 - 犬アイコンのみっきー
ネットエージェント最終面接問題 Write-up その2 - 犬アイコンのみっきー
ネットエージェント最終面接問題 Write-up その3 - 犬アイコンのみっきー
ネットエージェント最終面接問題 Write-up エクストリームCTF編 - 犬アイコンのみっきー
完全にn番煎じで覚書みたいなものですが、こういう系のイベント?で惜しい所まで行けたのは初めてなので、残しておきたい的な意味でも書いてみます。
mondai1
LzYxMDIvcGouaGJwLy86cHR0aA==
い つ も の
base64で調べれば分かりますね。
"LzYxMDIvcGouaGJwLy86cHR0aA==" base64デコード ↓ "/6102/pj.hbp//:ptth" 反転 ↓ "http://pbh.jp/2016/" コマンド : echo LzYxMDIvcGouaGJwLy86cHR0aA== | base64 -D | rev
URLにアクセスすると、mondai2以降が入った「mondai.zip」を落とせます。
mondai2
zipを解凍すると、中にはmondai2.txtが。
2016の平方根の小数点以下2016桁目から20桁をパスワードにしました。
pythonでさっさと解こうとしましたが、そのままじゃ桁消えるじゃん!
ってことで、おとなしく" 平方根 多倍長 " とかで調べてゴリゴリやって解きました。
74571026133060730881
みっきーさんのwrite upを閲覧して知ったんですが、bcって桁数指定出来たんですね…たまに使ってたのに知らなかったです
excelやら使って時間かけてやってた自分がアホらしいです…
mondai3
mondai3.zipを解凍した中にはmondai3.txtが。
ハッシュパスワード問題 答え:3つの答えをつなげて 0f1aae8b8398c20f81e1c36e349a7880c9234c63 01821f5469967540a5a774197463e8c4d658f588 264f39cab871e4cfd65b3a002f7255888bb5ed97
md5やらSHA-512やらのHash関数は一方向関数(とかなんとか言う)なので、デコードは出来ないものです。
ですが、同じ文字列を通すと必ず同じHashが生成されるので、これを利用してブルートフォース的に様々な文字列をHash化してDBにストアしてあるようなサイトは多々有ります。
こういうサイトを利用するのも手ですが、今回のはありきたりな文字列をHash化しているので、Hash値をgoogle先生に聞くだけで元の文字列が出てきます(弱いHashと言うべきかな?)。
google先生に聞くと、上から"tokyo", "ueno", "line" をHash化したものだと分かります。
tokyouenoline
mondai4
mondai4.zipを解凍した中にはmondai4.pngが。
なんだこの記号列!?
最初は「なんだっけこの記号…ピラミッドとか関係あった気がする…」とか思いながら調べました。ヒエログリフ文字ですね。
日本語(ローマ字)とある程度対応しているので、大人しく逆変換しましょう。
逆変換すると、何やら変な日本語が出てきます。
のらかちいくち てちのちんちもちみら もにみちもにみら もにとちのにみちもちい のらもらま
なんだこれ……
最初はなんの事だか分からなかったんですが、区切り区切りで色々検索してみると、「みかか変換」がヒットしました。
要するにかな入力と通常入力の相互変換ですね。
適当にみかか変換をしてくれるサイトで変換すると、
kotaeha wakayamano minamino misakinamae komoj
なんか最後がおかしいですが、「こたえは わかやまの みなみの みさきなまえ こもじ」となります。
これは「潮岬」であり、読みは「しおのみさき」、つまり
shionomisaki
となります。
…
……
………
あれ?パスが通らない…
ここでtwitter辺りで色々言われていたので、
「まさか漢字の読みが違うんじゃ」と思い、
綾波型駆逐艦10番艦であり艦隊これくしょんにも登場している駆逐艦、「潮(うしお)」が思い浮かんだので、
ushiomisaki
と入力。
解凍できました。
なんでやねん!
mondai5
mondai5.zip の中には 「mondai5」ファイル が。
file で調べてみるとテキストのようなのでとりあえず閲覧。
VjFjeFYySnRSbGhPUjJSUFlXeEZkMU5WVFhkVE1WSlVXa1pzVlZFeWFHNVRha1pLWTBWc2NsWlVR (中略) T2RGWnVWbUZSVnpnNVEyYzlQUW89Cg==
87行の文字列が出てきました。
どうみてもbase64です、本当にありがとうございました。
どうやら複数回エンコードしてあるようなので、デコードしたものをまたデコード、と数回行うと、
begin 644 - M'XL(`'R)"E4``POP9F;A8@`!SVE%;B+>Z0=-6!D80)@9*):7FNT4E6%IZ!BI ... (中略) ... M($_C8JMJ\\M+%;MWQ)X4>>CD;+.(]42`-R.3/0.N8E4%6HXH0&E@(<L%Y3`R E2#"(LFU]GY!X@1&=#O!F98.H860(!=*AK*`B"@"=?S8MP`4````` ` end
という文字列に。
なんかのファイルっぽいのは分かるので、一旦書き出してfileで確認してみる。
-% file a a: uuencoded or xxencoded text
uuencodeか〜〜デコードしますよ〜〜するする
-% uudecode -o hoge a
デコードしたものをfileで見ると、
-% file hoge hoge: gzip compressed data, from Unix, last modified: Thu Mar 19 17:31:56 2015
gzipか〜〜解凍するか〜〜
-% gunzip hoge.tar.gz
「nek」というファイルが。
-% file nek nek: bzip2 compressed data, block size = 900k
bzipか〜〜〜解凍しょ。。。
-% bunzip2 nek.bz2
お次は?
-% file nek nek: 7-zip archive data, version 0.3
7zipですか。解凍すると「n」というファイルが。
-% file n n: RAR archive data, v1d, os: Win32
RARですか。解凍すると「ne」というファイルが。
-% file ne ne: LHarc 1.x/ARX archive data [lh0]
LHarcって何…?って感じだったので調べて解凍。
-% lha -x ne nex - Melted : o -% file nex nex: xz compressed data
「nex」はxzファイル。解凍。
-% xz -d nex -c > moge -% file moge moge: data
むむ、fileで判別出来ない。
中身を見てみると、頭に「MSWIM」と書いてあるので調べてみる。 どうやら7zipで解凍出来るらしい。
-% 7z x moge 7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale=utf8,Utf16=on,HugeFiles=on,4 CPUs) Processing archive: moge Extracting QRcode Everything is Ok Size: 16052 Compressed: 17310
おっ、「QRcode」が出てきました。
-% file QRcode QRcode: Sun raster image data, 123 x 123, 8-bit, RGB colormap
どうやらSun raster imageだそうです。
ToyViewerとかで適当に見ると、
こんなQRコードが。読み取ると、
+BCcENQQxBEMEQAQwBEgEOgQw-
となる。 +で始まり-で終わる文字列といえば?
Чебурашка
となり、Чебурашка(チェブラーシカ)が答えになります。
ここで、文字コードの問題?でパスワードが合ってるのに解凍出来ない事案が発生したので、大人しくwindowsで解凍しました。
mondai6
mondai6.zipを解凍すると、mondai6.txtが。
http://49.212.84.208/cgi-bin/hode7hb376dgeas6df783gr4/mondai6.cgi
アクセスすると、「use R4000」の文字が。
ここで言うR4000とは、CPU(MPU)の事らしい。 R4000を積んだ状態でアクセスしろということ?
でもR4000が積んであるもの知らないよ…ということで色々調べてみると、 どうやらPSP(Play Station Portable)に積んであるらしいとのこと。
PSPのUA使ってアクセスするんじゃね?と思い、PSPのUAを調べることに。
以下のUAでアクセスすると、表示が変わります。
Mozilla/4.0 (PSP PlayStation Portable); 2.00)
よく見ると分かるんですが、このUA、カッコが足りないんですよね。 「PSP useragent」で調べてトップに出てくるサイトの記述がこうなっているんですが、 それをそのままコピペしてcgiに貼り付けてあるっぽいです。
それはさておき、表示が以下のようになります。
de la Bucure?ti
謎言語(ルーマニア語らしいです)。 ?が文字化けしているようなので、これを表示させるためにブラウザ(Chrome)の言語をルーマニア語にしてみました。 すると以下の表示が出てきました。
key: Minesweeper1990
ということでこれが答えみたいです。
mondai7
mondai7.zip を解凍すると、normal.exeが。
IDAとかollydbgとかで見てみます。
バイナリアンじゃないのでめちゃくちゃ苦労しましたが、
efyTUwxqrYHEFmduCJAXQpgKLBnhiltINPGOoszkMDvcjabSZRVW
という52文字があり、そこの 0x03, 0x24, 0x2b, 0x1b, 0x0f, 0x17, 0x2d, 0x25, 0x24, 0x0f つまり、 3,36,43,27,15,23,45,37,36,15 番目の文字を取ってきて入力文字と比較しているもよう。
よって
TochuKasou
が答えに。
mondai8
mondai8.zip を解凍すると、mondai8.tcが。 どうみてもフォレンジックスです、本当にありがとうございました。 マウントしてみます。
とりあえずそのまま見てみると、なんか有名な暗号たちの画像が。
AutopsyとかTSKとかを使うと、削除された「今日の本.xlsx」が出てきました。
見てみると、シート1にはアルファベットに謎の数字が当てられたものが、 シート2には謎の小説みたいなものが、 シート3にはkeyがpassword、answerが空白のセルが。
結構迷いましたが、シート1の謎の数字は、シート2の小説における行数と文字数に当てはまることが分かりました。
これにより、keyである「password」とシート1のアルファベット-数字を組み合わせ、
119, 161 62, 11 276, 40 276, 40 18, 58 239, 44 236, 7 185, 7
が出てきたので、これをシート2の小説の行数・文字数に当てはめ、その部分にある漢字を抜き出すと、
意気揚揚明鏡止水
と答えが出てきました。
mondai9
mondai9.zipを解凍すると、mondai9.pktとmondai10.tcが。
mondai9.pktはそのままパケットなので、Wireshark辺りに流し込みます。 すると、fast-uploader.comにファイルをアップロードする通信だと分かります。
POSTメソッドの通信だけを取って、アップロードされているファイルを抜き出すと、
excelファイルが2つ、wordファイルが1つ、パスワードの掛かったzip1つが入手できました。
excelファイルやwordファイルはタイトルが文字化けしており(中国語だから?) 、中身も何も書いてありませんでした。
ここで、コメントでも書いてあるかなーとか思って情報を見てみたら、wordファイルに何やらコメントが。
password: lastonemile
お!zipファイルのパスワードかな?と思い入力してみましたが、解凍できず…。
ここで試しにmondai10.tcに入力してみると、マウントできちゃいました。
パスの掛かったzipファイルは一体何だったんだ…?
mondai10
mondai10.tcをマウントすると、中にはtxtと画像ファイルが。
関東2ヶ所、関西2ヶ所のそれぞれの箇所にSDカードに最後の問題を隠した。今までのヒントと写真から位置を割り出せ。 各地先着1名 ヒント:石の下のミンティア
当然関東に行くような暇は無いので、関西のSDカードの場所を探してみます。
今までのヒントから読み取るのもアリですが、正直写真に埋め込まれた位置情報を見て場所を特定すれば大丈夫でした。
写真の位置情報を読み取ると、
にあることが分かりました。
島根県からだとどっちも遠い… 兵庫県はギリギリワンチャンという感じだったので、kansai1が4/20以降に残っていたら回収しに行こう!と思い立ち、計画を立てていました。
しかし、解いた時には既に回収されていたようで、他の人がkansai1を回収しに行った際に、もうSDカードはありませんでした。
まとめ
最終問題(SDカード回収)はクリア出来ませんでしたが、楽しませてもらいました。 2016年卒ですが高専の専攻科に行く予定だったので、正直SDカードを取って最終問題を解いても最終面接を受けるつもりは無かったのですが、やはり解いて達成感を味わいたかったです。
今回の問題たちはあまり突っ込んだ内容ではありませんでしたが、CTFは正直へなちょこなので、もっと勉強したいなーとか思いました。