SlideShare a Scribd company logo
⽆无⼈人飞⾏行器安全性分析 

RAYXCP
航拍 送货 监控
民⽤用⽆无⼈人机的使⽤用范围
飞⾏行器类型
飞⾏行器类型
飞⾏行器类型
飞⾏行器类型
飞⾏行器的组成部分
⦿ ⻜飞⾏行器机⾝身
⦿ 遥控器
⦿ ⼿手机app
机⾝身组成
⦿ 轴机⾝身
⦿ 电机
⦿ 接收器
⦿ 图传系统
⦿ 云台
⦿ 相机
⦿ 电池
遥控器组成
⦿ 操纵杆
⦿ 中继器
⦿ 移动设备
⦿ 电池
控制⽅方式
⦿ 摇控器:
遥控器 ⻜飞⾏行器的信号接收器
⦿ ⼿手机App:
⻜飞⾏行器的
WiFi模块
遥控器的
中继器
⼿手机等
移动设备
遥控器频率信号5.8GHz
WiFi频率信号2.4GHz
WiFi局域⺴⽹网
控制⽅方式
“所有的输⼊入信息都可能有威胁”
⦿ 遥控器和
⦿ GPS和磁场等
WiFi局域⺴⽹网
改变飞⾏行器的输⼊入信息将改变飞⾏行器的运⾏行
WiFi局域⺴⽹网初探
⦿ 该⺴⽹网络为开放式⺴⽹网络,多设备可同时联⼊入
(WEP⽆无密码)
⦿ WiFi名前缀固定
⦿ WiFi接收距离500m左右(⽆无遮挡)
⦿ 进⼊入WiFi后扫描的结果(通过Nmap):
中继器 IP:192.168.1.2
⼿手机app IP:192.168.1.1xx/2xx
⻜飞⾏行器内置WiFi模块 IP:192.168.1.1
⻜飞⾏行器上的摄像头 IP:192.168.1.10
WiFi局域⺴⽹网初探
⦿ 扫描局域⺴⽹网寻找端⼝口
开放端⼝口
22端⼝口----远程登录端⼝口
WiFi局域⺴⽹网初探
⦿ 寻找22端⼝口的登录⼝口令
由于怀疑登录⽅方
在⼿手机App中
因此反解安卓App
apktool d app.apk
WiFi局域⺴⽹网初探
⦿ 登陆SSH服务:
⽤用户名:root
密码:固定的8位数字
WiFi局域⺴⽹网初探
⦿ 了解⺫⽬目标系统
OpenWrt系统(裁剪系统-安装包不全)
DISTRIB_CODENAME="barrier_breaker"
DISTRIB_TARGET="ar71xx/generic"
WiFi局域⺴⽹网初探
⦿ OpenWrt系统
下载安装预编译⽂文件(补充OpenWrt安装包)
http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/
packages/base/
opkg install tcpdump.ipk
搭建编译环境(给更改系统创造环境)
https://dev.openwrt.org/
突破条件
⦿ 此时已经有了root权限,但是我们的⺫⽬目的是控制
⻜飞⾏行器,所以我们要了解⼿手机App是如何实现控
制⻜飞⾏行的
突破⼝口—特有功能
⦿ ⾃自动返航功能
在起⻜飞时会记录起始点的GPS坐标为返航点
动态返航点(⻜飞⾏行器将⾃自动定时刷新返航点为⼿手机app所记
录的GPS坐标)
触发条件:当遥控器和⻜飞⾏行器失联超过3秒后,⻜飞⾏行器将悬
停并开始返回⾄至记录的GPS返航点
突破⼝口—特有功能
⦿ “地⾯面站”功能(⾃自动导航)
通过⼿手机app地⾯面站功能,在导航地图上设置多个坐标,
并发送指令使⻜飞⾏行器完成预定⻜飞⾏行
针对突破⼝口的猜想
⦿ ⾃自动返航功能
● 改变返航点 输⼊入新位置
● 触发返航条件(待其失联或触发失联)
• 等待⾃自然的失控现象发⽣生
• 可以留个后⻔门(在OpenWrt上替换)
• 实时对遥控器的干扰引起失控(暂不考虑)
• 对⾁肉眼不可操作时建议为主动触发⾃自动返回
针对突破⼝口的猜想
⦿ “地⾯面站”功能
● 在GPS模式下,不受遥控杆件控制,地⾯面站功能为唯⼀一
控制⽅方,可直接控制⻜飞⾏行器⻜飞向指定地点
针对突破⼝口的猜想
⦿ 此时,上⽂文提到已经有了root权限,且⻜飞⾏行器的
WiFi模块只接收⼀一个客户端连接,我们可以通
过iptables(OpenWrt⾃自带的⺴⽹网络防⽕火墙)来阻
断当前连接,更换成新连接,进⽽而替换了操作
⽅方。
截机实验
⦿ 成功
思维拓展
⦿ 在现有App功能之外是否有其他的可能?
功能的实现
⦿ 现有功能的实现:
⻜飞⾏行控制芯⽚片
● ⼿手机App WiFi局域⺴⽹网
串⼝口(ttyS0)
⻜飞⾏行动作
● ⻜飞⾏行器WiFi模块的2001端⼝口
(2001端⼝口为ser2net服务)
功能的实现
⦿ 界⾯面和⺴⽹网络部分通过Java实现
⦿ 数据包的编解码和校验和计算通过so实现
功能的实现-地⾯面站界⾯面
⦿ 界⾯面相关
● gs.views.*
○ EditorView 某些⻜飞⾏行限制是在界⾯面端中处理
地⾯面站功能的实现-⺴⽹网络连接
⦿ 连接2001端⼝口(0x7d1)
⦿ 初始化:
Midware/a/b/a.smali
invoke-direct {p0, v0, v1}, Ldji/midware/a/h;-><init>(Ljava/lang/
String;I)V
Midware/a/h.smali
invoke-direct {v0, p1, p2}, Ljava/net/InetSocketAddress;-
><init>(Ljava/lang/String;I)V
连接:
Midware/a/k.smali
invoke-virtual {v0, v1, v2}, Ljava/net/Socket;->connect(Ljava/
net/SocketAddress;I)V
通信包结构
⦿ ⺴⽹网络包头结构
Ref: https://github.com/noahwilliamsson/dji- phantom-vision
struct pkt {
uint16_t magic;
uint8_t len;
uint8_t port;
uint16_t seq;
uint8_t cmd;
uint8_t status;
uint8_t data[255 - 7];
};
返航点包结构
⦿ 设置动态返航点
struct pkt {
uint16_t magic;
uint8_t len;
uint8_t port; //0x0a
uint16_t seq;
uint8_t cmd; //0x4b
uint8_t status;
uint8_t data[255 - 7];
};
⦿ 地⾯面站相关包结构
struct pkt {
uint16_t magic;
uint8_t len;
uint8_t port; 0x0a
uint16_t seq;
uint8_t cmd; // 0x5a
uint8_t status;
uint8_t data[255 - 7];
};
功能的实现-地⾯面站编码⽅方式
⦿ 地⾯面站数据编码
.midware.a.b.f->a()V
LibGroundStation.so
getCRCFromData
EncodeData
tea_encrypt
地⾯面站功能的实现-数据
⦿
初始化
>1D 00 00 00 00 03 03 00 80 00 00 00 00 00 02 00 00 00 00 00 41 E8 03
00 00 CD AB 4D CA
>0F 00 00 00 00 46 03 00 80 00 00 CD AB 4A B9
⦿
上传坐标点
>43 00 00 00 00 01 03 00 80 00 00 00 00 00 00 C7 E0 69 EB 61 5B E6
3F 95 B9 4C F5 F4 3E 00 40 00 00 F0 41 00 00 00 41 00 00 00 00 B4
43 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CD AB E1
B8
⦿
起⻜飞指令
>12 00 00 00 00 05 03 00 80 00 04 00 00 00 CD AB 5D 91
地⾯面站功能的实现-数据
⦿ 坐标点数据
w.id = p[0] | p[1] << 8 | p[2] << 16 | p[3] << 24; p += 4;
w.turn_mode = p[0]; p += 1;
w.lat = load_le_double(p) * 180.0 / 3.141592653589793; p +=
8;
w.lon = load_le_double(p) * 180.0 / 3.141592653589793; p
+= 8;
w.alt = load_le_float(p); p += 4;
w.vel = load_le_float(p); p += 4;
w.timelimit = p[0] | p[1] << 8; p += 2;
w.heading = load_le_float(p);
功能的实现-调试技巧
⦿ 为了明确调⽤用关系和采集数据包,在smali中添
加了调试⽇日志
● 在OutputStream.write前
● 在encodeData前后
后续的问题
⦿ ⻜飞⾏行控制模式
● GPS
● 姿态
结语
⦿ 通信信道安全的重要性
● 需要加密和⾝身份认证
⦿ 加固系统和功能接⼝口
● 关闭系统级⼊入⼝口
⦿ 尽量在低层做校验
谢谢

