Universal Radio Hacker(URH):一个用于逆向解析和攻击无线通信协议的开源工具
本文內容、開發板及配件僅限用于學?;蚩蒲性核_展科研實驗!
本文介紹一個用于逆向解析和攻擊無線通信(私有)協議的開源工具。該工具是Johannes Pohl和Andreas Noack研發的,該成果也已發表在12th USENIX Workshop on Offensive Technologies(woot'18),woot是一個與Usenix Security一起舉辦的workshop。Universal Radio Hacker: A Suite for Analyzing and Attacking Stateful Wireless Protocols的原文及其演講PPT下載鏈接為:https://www.usenix.org/conference/woot18/presentation/pohl
本文基于對原文的學習和工具的使用,介紹URH的基本內容和使用方法。
目錄
一、背景介紹
二、URH設計目標
1、URH實現方法概覽
2、信號解析
3、信號分析
5、信號仿真
三、URH的安裝使用
1、Windows
2、Linux
四、URH基本功能:
1、掃描頻譜Scanning the spectrum
2、信號錄制
3、信號解析
4、信號分析
五、有用的鏈接
一、背景介紹
物聯網設備普遍使用各自的無線私有協議。這些私有協議往往關注如何在物聯網設備的資源受限情況下,能夠穩定可靠運行。但是,協議往往忽視了信息安全防護。這也就導致各種無線智能設備存在加大的安全隱患,例如無線門鎖或者汽車的無線鑰匙等很容易遭受無線竊聽、重放、篡改等攻擊。網絡攻擊者要想對這些無線設備發起深層次的攻擊,就需要深入的逆向解析這些無線私有協議。
軟件無線電設備可以設定成物聯網設備工作頻段,來進行信號發送和接收,這為攻擊者們開展無線協議逆向工作提供了很大的便利。但是,目前看來,絕大多數的軟件無線電設備工具適用于的協議逆向的工作頻段往往集中在高頻頻段(3-30MHz,例如13.56MHz的RFID的頻段),而且這些工具也無法用于充分分析協議邏輯,必須配合其他的定制化工具或者相關芯片的資料才行。
因此,本文(Universal Radio Hacker: A Suite for Analyzing and Attacking Stateful Wireless Protocols),研制了一種開源工具Universal Radio Hacker(URH),可配合常見的軟件無線電設備來對無線私有協議開展協議逆向分析,實現了信號解調、可定制的解碼、協議模糊測試和仿真功能??傮w來看,URH將協議逆向分析工作分成了以下幾個階段,即信號解析、信號分析、信號生成、信號仿真四個階段。四個階段中,上一個階段的產出可以輸入給下一個階段使用。URH聚焦協議邏輯的分析,而不是僅僅關注對高頻信號和數字信號解析過程。
二、URH設計目標
URH是一種用于分析無線私有協議的工具。URH通過控制軟件無線電設備(例如USRP、HackRF等)接收無線采樣信號,并將信號轉化為01比特序列。但是URH的功能不僅僅局限于此,URH的目標是幫助你實現對某些物聯網設備無線通信攻擊的完整過程。
具體來看,URH有以下三個設計目標:
(1)提供一個直觀的無線私有協議分析界面,并不需要使用者有太多深入的射頻知識;
(2)給用戶提供一個覆蓋對一個有狀態無線私有協議發起攻擊涉及的所有完整操作;
(3)此工具需要提供給于其他軟件配合工作的接口。
三、URH具體實現方法
1、URH實現方法概覽
URH為了實現設計目標,將無線協議逆向解析分成以下三個主要步驟:
(1)信號解析:信號解析包括對原始采樣信號的解調解碼,其目標是將接收到的信號映射成數字bit數據。
(2)信號分析:將信號解析的bit數據解碼成可讀性高的文本,其目標是分析發現協議的通信交互邏輯。
(3)信號生成與信號仿真:對于無狀態協議的攻擊,信號生成階段是在協議邏輯分析的基礎上生成可以跟物聯網設備通信交互的數據包。對于有狀態協議的攻擊,則需要通過信號仿真階段來實現對協議的仿真和特定協議字段的模糊測試與逆向分析。
2、信號解析
信號解析的主要目的是從接收到的信號中提取出二進制的比特數據。為此,接收信號需要進行正確的解調。在解調方面,雖然每個已調信號可能有幅度、頻率和相位不同的調制方法,但是URH希望能夠提供一種盡可能通用的解調方法。因此,URH不得不針對已調信號進行一些預處理。URH針對ASK、PSK和FSK三種調制,分別實現了預處理算法。無論已調信號用的是什么調制方式,URH都是將已調信號預處理成一種矩形信號,如下圖所示。
3、信號分析
一旦得到了信號解析結果(即01bit),接下來的分析工作就是實際的協議邏輯分析工作。
4、信號生成
在完成了信號解析和信號分析之后,你就掌握了一些協議的格式,接下來為了驗證你的分析是否正確,就可以通過自己封裝一些數據包并發送給物聯網接收設備來驗證一下了。信號生成就是實現這個操作的階段。
5、信號仿真
信號生成階段的最大局限就是,對于那些有狀態的協議,由于無法偽造有效的序列號或者加密后的挑戰響應值,所以無法實施有效的攻擊。為了解決這個問題,URH提供了一個信號仿真的功能。解決方案細節見論文原文。
三、URH的安裝使用
https://github.com/jopohl/urh#Installation
1、Windows
On Windows, URH can be installed with its?Installer. No further dependencies are required.
If you get an error about missing?api-ms-win-crt-runtime-l1-1-0.dll, run Windows Update or directly install?KB2999226.
2、Linux
Install via Package Manager
URH is included in the repositories of many linux distributions such as?Arch Linux,?Gentoo,?Fedora,?openSUSE?or?NixOS. There is also a package for?FreeBSD. If available, simply use your package manager to install URH.
Generic Installation with pip (Ubuntu/Debian)
URH you can also be installed with using?python3 -m pip install urh. In case you are running?Ubuntu?or?Debian?read on for more specific instructions.
In order to use native device backends, make sure you install the?-dev?package for your desired SDRs, that is?libairspy-dev,?libhackrf-dev,?librtlsdr-dev,?libuhd-dev.
If your device does not have a?-dev?package, e.g. LimeSDR, you need to manually create a symlink to the?.so, like this:
sudo ln -s /usr/lib/x86_64-linux-gnu/libLimeSuite.so.17.02.2 /usr/lib/x86_64-linux-gnu/libLimeSuite.sobefore?installing URH, using:
sudo apt-get update sudo apt-get install python3-numpy python3-psutil python3-zmq python3-pyqt5 g++ libpython3-dev python3-pip cython3 sudo pip3 install urh四、URH基本功能:
我用HackRF和無線門鈴測試了一下URH的基本功能。用到的硬件包括:
(1)HackRF One:https://item.taobao.com/item.htm?spm=a230r.1.14.171.eaff79bavAjPbV&id=526187854860&ns=1&abbucket=8#detail
(2)SMA拉桿天線:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4023-13255721722.13.33ba3d88e65hf9&id=563602659653
(3)無線門鈴:工作頻段315MHz。
1、掃描頻譜Scanning the spectrum
選擇File—》Spectrum Analyzer
下邊的圖是我用URH來接收無線門鈴信號的頻譜,無線門鈴的發射信號頻率為315MHz。
在左邊的Device setting可以選擇設備Device,設置接收信號中心頻率、采樣率、帶寬、增益等,當你想更換接收信號頻率時,可以在左邊的Frequency這里修改,也可以直接在右邊的頻譜中點擊你想接收的頻率就可以自動切換過去。
2、信號錄制
點擊File--->Record Signal
右邊界面中的信號,放大后如下圖所示
3、信號解析
Interpretation界面:
可以用鼠標選擇信號波形,選中的區域為藍色。選中的區域之后,下邊的01序列也會相應灰色高亮顯示出來。
Signal View的下拉菜單中選擇Spectrogram。
4、信號分析
Analysis界面,這里是URH解析之后的01序列。
如果勾選“mark diffs in protocol”之后,會把每行不一樣的比特以紅色標記出來,方便分析者對比。
更多功能介紹以及論文的一些實現細節還待深入研究,未完待續。
五、有用的鏈接
https://www.usenix.org/conference/woot18/presentation/pohl
https://github.com/jopohl/urh
?
總結
以上是生活随笔為你收集整理的Universal Radio Hacker(URH):一个用于逆向解析和攻击无线通信协议的开源工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 物联网通信协议清单
- 下一篇: 关于html 音乐播放器代码|音乐播放器