ニュース
A painter and a black cat: SECCON 2015 決勝大会・カンファレンスに行きました! (2コメント)
スタッフの皆様、出場者の皆様、登壇者の皆様、お疲れ様でした。
見学してただけの身ですが、本当に楽しかったです!
1日目 intercollege決勝大会(学生大会)¶
会場に入るなり、目に飛び込んできた TomoriNao のインパクトwwww
写真は配慮してねとのことなので、お見せできないのが残念ですが、私の脳内メモリには強い衝撃と共に記録されました。
ちなみに私(が参加させて頂いたチーム)は、オンライン予選では、このコスプレ、もとい生徒会長の集団に惜敗しております。
実力は本物です。
決勝は、attack&defenceという競技ルールで実施しておりました。ゲームバランスというか、得点の仕組みが絶妙で最後まで混戦状態でした。
競技者が何してたのか、見学している所からは判然としませんでしたが、1つの脆弱性を見つけるとそれを全相手チーム対して攻撃を行うよう自動化していたようですね。
優勝は、
文部科学大臣賞受賞だそうです。すげぇ。
A Dozen Year of Shellphish¶
海外のハッキングチーム Shellphish が開発した angr というバイナリ解析フレームワークについて、デモも交えて発表しておりました。
いやこれ。。怖いわww
英語のリスニングは、あまり得意ではありませんが、私の理解を要約すると
- 従来の Fuzzing は、すさまじい数の入力パターンを試さなければならず、効率的ではない。
- そこでバイナリを解析し、分岐命令を元に木構造を作る。
- 木構造を元に、入力値をやみくもに選択しないで、効率的に Fuzzing を行う。
- 成功した Fuzzing のインプットとバイナリ解析した結果を元に、シェルコードまで生成できちゃう。
- 以上を自動でできる。怖い。
この時使ったプレゼンテーションの資料
https://goo.gl/mi5UBv
angr は、OSSとして公開しています
https://github.com/angr/angr
面白いものがあった¶
そういえばオンライン予選で、これ使った問題が出てきてたな。。。
当時、そっ閉じしたけどww
2日目 international決勝大会(国際大会)¶
決勝大会は固唾を呑んで見守っておりました。
問題の概要を説明してもらったんですが、すげぇ難易度です。変態じゃないと解けないです。
優勝は韓国の Cykorkinesis
近年、韓国がすごく強いですね!
表彰式までは見学できなかったが、帰ってきてみると¶
TomoriNao が文部科学大臣賞を受賞してた。
この生徒会長達www
おめでとうございます。
基礎公演「つながるクルマのセキュリティ」¶
内部の制御プロトコルCANについての説明、それをハッキングする方法を、広島市立大学大学院 井上准教授が公演してくださいました。
CANについては、以下の知見が得られました。
- データ長は短い 8Byte
- 全てブロードキャスト
- データ毎にCANIDというIDが付くが、ノードと1:1というよりかは、機能と1:1になる
- 認証の仕組みはない
- ビットが0の方が優先。なので、0x00000000 というデータが最優先になる
- この最優先データを使えば、DOS攻撃が可能
クルマの制御、すごい楽しそう。
思い出¶
田中ザックさんにお願いして、一緒に写真写ってもらった。嬉しい。いい思い出です。
コメント¶
学生限定 ハッカー技術競う
https://youtu.be/Ey2QtaRiuuE
今年度のCTFを無双した韓国チーム、その強さの秘密
http://blog.f-secure.jp/archives/50762469.html
A painter and a black cat: katagaitai CTF勉強会 - 関東|med に参加してきました (1コメント)
場所は安定の、人員の許容量が宇宙ヤバい秋葉原UDXで開催
午前の部 trmrさん¶
Cryptoは、難しい。。けど、面白い!!
興味を持つきっかけになりました。
CTF的には、あらゆる暗号の脆弱性と、それを攻略するサンプルソースを収集しておくと最強という気がしてきた。
brute.c の使い道について¶
受講者諸氏のみなさんは、きっとご理解の事と思いますが、
そもそも初っ端でハマったりしたので、自分とそういう人のために解説するぞ!!!
最初、本題に入る前に
You must first solve a puzzle, a sha1 sum ending in 16 bit's set to 1, it must be of length 21 bytes, starting with
rduKahJ1/q4QW1HR
とか言われるでしょ?これは
- 21ByteのByte列をサーバに送信する
- 上の場合、"rduKahJ1/q4QW1HR" から始まる21ByteのByte列にすること
- このByte列のsha1ハッシュを生成した際、末尾16ビットは 0xffff になるようにすること
- 17Byte目以降は、高い確率でASCII文字以外(バイナリ)になるので、当然 netcat じゃ遅れないぞ!netcatで頑張ってた君!無駄だったな!

