katagaitai CTF勉強会 #11 – Misc(hw)
関東 | Med - 2018/03/10
一般公開用
1
(c) ysk - katagaitai
準備
 GNURadio のインストール(講義ではWindowsを使います)
 [Gits CTF 2015] Teaser Round #2 - Don't Panic! Shift
Keying!
 http://bit.ly/2sGgQvE ※key.iq (37.7MB)
 [31c3 CTF 2014] signals25 - radio heat
 http://bit.ly/2EzWJEB ※radio_heat_29f5ae02d08c6b204.tar.gz
(158.9 MB)
 [CodeGate 2016] Misc274 eocnd
 http://bit.ly/2EMBjDB ※eocnd.7z(2.7GB)。URLどれか1つ
 演習問題なのでDLは必須ではありません。
2
(c) ysk - katagaitai
目次
 はじめに
 無線通信の基礎知識
 背景と理論
 HWによる無線通信
 SDRによる無線通信
 問題
 演習問題: [CodeGate 2016] Misc274 eocnd
 問題①:[Gits CTF 2015] Teaser Round #2 - Don't Panic! Shift
Keying!
 問題②:[31c3 CTF 2014] signals25 - radio heat
 さいごに
3
(c) ysk - katagaitai
はじめに4
(c) ysk - katagaitai
目次
 はじめに
 無線通信の基礎知識
 背景と理論
 HWによる無線通信
 SDRによる無線通信
 問題
 演習問題
 問題①
 問題②
 さいごに
自己紹介
ysk (@y_sk256)
 略歴
 マイクロ波帯のHWや制御SWの研究と実装
 IT基盤運用/開発マネージメント
 デバイスのセキュリティ診断
 趣味
 無線通信の実解析
 機械学習
 CTF: katagaitai
 主な担当はmisc(hw), for, ppc, rev
 CTFはセキュリティの良き勉強材料
5
(c) ysk - katagaitai
本講義について
 非専門家なので
 資料や説明に間違いがあるかもしれません、ご指摘ください。
 本講義の運営について
 演習などは進み具合をみつつスピードを調整します。
 質問は挙手または、休み時間にお願いします。
 途中入退出自由です。周りに迷惑をかけないようお願いします。
 資料について
 そのうち公開予定です。
 資料や講義風景のSNS等への投稿はご遠慮ください
 問題文/画像/資料は各CTF、Wikipedia、企業の物を引用している箇
所があります。著作権はそれぞれの団体又は組織に帰属します。
6
(c) ysk - katagaitai
信号処理系CTF問題の紹介①
 Misc/Forensic
 音声・画像ファイルの解析 ⇒過去の勉強会で説明
 信号を記録したファイルの解析 ⇒今回扱う
 IoT/Circuit
 基板写真や回路図を解析 ⇒勉強会#7で説明
 リアル無線通信の解析 ⇒今回SDRの紹介として少し登場
 車載ECUのCAN/Wi-Fi等の解析
 Crypto
 サイドチャネル攻撃 ⇒勉強会#10でtrmrが発表
7
(c) ysk - katagaitai
信号処理系CTF問題の紹介②
 初心者向け
 [CodeGate 2016] Misc274 eocnd ⇒今回扱う
 [Gits CTF 2013] Q7 Oranges ⇒FSK変調の解析
 中級向け
 [PoliCTF 2012] Forensics 500 ⇒AFSK1200変調の解析
 [Gits CTF 2015] Teaser Round #2 - Don't Panic! Shift Keying! ⇒今回
扱う
 [Olympic CTF 2014] Illegal Radio ⇒複数変調の解析+XOR解読
 自称“初心者”向け
 [31c3 CTF 2014] signals25 - radio heat ⇒今回扱う
 [Red Alert ICS CTF 2017] Misc - Radio Frequency #2 ⇒制御システム系
のリアル無線通信の解析
 [2014 Nuit du Hack CTF] Unter Cab Command and Control Radio Module
⇒リアル無線信号(ASK変調?)の解析
(c) ysk - katagaitai
8
⇒今回は、信号処理系問題の全体感を見てもらうため各レベルから1問ずつ選択した
無線通信の基礎知識
~背景と理論~
(c) ysk - katagaitai
9
目次
 はじめに
 無線通信の基礎知識
 背景と理論
 HWによる無線通信
 SDRによる無線通信
 問題
 演習問題
 問題①
 問題②
 さいごに
無線通信の歴史
 1864 マクスウエル方程式(マクスウェル(英国))
 1886 ヨーロッパにおける最初の電波の実験(ヘルツ(ドイツ))
 1901 大西洋横断無線電信(マルコーニ(イタリア))
 1920 ラジオ放送(米国)
 1935 レーダー(イギリス)
 1963 移動衛星を用いた日米間TV中継(約20分間)
 1980 GPSシステム(移動衛星)(米国)
 1998 衛星携帯電話「イリジウム」(米国):全世界で使用可。
 2003 地上デジタル放送(日本)
