狗汪汪玩轉無線電 -- GPS Hacking

狗汪汪玩轉無線電 -- GPS Hacking 

 

0x00 序


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

p1

GPS系統簡介git

GPS 系統自己很是複雜, 涉及到衛星通訊等各個領域. 這裏只是簡單介紹一下. 咱們一般所說的 GPS 全球定位系統是由美國國防部建造完成. 目前在太空中共有31顆衛星在同時運做. 通常咱們須要至少4顆衛星來完成三角定位. GPS衛星同時發送民用L1和軍用L2兩種無線信號. 咱們一般使用的是沒有加密的L1民用 1575.42MHz 的超高頻波段.github

GPS 信號裏包含了3種經常使用信息.安全

Pseudorandom code: 簡單的ID 碼, 用來識別每顆衛星.bash

Ephemeris data: 包含衛星的運行狀態, 時間日期等信息. 這在經過衛星來定位起到很是重要的做用.微信

Almanac data: 包含有每顆衛星的軌道信息,以及衛星在某個特定時段將出現的具體位置.dom

p2

0x01 BladeRF GPS 信號僞造步驟


1.1 在Ubuntu 14.04.3 中安裝 BladeRF 工具工具

p3

安裝 header 文件測試

p4

安裝 BladeRF 固件 & FPGA 鏡像

p5

完成後可在/usr/share/nuand/BladeRF/下找到hostedX40.rbfbladerf_fw.img文件. 這時即可將BladeRF插入USB接口.一般系統會自動載入FPGA 鏡像.也能夠經過命令行bladerf_cli -l /路徑/hostedX40.rbf手動載入. 在成功載入後,BladeRF主板上的3 個LED 小燈便會亮起, 同時咱們能夠加-p參數來進一步驗證系統安裝成功.

p6

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.

p7

隨後 gps-sdr-sim 會自動生成帶有經緯度信息的數據文件. 咱們即可以經過 bladerf_cli 來發送僞造的GPS 數據.

p8

1.3 GPS-SDR-SIM 運行時間問題

在實際測試過程當中汪汪發現, 默認狀況下GPS模擬器只能連續工做5分鐘左右. 經過查看源代碼後, 咱們能夠發現這是由於程序默認設置致使. 在程序設計之初爲了節省硬盤空間, 默認只生成了300秒左右的數據. 咱們能夠經過改動參數來延長工做時間. 但須要注意的是僅僅延長到15分鐘,數據即可達到5G大小.

p9

0x02 GPS信號僞造實戰


汪汪在這裏跟分享幾個實際的測試案例. 感興趣的朋友也能夠自行測試下.

2.1 微信周邊妹子

據說許多程序猿由於平時工做緊張, 性格靦腆. 很難有機會跟心中的女神接觸. 而微信中」附近的人」則解決了此類問題. 你們只要坐在家中打開GPS定位, 即可跟周邊的心儀女神 Say Hello 啦. 但美中不足的是範圍僅限幾十千米內. 那麼對某些胸懷天下, 萬花叢中過, 片葉不沾身的大神來講未免太有侷限性了. 這裏汪汪給你們帶來第一個GPS 信號僞造案例 -- 微信」附近」妹子.

據說前陣子在海南三亞有個美女扎堆的活動, 汪汪非常好奇都是啥樣的美女呢..讓咱們來查下附近的人吧. 哦..在沒發送僞造的GPS座標前,只能找到汪汪所在城市的妹子.

p10

p11

在開始發送僞造的GPS座標5分鐘後, 汪汪終於如願以償找到了三亞附近妹子 :)

哈哈..汪汪必須感嘆下..真的是技術宅改變命運啊...

p12

2.2 Nike+ 計步數僞造

不少喜歡研究移動安全的朋友必定看過蒸米發過的一篇文章 "利用Android Hook進行微信運動做弊".(感興趣的朋友能夠移步觀看http://drops.wooyun.org/tips/8416). 文中他提到了經過利用Android Hook進行計步做弊, 跟朋友圈裏的好友PK運動量. 但該方法須要手機root後,安裝相關做弊插件來實現. 對於其餘計步類軟件,還須要對插件進行相關改動. 這裏測試目標爲 Nike+ Running. 先來看段視頻. 由於完成所有攻擊效果須要必定時間, 因此本視頻作了加速處理.

p13

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 信號僞造攻擊的效果是很明顯的.

p14

0x03 總結


經過以上幾個案例, 相信你們對GPS 信號僞造有了必定程度的瞭解. 但就GPS系統自己而言, 這是一個很是好玩又很深的領域. 市面上的GPS 相關產品也總類繁多, 每款產品對GPS 欺騙攻擊的反應也各不相同. 你們能夠發揮下想象力玩出新花樣.

最後要感謝 osqzss; 王康和無數 GNURadio 愛好者們的無私分享. 正由於有了他們,咱們才能夠更好的體驗軟件無線電的無窮魅力. 推薦你們圍觀 GPS-SDR-SIM 的項目主頁和王康在黑帽大會上的演講稿. 擁有HackRF設備的朋友也能夠看看lxj616寫的「劫持GPS定位&劫持WIFI定位」.

0x04 參考文獻

相關文章
相關標籤/搜索