KeyFrame內部研究專用

DEF CON 33 - RF Village - Running a Software Defined Radio CTF using challengectl - Dan Perret

DEFCONConference·10月22日週三·40 min英文

三句話摘要

使用開源軟體 Challenge CTL 運行軟體定義無線電(SDR)捕獲旗幟競賽,實現可重複、可擴展的無線電頻率安全挑戰。 Challenge CTL 透過單一 Python 應用統一管理多個 SDR 設備和信號型態,讓任何人都能用商用硬體在家執行符合法規的 RF CTF 挑戰。 RF CTF 的設計需滿足法律、可重複性與可解決性三大硬性需求。首先,傳輸和接收必須合法——例如不能在蜂巢頻段傳輸因為涉及執照問題;其次,每次傳輸必須完全相同,因為週末期間需要傳輸數百至數千次;第三,挑戰必須有定義明確的答案,可以評分和驗證。

重點整理

重點
  • 1

    RF CTF 的設計需滿足法律、可重複性與可解決性三大硬性需求。首先,傳輸和接收必須合法——例如不能在蜂巢頻段傳輸因為涉及執照問題;其次,每次傳輸必須完全相同,因為週末期間需要傳輸數百至數千次;第三,挑戰必須有定義明確的答案,可以評分和驗證。

  • 2

    Challenge CTL 的進化代表從單一流程圖到多設備協調的轉變。早期(2014年左右)使用樹莓派和 HackRF 透過資料庫同步,現在演進為多執行緒 Python 應用,管理三台 Blade RF 2.0 設備,可同時傳輸 15-16 個不同旗幟。系統會檢查設備可用性,自動循環挑戰,並在傳輸前進行頻譜標誌圖案(spectrum painting)以提醒參賽者。

  • 3

    信號生成方式影響滾動金鑰的難度和可行性。理想狀態是在流程圖內即時生成信號(如 Morse 碼),只需輸入文字;次佳方案是預生成二進位或音訊檔案;最差情況是重放原始 IQ 資料。目前某些挑戰需要兩小時才能滾動金鑰,因為 FL Digi 是交互式工具,必須實時等待檔案生成。

實用技巧與重點