(c) ysk - katagaitai
10
引用元 https://pub.nikkan.co.jp/uploads/book/pdf_file4d536bc5e9a72.pdf
130年以上も昔に電波が実験的に証明されてから、現代の生活
において電波は必要不可欠となった。
この章では、CTF問題の解説の前に無線通信の基礎を紹介する。
そもそも無線通信とは
(c) ysk - katagaitai
11
無線通信
電波
(3THz以下の周
波数の電磁波)
記号
~電波法施行規則2条1項15号~
「無線通信」とは、電波を使用して行うすべての種類の記
号、信号、文言、影像、音響又は情報の送信、発射又は受
信をいう。
定義
信号
文法
映像
音響
+ +
送信
情報
受信
※詳しくはこの後のページで説明。
12 電波の周波数分類と特徴
超短波
3T Hz30G3G300M30M
極超短波
マイクロ
波
ミ
リ
波
サブ
ミリ
波
光
3k
短
波
中
波
長
波
超
長
波
λ0.1mm1cm10cm1m10m100km
(c) ysk - katagaitai
13 電波の周波数分類と特徴
超短波
3T Hz30G3G300M30M
極超短波
マイクロ
波
ミ
リ
波
サブ
ミリ
波
光
3k
短
波
中
波
長
波
超
長
波
λ0.1mm1cm10cm1m10m100km
電離層で反射されにくい電離層で反射されやすい(遠くまで届く)
大量のデータを伝送できる
障害物があっても届きやすい(減衰しにくい/回折しやすい)
(c) ysk - katagaitai
14 電波の周波数分類と特徴
超短波
3T Hz30G3G300M30M
極超短波
マイクロ
波
ミ
リ
波
サブ
ミリ
波
光
3k
短
波
中
波
長
波
超
長
波
λ0.1mm1cm10cm1m10m100km
電離層で反射されにくい電離層で反射されやすい(遠くまで届く)
大量のデータを伝送できる
障害物があっても届きやすい(減衰しにくい/回折しやすい)
(c) ysk - katagaitai
⇒利用可能な周波数の中から、目的に応じてどの周波数を使うかが決まる。
・電波を飛ばしたい先。(例) 海外(波長が低い)、宇宙空間
・障害物の有無。(例)建物、コンクリートなど
・データの転送量。(例)数Kbps~数Gbps
15 無線通信の有名どころ
超短波
3T Hz30G3G300M30M
極超短波
マイクロ
波
ミ
リ
波
サブ
ミリ
波
光
3k
短
波
中
波
長
波
超
長
波
λ0.1mm1cm10cm1m10m100km
WiFi
Bluet
ooth
LTE
ラジオ
衛星
放送
地デジ
(c) ysk - katagaitai
通信
16 無線通信の有名どころ
超短波
3T Hz30G3G300M30M
極超短波
マイクロ
波
ミ
リ
波
サブ
ミリ
波
光
3k
短
波
中
波
長
波
超
長
波
λ0.1mm1cm10cm1m10m100km
WiFi
Bluet
ooth
LTE
AM
ラジ
オ
衛星
放送
地デジ
(c) ysk - katagaitai
いい感じの帯域
通信
FM
ラジオ
無線通信の送信方法
 高周波(~3THz)に送りたい情報を付与して、アンテナから電波
として送信することで無線通信が行える。
※FM送信機の概要構成図
17
(c) ysk - katagaitai
FM混合器
Mix
局部発信器
(搬送波)
Local
入力信号
Signal
増幅器
Amp
フィルタ
Filter アンテナ
ANT
送りたい信号
例:音声(~kHz)
送るのに必要な高周波。
※送りたい信号の周波数より
十分大きい周波数であること
無線信号の理解
 搬送波と信号を混ぜることを変調と言う。
 入力信号(Xs):アナログ/デジタル情報。 𝑨 𝑺 𝒕 、𝒇 𝑺 𝒕 、𝝓 𝑺 𝒕
 搬送波(fo):空間を伝搬させるための高周波。𝐴0cos 2𝜋𝑓0 𝑡
 変調波(f): 𝒇 𝒕 = 𝑨 𝑺 𝒕 cos 2𝜋 𝑓0 + 𝑓𝑆 𝑡 𝑡 + 𝝓 𝑺 𝒕
