GPS Hacking 在過去幾年的安全會議上一直都是很受關注的議題. 但每每由於內容太過學術化, 所需設備成本過高. 讓許多感興趣的朋友苦於沒法入門. 直到GPS-SDR-SIM 這類開源項目的出現, 跟王康大牛在今年Blackhat Europe 2015 上的主題演講. 完全打開了GPS 的神祕面紗. 讓小夥伴能夠真正過一把GPS Hacking 的癮.php
想必你們對於研究GPS的神器, 軟件無線電SDR都略有所聞. 但早期設備USRP價格昂貴. 直到你們發現了神奇的電視棒 RTL-SDR. 前陣子彷佛人人都喜歡用它來看大"灰機". 不過由於硬件上的限制,電視棒只能用來收取數據. 而 HackRF 跟 BladeRF 因其支持收發數據, 而價格又比USRP 便宜許多. 便成了當下熱衷玩無線的朋友們的首選. 固然HackRF 跟 BladeRF之間也在所支持的頻率, 採樣率上有所不一樣. 最重要的一點BladeRF是全雙工哦. 如下是幾款SDR 設備之間的對比圖, 你們能夠根據具體須要選購.html
GPS系統簡介git
GPS 系統自己很是複雜, 涉及到衛星通訊等各個領域. 這裏只是簡單介紹一下. 咱們一般所說的 GPS 全球定位系統是由美國國防部建造完成. 目前在太空中共有31顆衛星在同時運做. 通常咱們須要至少4顆衛星來完成三角定位. GPS衛星同時發送民用L1和軍用L2兩種無線信號. 咱們一般使用的是沒有加密的L1民用 1575.42MHz 的超高頻波段.github
GPS 信號裏包含了3種經常使用信息.安全
Pseudorandom code: 簡單的ID 碼, 用來識別每顆衛星.bash
Ephemeris data: 包含衛星的運行狀態, 時間日期等信息. 這在經過衛星來定位起到很是重要的做用.微信
Almanac data: 包含有每顆衛星的軌道信息,以及衛星在某個特定時段將出現的具體位置.dom
1.1 在Ubuntu 14.04.3 中安裝 BladeRF 工具工具
安裝 header 文件測試
安裝 BladeRF 固件 & FPGA 鏡像
完成後可在/usr/share/nuand/BladeRF/
下找到hostedX40.rbf
跟bladerf_fw.img
文件. 這時即可將BladeRF插入USB接口.一般系統會自動載入FPGA 鏡像.也能夠經過命令行bladerf_cli -l /路徑/hostedX40.rbf
手動載入. 在成功載入後,BladeRF主板上的3 個LED 小燈便會亮起, 同時咱們能夠加-p
參數來進一步驗證系統安裝成功.
1.2 GPS-SDR-SIM 安裝
1
2
3
|
git clone https:
//github
.com
/osqzss/gps-sdr-sim
.git
cd
gps-sdr-sim
gcc gpssim.c -lm -O3 -o gps-sdr-sim
|
設置經緯度並生成數據樣本. 注意這裏 I/Q基帶信號數據爲16.
隨後 gps-sdr-sim 會自動生成帶有經緯度信息的數據文件. 咱們即可以經過 bladerf_cli 來發送僞造的GPS 數據.
1.3 GPS-SDR-SIM 運行時間問題
在實際測試過程當中汪汪發現, 默認狀況下GPS模擬器只能連續工做5分鐘左右. 經過查看源代碼後, 咱們能夠發現這是由於程序默認設置致使. 在程序設計之初爲了節省硬盤空間, 默認只生成了300秒左右的數據. 咱們能夠經過改動參數來延長工做時間. 但須要注意的是僅僅延長到15分鐘,數據即可達到5G大小.
汪汪在這裏跟分享幾個實際的測試案例. 感興趣的朋友也能夠自行測試下.
2.1 微信周邊妹子
據說許多程序猿由於平時工做緊張, 性格靦腆. 很難有機會跟心中的女神接觸. 而微信中」附近的人」則解決了此類問題. 你們只要坐在家中打開GPS定位, 即可跟周邊的心儀女神 Say Hello 啦. 但美中不足的是範圍僅限幾十千米內. 那麼對某些胸懷天下, 萬花叢中過, 片葉不沾身的大神來講未免太有侷限性了. 這裏汪汪給你們帶來第一個GPS 信號僞造案例 -- 微信」附近」妹子.
據說前陣子在海南三亞有個美女扎堆的活動, 汪汪非常好奇都是啥樣的美女呢..讓咱們來查下附近的人吧. 哦..在沒發送僞造的GPS座標前,只能找到汪汪所在城市的妹子.
在開始發送僞造的GPS座標5分鐘後, 汪汪終於如願以償找到了三亞附近妹子 :)
哈哈..汪汪必須感嘆下..真的是技術宅改變命運啊...
2.2 Nike+ 計步數僞造
不少喜歡研究移動安全的朋友必定看過蒸米發過的一篇文章 "利用Android Hook進行微信運動做弊".(感興趣的朋友能夠移步觀看http://drops.wooyun.org/tips/8416). 文中他提到了經過利用Android Hook進行計步做弊, 跟朋友圈裏的好友PK運動量. 但該方法須要手機root後,安裝相關做弊插件來實現. 對於其餘計步類軟件,還須要對插件進行相關改動. 這裏測試目標爲 Nike+ Running. 先來看段視頻. 由於完成所有攻擊效果須要必定時間, 因此本視頻作了加速處理.
http://player.youku.com/player.php/sid/XMTQwMzAxMTk4OA==/v.swf
經過GPS-SDR-SIM的主頁, 咱們能夠得知僞造的的GPS經緯度數據能夠是靜態, 也能夠是動態模式的. 爲了成功模擬出運動軌跡, 咱們須要僞造動態模式的GPS經緯度數據. 能夠經過如下參數來完成.
1
|
gps-sdr-sim -e brdc3540.14n -u circle.csv -b 16
|
你們能夠看到經過直接對GPS信號進行僞造, 成功欺騙了Nike+ 這類計步器APP. 即便在被窩裏躺着,也能夠跑第一哦. 固然汪汪仍是但願你們能夠真的跑起來, 享受運動的快樂.
2.3 僞造信號範圍測試
從前面幾個實驗能夠知道, 經過軟件模擬信號, GPS接收設備在短距離內的效果是很是明顯的. 那麼在較大範圍內GPS接收設備的效果如何呢?實際的有效距離又是多遠呢?固然這跟設備的輸出功率, 天線增益, 以及附近其餘信號干擾程度有關. 因此這裏汪汪只是作個簡單的室內測試. 你們仍是要以實際狀況爲準. 請先看這段測試視頻.
http://player.youku.com/player.php/sid/XMTQwMzAwNzMxNg==/v.swf
從視頻能夠看到在這個直線距離大概爲25米, 中間無任何障礙物的走廊裏成功改變了GPS 接收設備的經緯度. 一般真實的GPS 信號從2萬公里的高空下到地面已經很是微弱, 所以在室內幾乎檢測不到信號. 因此在室內GPS 信號僞造攻擊的效果是很明顯的.
經過以上幾個案例, 相信你們對GPS 信號僞造有了必定程度的瞭解. 但就GPS系統自己而言, 這是一個很是好玩又很深的領域. 市面上的GPS 相關產品也總類繁多, 每款產品對GPS 欺騙攻擊的反應也各不相同. 你們能夠發揮下想象力玩出新花樣.
最後要感謝 osqzss; 王康和無數 GNURadio 愛好者們的無私分享. 正由於有了他們,咱們才能夠更好的體驗軟件無線電的無窮魅力. 推薦你們圍觀 GPS-SDR-SIM 的項目主頁和王康在黑帽大會上的演講稿. 擁有HackRF設備的朋友也能夠看看lxj616寫的「劫持GPS定位&劫持WIFI定位」.