Null Thinking

ボードゲームとコンピュータを糧に生きています。

ドローンの制御パケットを眺めてみた

ドローンを飛ばそうと意気揚々と研究室に行ったら外が大嵐で飛ばせない(´・ω・`)

ってことで飛ばして遊ぶのも楽しいですが、たまにはおべんきょーもしないとまずいので知り合いの先輩がいるお隣の研究室の実験スペースを借りてドローンのネットワークを流れるパケットを観察してみました。

ネットワーク初心者なので適当なこと言ってるかもしれませんが、指摘していただけるとありがたいです。

 

今回使ったドローンはAR. Drone2という機体で研究室に2台あるドローンのうちの新しい方です。

f:id:tokky_cpp:20150901231513j:plain

 

【操縦方法】

とっても簡単!

操縦用のiPhoneアプリをインストールするだけ!!

複数あるみたいですが、今回はAR.Free Flightというアプリを使いました。

AR.Free Flight

AR.Free Flight

  • Parrot SA
  • エンターテインメント
  • 無料

ドローンにバッテリーをつなぐと自動的にネットワークが作られてそこに接続すると操縦できる仕様になっています。PCからでもネットワークにつなげるので監視できるというわけです。 

 

Wiresharkで眺めていると、プロトコルがar_droneとなっているわっかりやすいのが目に入ったので他のプロトコルはそっちのけでとりあえずフィルタリングしてみるとこんな感じでした。

f:id:tokky_cpp:20150901225737p:plain

基本的に186バイトのパケットが飛ばされていて、一部200バイトを超えるものが見えます。

さらにフィルタをかけてみるとこんな感じ。

f:id:tokky_cpp:20150901231032p:plain

"userbox_cmd"となっているので、これがきっと離陸の制御コマンドだろうという雑な推測。だって他にないんだもん!!

 

他にもこんなのを発見。

f:id:tokky_cpp:20150901231010p:plain

"rescue"となっているので離陸のコマンドですかねー

 

常にドローンからアプリ側にカメラ画像を送信しているのでar_drone以外のプロトコルも眺めれば面白いのでしょうが時間が無かったので、1時間くらいやって解散。あえてググらずに推測でやりましたが、もうちょっと推測でやってみたい気もするので調べないでおこうと思います。

 仕様を把握できればパケット手組みして投げつければ乗っ取れてしまいそう。この機体はそもそも脆弱性があるという記事を見つけた気がするので、その辺も実証したいですね。