乾貨
  • 軟體與工具:
  • Challenge CTL(github.com/rfhschallengectl)— 開源 Python 排程器
  • FL Digi — 業餘無線電數位模式檔案生成
  • QSSTV — SSTV 信號檔案生成
  • GNU Radio — 流程圖設計
  • CTFD — 開源計分系統
  • Blade RF 2.0、HackRF、USRP、RTL-SDR — 常見 SDR 硬體
  • Challenge CTL 支援的信號類型:
  • Morse 碼(CW)
  • 振幅移位鍵控(ASK)
  • 窄帶 FM、上邊帶(SSB)
  • 業餘無線電數位模式(Rigatty、Thor、FeldHell)
  • Poxag 分頁機(需要 cap code)
  • LRS 長距離系統餐廳呼機
  • SSTV 慢掃電視
  • 檔案格式:
  • devices.txt — 定義 SDR 設備(設備 ID 與 Osmo SDR 設備字串)
  • flags.txt — 挑戰清單(會議名稱、時間、各挑戰參數)
  • 音訊檔案 — .wav 格式
  • 執行步驟:
  • 執行 create_devices.py,掃描並生成 devices.txt
  • 從 RFCTF flags archive 下載或編輯 flags.txt(含波形檔路徑、頻率、參數)
  • 執行 challenge_ctl.py,指定 flags 檔與 device 檔
  • 系統自動在可用設備上循環傳輸挑戰
  • 滾動金鑰(Roll Keys):
  • Morse 碼:直接編輯 flags.txt 的文字欄位,無延遲
  • FL Digi 模式:開啟 FL Digi,選擇編碼(如 Rigatty),輸入旗幟,Audio menu → TX generate → Generate wave file(需驗證音訊採樣率)
  • SSTV:QSSTV → Sound Card output、Record → 選擇影像 → 生成檔案
  • 關鍵數據:
  • Schmoocon 2025 CTF:3 台 Blade RF、15-16 個旗幟、9055 MHz(Morse 示範頻率)
  • 現行滾動金鑰耗時:約 2 小時(因單一流程圖設計)
  • 專用硬體限制:分頁機始終是固定號碼(如 #61),無法變更;TPMS 感測器 ID 無法重編程

結論

結論

Challenge CTL 透過單一 Python 應用統一管理多個 SDR 設備和信號型態,讓任何人都能用商用硬體在家執行符合法規的 RF CTF 挑戰。

完整解析

詳細

RF CTF 的核心概念是把無線電安全轉化為可重複的教育競賽。這場比賽的目標不僅是記分,而是讓參賽者在合法、受控的環境中實驗 Wi-Fi、藍芽、RFID、業餘無線電、甚至輪胎壓力感測器等現實世界的無線訊號。與傳統數位 CTF 不同,RF CTF 必須應對法律限制(例如無法傳輸蜂巢訊號,即使設置自有基地台)、硬體相容性、以及重複性的挑戰——同一個挑戰必須在週末期間傳輸數百次,每次完全相同。

早期 RF CTF 依賴專用硬體,如真實分頁機、TPMS 感測器、古董無線電設備。這些設備的優點是高度真實和可靠,但缺點明顯:一旦硬體故障就無法替換,無法更改金鑰內容(分頁機號碼永久固定),而且攜帶和維護成本高。隨著軟體定義無線電的成熟,講者和同事們逐漸轉向使用 HackRF、Blade RF 等通用設備,配合 GNU Radio 流程圖來生成各種信號型態。

Challenge CTL 的設計就是為了解決多設備協調的複雜性。這個 Python 應用追蹤系統中的所有 SDR 設備,維護待傳輸的挑戰清單,並在設備可用時自動派配任務。現行 Schmoocon 的實裝使用三台 Blade RF 2.0 同時管理 15-16 個挑戰,系統會循環排程它們。每次傳輸前,系統還會在指定頻率上繪製 RFHS 標誌圖案,向參賽者視覺化通知挑戰即將到來。這種設計使得單一應用程式可以抽象化底層硬體差異。

信號生成是另一個關鍵面向,涉及金鑰滾動的難度。最理想的方案是完全在 GNU Radio 流程圖內生成信號——例如 Morse 碼挑戰,使用者只需在 flags.txt 中編輯文字,系統立即生成對應的 CW 訊號。次之是使用 FL Digi 等現有工具預先生成音訊檔案,但 FL Digi 是交互式軟體,滾動多個金鑰時須逐個等待即時編碼,整個流程需要約兩小時。最差的做法是重放原始 IQ 檔案,這會帶入雜訊且難以驗證。講者演示了完整工作流程:使用提供的 create_devices.py 自動掃描 SDR 設備,下載或編輯 Schmoocon 2025 的 flags.txt(內含 Morse、FM、SSTV 等多種類型),確保音訊檔案採樣率正確,最後一行 Python 命令就能在個人筆電上運行整場 CTF。

未來的開發方向包括整合虛擬挑戰(透過 ZMQ 在網路上串流,疫情期間已驗證可行)、多個 SDR 盒子之間的網路協調、充分利用 Blade RF 的雙傳輸埠以支援多天線配置、以及對不同 SDR 型號(HackRF、USRP)的自動增益調整。此外,還需要改進 FL Digi 的自動化程度,因為目前仍然是手動生成檔案的瓶頸。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「Web2 安全」的內容

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car
7 min
Web2 安全英文PODCAST8月25日

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car

SANS Stormcast

  • PNG 容器攻擊的簡易性設計:Double Cup 不依賴複雜的 Exif 或隱寫技術,只用 PNG 副檔名和檔頭來偽裝,核心是利用 findstr 指令的常見可用性讓執行變得無需額外工具。
  • Web Audio API 的隱密指紋識別:音訊於增益零的無聲狀態下播放,使用者完全無感,但錄製波形足以建立裝置特徵,在瀏覽器原生功能層面難以區分是反詐欺還是過度追蹤。
  • 域名過期引發的串聯漏洞:DMARC 報告端點使用過期域名是常見疏漏,允許攻擊者透過簡單的域名註冊取得他人的 SPF/DKIM 錯誤報告,進而收集目標系統配置情報。
Risky Bulletin: Expired credit cards can be used for malicious transactions
5 min
Web2 安全英文PODCAST8月24日

Risky Bulletin: Expired credit cards can be used for malicious transactions

Risky Business

  • 支付安全的非對稱風險:Visa卡利用未加密的卡片資料與NFC通訊,攻擊者可藉由中間人技術竄改過期日期進行交易,但MasterCard、美運卡與Discover的防護更完善,顯示不同發卡機構的安全架構存在明顯差異。
  • 國家級駭客活動的連鎖延伸:北韓Lazarus集團在2月單一事件已累積100名受害者,涵蓋大學、警察部門、媒體與醫療機構,伊朗駭客則針對基礎建設如電力系統發動破壞性攻擊,反映地緣政治在網路戰爭中的升溫。
  • AI加速漏洞生態的雙面刃:AI工具催生近2萬份漏洞概念驗證代碼發布,但同時也導致大量失效漏洞代碼氾濫,增加資安團隊甄別真實威脅的難度;Mayer Protocol遭攻擊事件中,駭客用AI鏈接六個無關的小漏洞完成盜竊170萬美元的攻擊。
SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware
5 min
Web2 安全英文PODCAST8月24日

SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware

SANS Stormcast

  • Microsoft EntraID 的遠端代碼執行漏洞已由微軟修補,初期報告顯示已遭利用但後來更正為未遭利用。這反映 Microsoft 在雲端軟體安全上的透明度提升,對漏洞採用與內部軟體相同的 CVE 編號和公告流程。
  • PowerShell 指令碼可用於驗證 MFA 部署完整性,特別是找出未啟用 MFA 的遺漏帳號。同時可以分析 EntraID 登入日誌中的異常行為,如風險係數評估和地理位置檢測,幫助組織快速識別可疑登入。
  • GitLab 的 GraphQL 代碼注入漏洞允許未認證攻擊者刪除或修改儲存庫,潛在導致供應鏈攻擊。已有公開概念驗證 (PoC) 存在,使用內部部署 GitLab 的組織必須立即修補。