(c) ysk - katagaitai
18
振幅 周波数
𝑓0:搬送波
位相 ANT
から出る
電波
局部発信器
(搬送波)
Local
入力信号
Signal
 アナログ変調方式には大きく3種類の変調方式がある。
 AM (振幅変調): 𝒇 𝒕 = 𝑨 𝑺 𝒕 cos 2𝜋𝑓0 𝑡
 FM (周波数変調): 𝒇 𝒕 = 𝐴 cos 2𝜋 𝑓0 + 𝒇 𝑺 𝒕 𝑡
 PM (位相変調): 𝒇 𝒕 = 𝐴 cos 2𝜋𝑓0 𝑡 + 𝝓 𝑺 𝒕
アナログ変調方式19
(c) ysk - katagaitai
周波数
強度
位相
時間
時間
時間
 無線通信はデジタル(バイナリ)データも変調することが可能。
 デジタル変調方式には大きく4つの変調方式がある。
 ASK (Amplitude Shift Keying): 𝒇 𝒕 = 𝑫 𝒕 𝑨 cos(2𝜋𝑓0 𝑡)
 FSK (Frequency Shift Keying): 𝒇 𝒕 = 𝐴 cos(2𝜋 𝒇 𝟎 + 𝑫 𝒕 𝒇 𝑺 𝒕)
デジタル変調方式①
(c) ysk - katagaitai
20
入力信号
(D(t))
入力信号
(D(t))
時間
時間
 デジタル変調方式には大きく4つの変調方式がある。(続き)
 PSK (Phase Shift Keying) : 𝒇 𝒕 = 𝐴 cos(2𝜋𝒇 𝟎 𝒕 + 𝑫 𝒕 𝜋𝒇 𝟎 𝑡)
 QAM (Quadrature Amplitude Modulation):
𝒇 𝒕 = 𝑫 𝒕 𝐴 cos(2𝜋𝒇 𝟎 𝒕 + 𝑫 𝒕 𝜋𝒇 𝟎 𝑡)
デジタル変調方式②
(c) ysk - katagaitai
21
入力信号
(D(t))
入力信号
(D(t))
時間
時間入力(D): 11 10 01 00
振幅(A): 1 1 0 0
位相(𝝓): 1 0 1 0
デジタル変調方式の多重化
 多重化:同時に複数の変調波で通信するための技術。
※データ量や同時複数端末間での通信が行える。
 多重化方式。
 FDM (Frequency Division Multiplexing 周波数分割多重化)
 TDM (Time Division Multiplexing 時分割多重化)
 CDM (Code Division Multiplexing 符号分割多重化)
 同じ周波数帯域で同時に複数の情報を送る方法⇒スペクトラム拡散参照
 Wi-FiやLTEなど現実世界では使われているがCTFではほぼ出ない。
(c) ysk - katagaitai
22
強度
周波数
1 2 3 4 5 …
1
周波数
時間
1 2 3 4 5 …
一つずつ
別の変調波
スペクトラム拡散方式
 秘匿性、耐ノイズ性向上につながるスペクトラム拡散方式。
 FHSS (Frequency Hopping Spread Spectrum 周波数ホッピング・スペク
トラム拡散)
 DSSS (Direct Sequence Spread Spectrum 直接スペクトラム拡散)
 現実世界では使われているがCTFではほぼ出ない。
(c) ysk - katagaitai
23
強度
周波数※信号が直交するように符号化すること
で、各信号を取り出すことが可能となる。
1 2 3
周波数
時間
2 3
2 3
3
※予め決められた規則で周波数が切り替わる。
21
1
1
変調方式の特徴①
 FFT (Fast Fourier Transformation):周波数別の信号強度
 Waterfall:FFTの経過を表現したグラフ。横軸が周波数、色が信
号強度、縦軸が時間経過
(c) ysk - katagaitai
24
時間
周波数
周波数
強度
FFTの強度を色で
表現。
青⇒赤になるほ
ど強い
信号の周期性と
強度を表現。
※変換式は割愛
変調方式の特徴②
 IQデータ(IQシグナル)は信号を機械が扱いやすくしたデータ。
 変調方式の特徴を目視で区別するのにも有用。
(c) ysk - katagaitai
25
※参考 http://www.ni.com/tutorial/4805/ja/
In-phase carrier
(位相が同相と
なる成分)
Quadrature-phase carrier
(位相が直角となる成分)
𝝓:位相
乗算
Mul
乗算
Mul
90°シフト
Iデータ
Qデータ
変調波
変調波からIQデータへの変換
⇒次頁以降に、変調方式とIQデータの一覧を記載。
NCO(数値制御発振器)
変調方式の特徴③
(c) ysk - katagaitai
26
ASK FSK (GFSK)
PSK (QPSK) QAM (16QAM)
位相で2bitを表現。振幅は同じ。 振幅と位相で4bitを表現。
振幅で1bitを表現。位相は同じ。 位相が連続的に変化=周波数で1bitを表現。振幅は同じ。
WaterFall
※赤丸以外はノイズと
思われるので無視。
無線通信の基礎知識
~HWによる無線通信~
(c) ysk - katagaitai
27
目次
 はじめに
 無線通信の基礎知識
 背景と理論
 HWによる無線通信
 SDRによる無線通信
 問題
 演習問題
 問題①
 問題②
 さいごに
