文章出處

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

 

0x00 序


GPS Hacking 在過去幾年的安全會議上一直都是很受關注的議題. 但往往因為內容太過學術化, 所需設備成本太高. 讓許多感興趣的朋友苦于無法入門. 直到GPS-SDR-SIM 這類開源項目的出現, 跟王康大牛在今年Blackhat Europe 2015 上的主題演講. 徹底打開了GPS 的神秘面紗. 讓小伙伴可以真正過一把GPS Hacking 的癮.

想必大家對于研究GPS的神器, 軟件無線電SDR都略有所聞. 但早期設備USRP價格昂貴. 直到大家發現了神奇的電視棒 RTL-SDR. 前陣子似乎人人都喜歡用它來看大"灰機". 不過因為硬件上的限制,電視棒只能用來收取數據. 而 HackRF 跟 BladeRF 因其支持收發數據, 而價格又比USRP 便宜許多. 便成了當下熱衷玩無線的朋友們的首選. 當然HackRF 跟 BladeRF之間也在所支持的頻率, 采樣率上有所不同. 最重要的一點BladeRF是全雙工哦. 以下是幾款SDR 設備之間的對比圖, 大家可以根據具體需要選購.

p1

GPS系統簡介

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

GPS 信號里包含了3種常用信息.

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

Ephemeris data: 包含衛星的運行狀態, 時間日期等信息. 這在通過衛星來定位起到非常重要的作用.

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

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 參考文獻


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()