More Related Content

PDF
2.从案件看国内 d do s 的最新方式
Hsiao Tim
 
PDF
0.struts 2 事件两周年启示+乌云社区颁奖
Hsiao Tim
 
PDF
8.如何从外围进入各大公司内网
Hsiao Tim
 
PDF
5.云安全现场演示
Hsiao Tim
 
PDF
3.android 应用程序通用自动脱壳方法研究
Hsiao Tim
 
PDF
4.解析 p2 p 金融安全
Hsiao Tim
 
PPTX
Adv 420 final presentation
Timothy Kim
 
PDF
7.互联网安全人才发展现状
Hsiao Tim
 
2.从案件看国内 d do s 的最新方式
Hsiao Tim
 
0.struts 2 事件两周年启示+乌云社区颁奖
Hsiao Tim
 
8.如何从外围进入各大公司内网
Hsiao Tim
 
5.云安全现场演示
Hsiao Tim
 
3.android 应用程序通用自动脱壳方法研究
Hsiao Tim
 
4.解析 p2 p 金融安全
Hsiao Tim
 
Adv 420 final presentation
Timothy Kim
 
7.互联网安全人才发展现状
Hsiao Tim
 

Viewers also liked (11)

PDF
1.手机号背后的灰色地带
Hsiao Tim
 