HW受信機の構成例
 スーパーヘテロダイン受信機
※安定した受信のため高周波(RF: Radio Frequency)を中間周波数(IF:
Intermediary Frequency)に落としてから受信する方式
(c) ysk - katagaitai
28
増幅器
Amp
局部発信器
Local
検波器
Detector
出力信号
Signalアンテナ
ANT
混合器
Mixer
IFRF
アンテナの仕組み
 ここでは、無線通信を行う際に必要なアンテナについて説明する。
 アンテナには大きく二種類ある。
① 電波を電界として送受信するタイプ。例)ダイポールアンテナ
② 電波を磁界として送受信するタイプ。例)ループアンテナ
 適切な長さのアンテナを用いることで電磁波を放射できる。
 アンテナの長さを見ればおおよその周波数が推測できる。
 下図は①のタイプの例でダイポールアンテナ。
(c) ysk - katagaitai
29
定在波が生まれる長さで
あることが重要。λ/2や
3λ/4などがある。
磁界
電界
電界と磁界が交互に垂
直方向に生まれ空間を
伝搬する。
アンテナの種類①
(c) ysk - katagaitai
30
※写真の引用元 wiki.org
ダイポールアンテナ グランドプレーンアンテナ ループアンテナ
(磁界で送受信する)
 扱う周波数の波長に比例してアンテナの放射器の大きさが決まる。
 電磁界が共鳴する特有の形に応じてアンテナの形が複数ある。
 300から波長を割ると計算が楽。
λ=3m⇒ 300/3=100MHz、λ=3cm⇒ 300/3=100GHz
1/2λ
1/4λ
λ/(2n)
アンテナの種類②
(c) ysk - katagaitai
31
※写真の引用元 wiki.org
八木アンテナ(水平偏波)
(導波器により指向性を鋭
くしている)
パラボラアンテナ
(主鏡により電波を集約。
とても鋭い指向性を持つ)
ヘリカルアンテナ(円偏波)
(同じアンテナを複数配置する
スタックという方法により
指向性を鋭くしている)
 アンテナにはビーム指向性を高める手法がいくつかある。
※指向性とはアンテナ感度が方向性を示す特性 ⇔ 対義語:無指向性
導波器
放射器
主鏡
副鏡
送受信機
反射器
同じアンテナが4つ
アンテナの種類③
 広帯域の周波数を送受信できるアンテナもある。
 広帯域で送受信できるSDR用に有用。
(c) ysk - katagaitai
32
ディスコーンアンテナ
(無指向性アンテナ)
ログペリオディック(ログペリ)アンテナ
(指向性アンテナ)
※写真の引用元 wiki.org
HW受信機の実機例
 HW送受信機の例。
 1台作るのに様々なHW実装が必要、操作も複雑。
 ボタン沢山。AM/FM/SSB/CWくらいしか変調/復調できない。
(c) ysk - katagaitai
33
※写真の引用元 wiki.org
無線通信の基礎知識
~SDRによる無線通信~
(c) ysk - katagaitai
34
目次
 はじめに
 無線通信の基礎知識
 背景と理論
 HWによる無線通信
 SDRによる無線通信
 問題
 演習問題
 問題①
 問題②
 さいごに
SDRの登場
 昔は無線通信は周波数が高いためHWで処理するのが普通だった。
 例えば、20MSample/secでIQデータ8bit×2を処理しようとすると、
320Mbpsの処理が必要。昔のPCでは処理が追い付かない。
 PCの性能が向上したのでPCで処理が可能に⇒SDR
 “SDR”は受信するHWと信号処理するSWを含むイメージ。
 カンファレンスなどでSDR(Software Defined Radio)の認識が広まった。
 各種カンファレンスの発表などでもbladeRFやHackRF oneなどが取り
上げられていた。
 SDRを簡単に扱えるソフトウェアが台頭したため広がりやすい場が
できた。SDR#やGNURadioなど。
 今まで個別に受信機を用意していた人々も大喜び。
 航空無線、消防無線、などなど多岐にわたり1台ですむ。
 昔は広帯域受信器を数十万円で買う必要があった。
 未知の変調や受信機が無い無線通信を解析するのに有用。
