輕鬆劫持無人機,安全問題令人堪憂

2021-08-15 20:59:52 字數 3300 閱讀 1082

無人機!

無人機!

無人機!

無人機來了

我們又多了一架無人機,好開心!但是作為乙個技術黨作為好奇心暴強的人,不搞(zuo)一波豈不是很對不起自己?

hackrf 一台

一台已經裝好kali linux的電腦

遙控無人機和配套的遙控器

hackrf環境配置見之前的文章,這裡不再贅述。

在對裝置進行反覆的操作之後,發現所獲得資料實在太少,甚至連無人機工作的具體頻段都無法獲知,僅僅只是知道工作在2.4g頻段附近。

為獲得更多更詳細資料,我們對遙控器和無人機進行了拆解。

對遙控器的拆解

可以發現遙控器的控制板上僅僅只有一顆晶元,所以這顆晶元應該就是整個遙控器的控制核心。這顆晶元的型號是xns104晶元。查詢得知,這是一顆ad型2.4g 高速無線收發微控制器晶元,可以進行程式設計和無線收發通訊。

對無人機的拆解

1為xn297l晶元。但是晶元2被廠家抹去了晶元型號。(嘖嘖嘖,一定是個重要的晶元)

現在獲得的晶元有無人機上的xn297l晶元和遙控器的xns104晶元。

xn297l晶元只有無線收發的功能,無法作為無人機的mcu(主控晶元)。所以可推斷獲知無人機上面被抹去訊號的晶元應該是一顆mcu晶元。

無人機和遙控器之間的通訊通過xn297l晶元和xns104晶元進行。xns104晶元整合了xn297晶元的功能,所以兩者的通訊機制應該是基於xn297晶元的。

接下來,我們需要分析xn297l晶元的具體通訊狀況。通過技術手冊,我們發現這樣的內容,如下所示。

如此看來,重放攻擊似乎是不大可行的,但是柳暗花明又一村,翻到最底部的時候突然看到了xn297l的資料報格式,具體如下圖所示:

從資料報文裡面可以發現pid碼僅僅只有兩個位元位,因此這裡使用的pid並不是為了防止重放攻擊的,而是用來去除重複資料報文的。僅僅兩個位元位的pid碼可以在短時間內遍歷,所以重放攻擊應該是可行的,確認了這一點之後,就可以展開下面的劫持操作了。

劫持這個型別的無人機,我們需要去獲取遙控器發射的訊號。首先來看看無人機的工作機制。

工作機制:

首次對碼,確認無人機處於可以使用的狀態

二次對碼,成功建立遙控器和無人機的通訊線路

最後,遙控器成功操控無人機

前兩者在開啟遙控器和無人機的時候會自動完成,但是對於劫持而言,我們需要去模擬這兩個步驟,從而獲取到無人機的控制權。

獲取無人機和遙控器的一次對碼資訊:

使用kali linux下的gqrx來確定配對資訊的所在頻率,單獨開啟無人機,通道表現如下圖所示,通道中沒有任何資訊

開啟遙控器之後,通道中開始出現大量內容,如下圖

由上可知,首次對碼資訊僅僅由遙控器發出,無人機僅僅來接收這個資訊。所以,我們可以錄製相應的頻段資訊來獲得模擬遙控器和無人機之間的對碼過程。

錄製資訊的hackrf操作

hackrf_transfer –r fly.raw –f 2479000000 –g16 –l 8 –s 8000000 –b 4000000
在kali linux上面執行上述操作後,如下圖所示:

獲取無人機的二次對碼資訊:

獲得了無人機的一次對碼資訊之後,接下來就需要去獲取無人機的二次對碼資訊。

無人機的二次對碼資訊比一次對碼資訊更加的複雜,這是由於一次對碼完成之後,二次對碼中就引入了ack機制,來確保無人機收到二次對碼的資訊。

所以在這一步中,雖然同樣可以使用重放攻擊,但是需要對針對ack機制,多次重放二次對碼的資料報文段。具體的錄製操作和和一次對碼的類似。

獲得了上述報文之後,就可以去獲取飛機的操作資訊了,操作資訊的處理方法和二次對碼的相同。不同的是,需要確保操作資訊錄製的時間長度,來防止pid機制將重放出去的訊號當作重複的報文進行丟棄。

在之前那篇門鈴重放中,我們使用了gnu radio工具來重放訊號,不得不說視覺化的軟體減少了很多的操作步驟。

但是這一次,我們直接使用hackrf來進行錄製訊號的重放,我們將這個操作寫成了shell指令碼,接下來只需要執行shell指令碼就可以了。具體的shell指令碼如下所示:

#!/bin/bash 

hackrf_transfer -t flystart.raw -f2479000000 -a 1 -s 8000000 -b 4000000 -x 47

hackrf_transfer -t flying.raw -f 2479000000-a 1 -s 8000000 -b 400000 -x 47

這樣,我們就完成了無人機的劫持

duang~

大家可以看到,期初飛機在正常飛

指令碼很簡單哦,是不是已經迫不及待想動手嘗試一下啦!

由於ack和pid機制的存在,錄製訊號的時候,請確保無人機和遙控器同時處於開啟狀態,否則,錄製的訊號很可能是無效的!

實驗時,由於工作在2.4ghz頻段的裝置有很多,比如說wifi藍芽等,所以請找乙個無線電環境比較好的地方,進行本次實驗!

在對這架無人機研究過程中,可以發現這架無人機具有以下弱點:首先pid碼的位數不夠長,使得重放攻擊能夠通過一些修改和變通來實現;第二點,在ack機制上面,沒有充分利用ack的安全機制,**上也沒有實施晶元擁有的雙向認證功能。

也希望有關廠商能夠對這兩個問題進行修復,使這架無人機變得更加安全.

六旋翼無人機(無人機應急基站)或巡檢無人機

諾基亞當時的無人機基站就是用的六旋翼嘛。無人機還可以去用來檢查基站。把六旋翼的原理弄懂。六旋翼和四旋翼的區別是不是還是在旋翼動力分配上?就像球上平衡車三輪和四輪的區別?其實球上平衡車不管三輪還是四倫,都是兩個角度環兩個速度環,可以投影成兩個一級倒立擺,只是最後轉化成的每個輪子的pwm的公式改變一下就...

無人機相關

無人機影像資料拼接原理 1.資料預處理 輻射校正 相鄰影象在色度上趨於一致 幾何校正 2.影象配準 提取特徵點 尺度不變特徵變換 scale invariant feature transform,sift 3.影象融合 拼接重疊區使用最佳縫合線去除 鬼影 生成的dsm 若pos資料中的高程為無人機...

無人機初探

無人機分類 1.固定翼飛機 fixed wing plane 簡稱為飛機 英語 plane 是指由動力裝置產生前進的推力或拉力,由機身的固定機翼產生公升力,在大氣層內飛行的重於空氣的航空器。e.g.我們出差或旅行時,乘坐的飛機。2.多旋翼無人機,是一種具有三個及以上旋翼軸的特殊的無人駕駛旋翼飛行器。...