PDF
9.“企业应急响应与反渗透”之真实案例分析
Hsiao Tim
 
PDF
4.由 pc 端安全问题引发的重重隐患
Hsiao Tim
 
PDF
1.去哪儿安全-从 0 到 1
Hsiao Tim
 
PPT
Xmpp
Hsiao Tim
 
PPTX
The truth meter
Hsiao Tim
 
PDF
社群網站資料探勘技術
Hsiao Tim
 
PDF
6.ctf经验分享
Hsiao Tim
 
PDF
6.web 安全架构浅谈
Hsiao Tim
 
PDF
2.3 g:4g usim 卡的安全性分析
Hsiao Tim
 
PDF
5.多角度对抗 waf 的思路与实例
Hsiao Tim
 
1.手机号背后的灰色地带
Hsiao Tim
 
9.“企业应急响应与反渗透”之真实案例分析
Hsiao Tim
 
4.由 pc 端安全问题引发的重重隐患
Hsiao Tim
 
1.去哪儿安全-从 0 到 1
Hsiao Tim
 
Xmpp
Hsiao Tim
 
The truth meter
Hsiao Tim
 
社群網站資料探勘技術
Hsiao Tim
 
6.ctf经验分享
Hsiao Tim
 
6.web 安全架构浅谈
Hsiao Tim
 
2.3 g:4g usim 卡的安全性分析
Hsiao Tim
 
5.多角度对抗 waf 的思路与实例
Hsiao Tim
 
Ad

3.无人飞行器安全性分析