(c) ysk - katagaitai
35
※写真の引用元 https://greatscottgadgets.com/hackrf/
SDRを選ぶ理由
 HW構成はSDR受信機とPCをUSB等で接続するだけ。
 広帯域の周波数に対応。(HackRF oneなら1M~6GHz)
 簡単に調査や検証 (FFT、波形、復調方式) が可能。
 信号を記録することで後でじっくり解析が可能。
 難しい処理をSWで実装できるので安価。
(c) ysk - katagaitai
36
SDR
受信機アンテナ
ANT
PC
出力信号
Signal
解析ソフト
(GNURadio等)
SDR受信機ではIF(又は変調波)
をIQデータに変換している。
GNURadioの紹介
 SDRの代表的なソフトにGNURadioがある。
 できることを大別すると以下の3種類。
 変調波の生成=変調
 入力信号の取り出し=復調
 信号のキャプチャ
 CTF問題ではリアル大会を除いて基本的に復調が問われる。
 AM/FM/FSK/PSK/QAM/OFMA/LTEなど幅広い変調方式に対応。
 リアル大会ではリプレイ攻撃や変調して送信する問題もある。
 使い方はブロックダイアグラム(ブロック図)を組んで実行。
 最小単位はブロック。
 入出、処理、出力の順に接続する。
(c) ysk - katagaitai
37
GNURadioのブロック紹介
 ブロックは大分類で6種、中分類で40種程度あり、全部で100種く
らいはある。
 CTFでは入力、処理(変調、復調)、出力だけを覚えればだいたいOK。
 Pythonによる独自実装もできる。
(c) ysk - katagaitai
38
入力 処理(変調、復調) 出力
GNURadioのブロック構成例①
(c) ysk - katagaitai
39
キャプチャファイル再生
信号の測定とキャプチャ
SDR受信
機を入力
各種グラ
フ表示
ファイル
出力
ファイル
が入力
CPU使用率が高い時に間に挟
む。サンプリングを絞る
GNURadioのブロック構成例②
(c) ysk - katagaitai
40
FMラジオ受信
デジタル変調(GFSK)
GNURadioあるある①
 ブロックの見つけ方・使い方がわからない。
 DPSK、PSKなど基本的なデジタル変調はDeprecatedにある。
 ブロックの名前検索は右上の虫眼鏡アイコンで行える。
 配置したブロックをダブルクリックするとヘルプを見れる。
(c) ysk - katagaitai
41
①虫眼鏡アイコンをクリック
②検索バーが表示される
③検索バー文字列を含むブ
ロックのみが表示される
①Documentationタブを開く
②説明が表示される
GNURadioあるある②
 GUIブロックがうまく使えない。
 QT GUI / WX GUIブロックはOptionで指定した方しか使えない。
 ブロックの右クリックメニューからDisableにすることができる。
 Linux版だとQT GUIブロックが無い場合もあるらしい。
 QT GUI SinkをWX GUIブロックで代用する場合は、WX GUI FFT Sink、
WX GUI Waterfall Sink、WX GUI Constellation Sink等、で代用する
(c) ysk - katagaitai
42
Disableブロックはグレーア
ウトされる。
GNURadioあるある③
 実行ボタンが押せない。(エラーがあると発生する。)
 矢印が赤色。ブロック入出力タイプが異なっておりエラー。
 ブロックタイトルが赤字。ブロック設定がエラー。
(c) ysk - katagaitai
43
エラー内容は下に表示される。
エラー箇所は赤字で表示される。
データタイプ(色)は5種類
Complex(青)、Float(オレンジ)、
Int(深緑)、Short(黄)、Byte(ピ
ンク)
GNURadioあるある④
 実行しても画面が出ない、すぐに終了してしまう。
 実行時にエラーが出た場合は左下のpython実行ログ又は、実行
時に出るターミナルに同じpython実行ログが出る。
 処理が重い時はThrottleを入れてサンプリングレートを下げる
と解消することがある。
(c) ysk - katagaitai
44
GNURadioあるある⑤
 実行時のGUI
 File SourceのFFTやIQデータを見たいが、データの終了が早い時は、
File SourceのRepeatをONにすると見やすい。
 複数グラフがある場合、タブや縦に連なって(垂直スクロールバーな
ど用いて)表示される。
 PSK、QAMあるある
 Gray codeをONにするとビットの立て方が変わる(一種のマスク)。変
調方式を調べる際はGray code ON/OFFを試してみる必要がある。
(c) ysk - katagaitai
45
送受信したくても法律に注意
 従来のHW送受信機、SDRに限らず無線通信の送受信は法律の制
限を受けます。
 電波法(法律)の抜粋。
 無線信号の傍受は禁止されていない。
 ただし、無線通信(一部除く)を傍受してその存在もしくは内容を漏ら