ご参考で頂いた brute.c は、答えを16進数で出力してくれますが、
これをバイナリにデコードして送信しないといけないので、netcat だと出来ないのです。
あくまでも、brute.cを参考にプログラミングしてねってことです。brute.cだけでは、この問題を突破できません。
という訳で、brute.c ですが、それをコンパイルして、実行します。
$ ./brute 'rduKahJ1/q4QW1HR'
7264754b61684a312f7134515731485297df000000
正解が16進数で得られます。サーバに送るのは、これを バイナリにしたもの です。
16文字目までは、rduKahJ1/q4QW1HR になってますよ。
rduKahJ1/q4QW1HR = 7264754b61684a312f71345157314852
$ echo "7264754b61684a312f71345157314852" |xxd -p -r
rduKahJ1/q4QW1HR
後半は、 97df000000 とかなってるでしょ?これは netcat から標準入力で入力できないというわけ。
いちおう、本当に要件通りの入力になっているか確認してみますか。
$ ./brute 'rduKahJ1/q4QW1HR'|xxd -p -r |sha1sum
f7927aeeb5444e87a93cc6f6372b5a82e02effff -
ふむ、ちゃんと末尾が 0xffffになってますなー。
本題に入る前に、こんな問いをしてくるのは、本題に対するブルートフォースやファジングを抑止する目的があるらしい。
午後の部 bataさん¶
いやいやいや、私がCTFで得点できないCryptoとPwnでしたが、だんだん解るようになってきましたね。。
ありがたいかぎりです。
ただ、解法まで辿り着くアイデアがスゴイので、こういうの整理したいところ。
(でもなかなか、整理するのが難しいんですよね。。)
特に後半の変態問題と、それを解いた変態解法がスゴイwwww
思わず笑うレベル。
おまけ¶
お昼は近場の岡むら屋で食べました。
スキヤキを煮詰めた何かがご飯にかかっているような感じ。濃い。

またまた
後援のNRIセキュアテクノロジーズさんから、謎の暗号が書いてあるハッカ飴を頂きました!
ありがとうございました。
コメント¶
当時の勉強会資料が公開されております。
A painter and a black cat: Redmineでwikiの生データを抽出する
wikiの加工前(MarkDown記法そのまま)のデータを取得するシェルスクリプトを書きました。
別の環境に移行する時や、うっかりwikiだけ消してしまった時の復旧などに便利。
実行するとカレントディレクトリにwiki毎にテキストファイルを吐くので、実行する場所は注意してください。wikiの記事数によるけど、いっぱいファイルが吐かれるよ!
詳細は、ALMinium を参照。
A painter and a black cat: Let's Encrypt で無料SSL証明書を取得してみた
ServersManのCentOS7で、Let's Encryptを利用して、無料SSL証明書を取得してみました。
詳細はServersManを参照。
これだとオレオレ証明書と違って、ブラウザで警告がでません!
A painter and a black cat: katagaitai CTF勉強会 - 関東|hard に参加してきました (2コメント)
場所は前回と同じ、人員の許容量が宇宙ヤバい秋葉原UDXで開催
午前の部 trmrさん¶
共通鍵暗号であるAESの内部をとてもわかりやすく説明してくれました。
AESは、フタを開けてみると、わかりやすい構造になってました。
今までブラックボックスとしか見ていなかったので、とても勉強になりました!!
しかし演習問題として解説してくれた [Ghost in the shellcode CTF 2013] Q20 - Subme の難易度の高さに笑った。
あんなん難しすぎるやろwww
ちなみに、以下が唯一のwriteupだそうです。
MSLC - Gits ctf 2013 Crypto 500
子育てお疲れ様です。
午後の部 bataさん¶
ほぼ4時間しゃべりっぱなしのbataさんお疲れ様でした。
初体験、ARMアーキテクチャのアセンブラを読む!ですが、exploitの基本的な原理はx86となんら変わらないので、話にはついていけましたよ!(解けるとは言っていない)
デバック環境の構築だけでもかなり有用でした。素敵な知見が沢山得られました。
特に、telnetを経由してバイナリを送り込んで、リモートで実行する一連の流れを自動化している実演を見たときは、感動致しました。
美しいですな~。
解法その2の方は、意味は解るんだけど、自力でそこに到達できる気がしなかったw
トップレベルの人はすごい事思いつくのね。。

おまけ¶
後援のNRIセキュアテクノロジーズさんから、謎の暗号が書いてあるハッカ飴を頂きました!
ありがとうございます。(ハッカーとハッカをかけたんですね)
暗号すごい気になるけど、場阿忍愚CTF中なので、ちょっとガマンしよう。。

裏面は、前回頂いたコースターと同じ感じかな?

コメント¶
本人巡回済み。
ありがとうございます。
当時の勉強会資料が公開されております。
A painter and a black cat: SECCON 2015 Writeup
A painter and a black cat: 文字コードのカオスな世界を整理してみた
A painter and a black cat: MobaXterm - 求めていたWindows用GNU環境がここにあった!!!1
Windowsでgrepしたいとか、シェルスクリプトでデータ編集したいとか、scp使いたいとか、sed使いたいとか、もぅあれやこれやが稀によくあった。
でも、cygwinを入れるという気にならなかった。portable版がないしね。ちょこっとGNUコマンド使いたいだけなんだけど。
MobaXtermが全てを解決してくれたんだ!!1
- 日常的に使いたいコマンドがほぼ全部最初入っている!シェルスクリプト組む時に、足りないコマンドが無い。
- それにしても軽い。
- portable版がある。20MBくらい。余裕で持ち運べる。
- SSHクライアントも入ってる。超便利。TeraTermの代わりになる。
- X Clientもできる。
- ちなみにmoshも入ってる。
素晴らしい。
MobaXterm
http://mobaxterm.mobatek.net/

A painter and a black cat: Dentoo.LT#12を聴講させて頂きました
以前参加させて頂いたすみだセキュリティ勉強会2015#1でDentoo.LTというものの存在を知り、前々から興味があったので、聴講させて頂きました。
コレ好きィ!
とっても面白かった。いつか自分も発表したい!
色々なマニアックな話題の中にも、高度に技術的な話が織り込まれていて、いや、これ、ホントレベル高いと思っていながらも、ずっと笑ってました。
完飲。
あと、文字フリマのステッカー頂きました。ありがとうございます。
他の形式にエクスポート: Atom