し、またはこれを窃用してはならない。(電波法 第五十九条)
 送受信機(一部除く)は技適マークの取得が必要。混信を避けるため。
 技適マークの無い通信は電波暗室や有線を使いましょう。
 HackRF oneは送信ができますが技適マークがありません。普通に送
信すると日本国内では多分違法となります。
 ここでの説明は厳密には間違いが含まれる場合があります。
 無線通信の送受信は自己責任で実施願います。
46
(c) ysk - katagaitai
※参考 http://www.soumu.go.jp/main_sosiki/joho_tsusin/security/basic/legal/07.html
http://www.tele.soumu.go.jp/j/adm/monitoring/summary/qa/index.htm
演習問題
GNURadioによる復調 (FM)
47
(c) ysk - katagaitai
目次
 はじめに
 無線通信の基礎知識
 背景と理論
 HWによる無線通信
 SDRによる無線通信
 問題
 演習問題
 問題①
 問題②
 さいごに
GNURadioによるFM受信①
 Source⇒処理⇒Sinkの順番に組む。独立しているブロックは設定用。
 Osmocom SouceやRTLはSDRデバイスからの信号を入力とするブロッ
ク。具体的には、HackRF oneやRTL2832U搭載のUSBチューナー等を入力に
できる。
(c) ysk - katagaitai
48
※参考Wireless Square “FM Receiver using GNU Radio”
http://wireless-square.com/2016/01/14/fm-receiver-using-gnu-radio/
GNURadioによるFM受信②
(c) ysk - katagaitai
49
SDR入力
※キャプチャし
ている場合は
File Sourceでも
可
2M/10=200KHz
にフィルタ
※200KHzは日
本の放送局の
帯域
200K*12/5
=480KHz変換
※便宜上480KHz
にしている
WBFM(WideBandFM)復調
480K/10->48KHz
音量調整
※ここでは1倍なの
で変化なし
出力
※アンテナから
受信する場合、
IF/BB Gainで増
幅するのをお忘
れなく。
演習問題 [CodeGate 2016] Misc274 eocnd
(c) ysk - katagaitai
50
You can choose anyone!
Find flag (Flag format : alphanumeric lowercase, no space, English )
https://goo.gl/j4p3iK (2.7GB)
hint : https://www.youtube.com/watch?v=XFkzRNyygfk
hint : https://www.youtube.com/watch?v=81FoPw_zuQE
ファイルを解凍するとeocndというファイルが得られる。
バイナリエディタ(Bz)で開くと下図のようになっており、8byte周期でデータが並んでいるように見える。
ヒント1つ目がRadio headというグループの映像、2つ目が車のワイヤレスキーのハッキング映像。
⇒2つ目のヒントより、信号の変調・復調によく使われるGNURadioを用いて復調を行う問題と推測
できる。
信号の読み込みと初動調査51
信号調査のため右図のブ
ロックダイアグラムを組む。
①GUIライブラリはQT or WXの
どちらか片方が利用可能。
QTにすると「QT GUI~」という
ブロックのみが使用可。
②「File Soucre」で問題
ファイルを読み込む。
③調査用に今回は「QT
GUI Sink」を使用。
④ ボタンで実行
信号の読み込みと初動調査
(c) ysk - katagaitai
52
信号調査のため右図のブ
ロックダイアグラムを組む。
①GUIライブラリはQT or WXの
どちらか片方が利用可能。
QTにすると「QT GUI~」という
ブロックのみが使用可。
②「File Soucre」で問題
ファイルを読み込む。
③調査用に今回は「QT
GUI Sink」を使用。
④ ボタンで実行
FFTの信号の帯域幅や、強
弱の周期などを確認する。
⇒連続して幅のある帯域
幅を使用している。
ConstellationでIQデータを
確認する。
⇒丸い円。周波数変調し
ているFMやFSKが該当。
信号の復調
 FFTとIQデータよりFM復調を行う。FM信号はアナログ信
号の搬送によく使われるため、出力は音声信号と推測。
(c) ysk - katagaitai
53
参考 Wireless Square “FM Receiver using GNU Radio”
http://wireless-square.com/2016/01/14/fm-receiver-using-gnu-radio/
答え
(c) ysk - katagaitai
54
江南スタイルが流れてくる。
答え:gangnamstyle
問題①
[Gits CTF 2015] Teaser Round #2 - Don't Panic! Shift Keying!
55
(c) ysk - katagaitai
目次
 はじめに
 無線通信の基礎知識
 背景と理論
 HWによる無線通信
 SDRによる無線通信
 問題
 演習問題
 問題①
 問題②
 さいごに
[Gits CTF 2015] Teaser Round #2 - Don‘t Panic! Shift Keying!
In a far away land, shaped like the head of a pwnie,
dem natives found a way to communicate in secret (sorta)
bearly advanced esoteric RF technol0gies...
I once befriended a bear in a bar on pwnie island.
He kept rambling on about Richard Stallman, and some treasure...
He handed me this napkin, and said we could speak through the ether
I captured this message data to a GNU Radio complex data file...
Maybe its a secret to the treasure!?!?
Demodulate the key
56
⇒画像をヒントに信号の復調を行う問題。
(c) ysk - katagaitai
画像の調査
(c) ysk - katagaitai
57
コメント
ブロック図
画像コメントの調査
(c) ysk - katagaitai
58
- Do it 32000 times every second⇒32kHz
- Reverse of this brings glory and data⇒復調せよ
- Don’t Panic! All glory to the pwnie!⇒(激励)
コメント
画像ブロック図の調査
(c) ysk - katagaitai
59
問題文より何らかの無線通信の変調ブロック図と予想できる。特に、~PSK(位相偏移変調)や、~
FSK(周波数偏移変調)はデジタル信号の変調方式として有名。
※samp/symとは単位データ(symbol)を表現するのに必要な波形(sample)の数となる。
※8、6sample/symの前に≧か2のような文字があるが通常1桁で表現するのでここでは無視する。
Reality
0,2,4,6, ..
1,3,5,7, ..
Packets 1bps
Packets 1bps
DPSK 8 samp/sym
GFSK 6 samp/sym
0,2,4, ..
1,3,5, ..
×42 Endianness Dat Ether
ブロック図
20min
復調ブロック図
 ブロック図を反転させて復調用のブロック図を作る。
 次頁から各ブロックについてGNURadioのブロックに置き
換えていく。
(c) ysk - katagaitai
60
Reality
0,2,4,6, ..
1,3,5,7, ..
Packets 1bps
Packets 1bps
DPSK 8 samp/sym
GFSK 6 samp/sym
0,2,4, ..
1,3,5, ..
×42 Endianness Dat Ether
÷42EndiannessDat Ether
0,2,4, ..
1,3,5, ..
DPSK 8 samp/sym
GFSK 6 samp/sym
Packets 1bps
Packets 1bps
0,2,4,6, ..
1,3,5,7, ..
Reality
入力部
(c) ysk - katagaitai
61
÷42EndiannessDat Ether
0,2,4, ..
1,3,5, ..
DPSK 8 samp/sym
GFSK 6 samp/sym
Packets 1bps
Packets 1bps
0,2,4,6, ..
1,3,5,7, ..
Reality
1. File Sourceで問題のファイルを読み込こみ、エ
ンディアンスワップを行う。
2. Constant Sourceを強度42で設定する。
3. 1の信号を2で割る。(「÷42」に相当)
4. Deinterleaveで信号を順番に分離する。
出力
GFSK
DPSK
DPSK復調
(c) ysk - katagaitai
62
÷42EndiannessDat Ether
0,2,4, ..
1,3,5, ..
DPSK 8 samp/sym
GFSK 6 samp/sym
Packets 1bps
Packets 1bps
0,2,4,6, ..
1,3,5,7, ..
Reality
1. DPSK Demodブロックを以下の設定で配置。
※DPSKは直前シンボルの位相差分でデータを表現。
 Samples/Symbol : 8
 その他はデフォルト値
2. Packet Decoderを配置。
入力
Output TypeをByteにする
DPSK(差動位相偏移変調)
は、直前の位相を基準に
位相を判定するPSK
GFSK復調
(c) ysk - katagaitai
63
÷42EndiannessDat Ether
0,2,4, ..
1,3,5, ..
DPSK 8 samp/sym
GFSK 6 samp/sym
Packets 1bps
Packets 1bps
0,2,4,6, ..
1,3,5,7, ..
Reality
1. GFSK Demodブロックを以下の設定で配置。
 Samples/Symbol : 6
 その他はデフォルト値
2. Packet Decoderを配置。
入力
Output TypeをByteにする
GFSK(ガウシアンフィル
タGSK)はガウスフィルタ
を行ったFSK
出力部
(c) ysk - katagaitai
64
÷42EndiannessDat Ether
0,2,4, ..
1,3,5, ..
DPSK 8 samp/sym
GFSK 6 samp/sym
Packets 1bps
Packets 1bps
0,2,4,6, ..
1,3,5,7, ..
Reality
1. Interleaveで信号を順番に並べて合成する。
2. File Sinkで復号結果をファイルに格納する。
入出力TypeをByteにする
全ブロック図と出力ファイル
(c) ysk - katagaitai
65
作成したブロック図の全体像と出力ファイルは以下。
JPEGファイル
答え
(c) ysk - katagaitai
66
写真は信号処理で著名なシャノンと、研究で開発した迷路ソルバー装置Theseus (1952年)。
http://cyberneticzoo.com/mazesolvers/1952 -%E2%80%93-theseus-maze-solving-mouse-%E2%80%93-claude-shannon-
american/
答えはこの後ろ
問題②
[31c3 CTF 2014] signals25 - radio heat
67
(c) ysk - katagaitai
目次
 はじめに
 無線通信の基礎知識
 背景と理論
 HWによる無線通信
 SDRによる無線通信
 問題
 演習問題
 問題①
 問題②
 さいごに
[31c3 CTF 2014] signals25 - radio heat68
We scratched this file from a harddrive that fell from a Gnu. It may contain a secret... FILE
⇒問題のタイトルと内容からGNURadioを用いた問題と推測。
20min
(c) ysk - katagaitai
信号の初動調査
 QT GUI Sinkで信号の特徴を調査する。
(c) ysk - katagaitai
69
FFTにより、データ
があることがわかる。
IQデータで変調方式を調査
(c) ysk - katagaitai
70
これらが順番に出現する
信号であることがわかる。
IQデータで変調方式を調査
(c) ysk - katagaitai
71
GFSK 16QAM
DPSK PSK
これらが順番に出現する
信号であることがわかる。
ブロックを組む
(c) ysk - katagaitai
72
GFSK
QAM
DPSK
PSKここでは簡単にパラレルで復
調した。
変調方式が異なる場合はデー
タが正しく復調されないだけ
のため。
出力ファイルの確認
 出力ファイル4つのうち2つにデータが出力される。
(c) ysk - katagaitai
73
PSK
QAM
1st FLAG ⇒ N33dza_FUECKING_LOT_MORE_
繰返しデータ ⇒ 2nd FLAGの暗号文と予想
DPSK、GFSKはデータが無
いのでダミーと思われる。
QAMのデータを解読する
 簡単にxorで暗号化されていると推測してxortoolで調査。
(c) ysk - katagaitai
74
# xortool -b qam.out
The most probable key lengths:
1: 11.3%
3: 16.0%
6: 14.1%
9: 12.2%
12: 10.6%
15: 9.1%
18: 8.0%
21: 7.0%
24: 6.2%
27: 5.5%
Key-length can be 3*n
256 possible key(s) of length 3:
n¥x12¥xda
o¥x13¥xdb
l¥x10¥xd8
m¥x11¥xd9
j¥x16¥xde
...
Found 0 plaintexts with 95.0%+ printable characters
See files filename-key.csv, filename-char_used-perc_printable.csv
# strings -n 10 xortool_out/*.out | grep -i flag
part of the flag: PiZZ4BuergER
You solved it! here is the second part of the flag: PiZZ4BuergER
2nd FLAG ⇒ PiZZ4BuergER
答え
 答え:N33dza_FUECKING_LOT_MORE_PiZZ4BuergER
(c) ysk - katagaitai
75
さいごに76
(c) ysk - katagaitai
目次
 はじめに
 無線通信の基礎知識
 背景と理論
 HWによる無線通信
 SDRによる無線通信
 問題
 演習問題
 問題①
 問題②
 さいごに
GNURadio問題のポイント
 数値データの連続と思われる、バイナリファイルは無線通
信の信号データである可能性がある。
 信号データの場合、GNURadioで初動調査を行う。
 FFTで周波数帯域幅や信号の有無を確認する。
 IQデータで変調方式を推測する。
 CTFで出る問題は基本的な変調方式が多い。
 アナログ変調データ:FM、など
 デジタル変調データ:FSK、PSK、QAM、など
 例外として、オンサイトで行うCTFで以下のような出題がある。
 Car Hacking Village (Defcon 25th):車載機の無線信号の問題。
 Red Alert ICS CTF (CodeBlue 2017):ICSの無線信号の問題。
77
(c) ysk - katagaitai
よりリアルを求める人はSDR
 SDRは簡単に手に入る。
 秋月電子@秋葉原でHackRF oneは販売されている。
 RTL2832U搭載ワンセグチューナーは数千円で手に入る。
 仕様が公開されていない信号を解析するのに役立つ。
 信号をキャプチャしたら後はCTF問題と同様。
(c) ysk - katagaitai
78
参考
 GNURadio
 https://wiki.gnuradio.org/index.php/Main_Page
 GreatScottGadget “SDR with HackRF Lessons”
 https://greatscottgadgets.com/sdr/
 GitHub mossmann/hackrf
 https://github.com/mossmann/hackrf/wiki
 KG-ACARS HFDL VDL MCAに感謝 受信方法 受信記録のブ
ログPlus RTL-SDR
 http://blog.livedoor.jp/bh5ea20tb/archives/4348645.html
(c) ysk - katagaitai
79

katagaitaictf11_misc_ysk