Submit Search
3.无人飞行器安全性分析
2 likes
•
444 views
AI-enhanced description
H
Hsiao Tim
本文分析了民用无人机的安全性及其控制系统,包括飞行器的组成部分与控制方式。探讨了如何利用存在的安全漏洞入侵无人机,以及针对漏洞的潜在攻击策略。最后强调了通信信道的安全性和系统级接口保护的重要性。
Art & Photos
Read more
1 of 38
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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.无人飞行器安全性分析
1.
⽆无⼈人飞⾏行器安全性分析 RAYXCP
2.
航拍 送货 监控 民⽤用⽆无⼈人机的使⽤用范围
3.
飞⾏行器类型
4.
飞⾏行器类型
5.
飞⾏行器类型
6.
飞⾏行器类型
7.
飞⾏行器的组成部分 ⦿ ⻜飞⾏行器机⾝身 ⦿ 遥控器 ⦿
⼿手机app
8.
机⾝身组成 ⦿ 轴机⾝身 ⦿ 电机 ⦿
接收器 ⦿ 图传系统 ⦿ 云台 ⦿ 相机 ⦿ 电池
9.
遥控器组成 ⦿ 操纵杆 ⦿ 中继器 ⦿
移动设备 ⦿ 电池
10.
控制⽅方式 ⦿ 摇控器: 遥控器 ⻜飞⾏行器的信号接收器 ⦿
⼿手机App: ⻜飞⾏行器的 WiFi模块 遥控器的 中继器 ⼿手机等 移动设备 遥控器频率信号5.8GHz WiFi频率信号2.4GHz WiFi局域⺴⽹网
11.
控制⽅方式 “所有的输⼊入信息都可能有威胁” ⦿ 遥控器和 ⦿ GPS和磁场等 WiFi局域⺴⽹网 改变飞⾏行器的输⼊入信息将改变飞⾏行器的运⾏行
12.
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
13.
WiFi局域⺴⽹网初探 ⦿ 扫描局域⺴⽹网寻找端⼝口 开放端⼝口 22端⼝口----远程登录端⼝口
14.
WiFi局域⺴⽹网初探 ⦿ 寻找22端⼝口的登录⼝口令 由于怀疑登录⽅方 在⼿手机App中 因此反解安卓App apktool d
app.apk
15.
WiFi局域⺴⽹网初探 ⦿ 登陆SSH服务: ⽤用户名:root 密码:固定的8位数字
16.
WiFi局域⺴⽹网初探 ⦿ 了解⺫⽬目标系统 OpenWrt系统(裁剪系统-安装包不全) DISTRIB_CODENAME="barrier_breaker" DISTRIB_TARGET="ar71xx/generic"
17.
WiFi局域⺴⽹网初探 ⦿ OpenWrt系统 下载安装预编译⽂文件(补充OpenWrt安装包) http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/ packages/base/ opkg install
tcpdump.ipk 搭建编译环境(给更改系统创造环境) https://dev.openwrt.org/
18.
突破条件 ⦿ 此时已经有了root权限,但是我们的⺫⽬目的是控制 ⻜飞⾏行器,所以我们要了解⼿手机App是如何实现控 制⻜飞⾏行的
19.
突破⼝口—特有功能 ⦿ ⾃自动返航功能 在起⻜飞时会记录起始点的GPS坐标为返航点 动态返航点(⻜飞⾏行器将⾃自动定时刷新返航点为⼿手机app所记 录的GPS坐标) 触发条件:当遥控器和⻜飞⾏行器失联超过3秒后,⻜飞⾏行器将悬 停并开始返回⾄至记录的GPS返航点
20.
突破⼝口—特有功能 ⦿ “地⾯面站”功能(⾃自动导航) 通过⼿手机app地⾯面站功能,在导航地图上设置多个坐标, 并发送指令使⻜飞⾏行器完成预定⻜飞⾏行
21.
针对突破⼝口的猜想 ⦿ ⾃自动返航功能 ● 改变返航点
输⼊入新位置 ● 触发返航条件(待其失联或触发失联) • 等待⾃自然的失控现象发⽣生 • 可以留个后⻔门(在OpenWrt上替换) • 实时对遥控器的干扰引起失控(暂不考虑) • 对⾁肉眼不可操作时建议为主动触发⾃自动返回
22.
针对突破⼝口的猜想 ⦿ “地⾯面站”功能 ● 在GPS模式下,不受遥控杆件控制,地⾯面站功能为唯⼀一 控制⽅方,可直接控制⻜飞⾏行器⻜飞向指定地点
23.
针对突破⼝口的猜想 ⦿ 此时,上⽂文提到已经有了root权限,且⻜飞⾏行器的 WiFi模块只接收⼀一个客户端连接,我们可以通 过iptables(OpenWrt⾃自带的⺴⽹网络防⽕火墙)来阻 断当前连接,更换成新连接,进⽽而替换了操作 ⽅方。
24.
截机实验 ⦿ 成功
25.
思维拓展 ⦿ 在现有App功能之外是否有其他的可能?
26.
功能的实现 ⦿ 现有功能的实现: ⻜飞⾏行控制芯⽚片 ● ⼿手机App
WiFi局域⺴⽹网 串⼝口(ttyS0) ⻜飞⾏行动作 ● ⻜飞⾏行器WiFi模块的2001端⼝口 (2001端⼝口为ser2net服务)
27.
功能的实现 ⦿ 界⾯面和⺴⽹网络部分通过Java实现 ⦿ 数据包的编解码和校验和计算通过so实现
28.
功能的实现-地⾯面站界⾯面 ⦿ 界⾯面相关 ● gs.views.* ○
EditorView 某些⻜飞⾏行限制是在界⾯面端中处理
29.
地⾯面站功能的实现-⺴⽹网络连接 ⦿ 连接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
30.
通信包结构 ⦿ ⺴⽹网络包头结构 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]; };
31.
返航点包结构 ⦿ 设置动态返航点 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]; };
32.
功能的实现-地⾯面站编码⽅方式 ⦿ 地⾯面站数据编码 .midware.a.b.f->a()V LibGroundStation.so getCRCFromData EncodeData tea_encrypt
33.
地⾯面站功能的实现-数据 ⦿ 初始化 >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
34.
地⾯面站功能的实现-数据 ⦿ 坐标点数据 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);
35.
功能的实现-调试技巧 ⦿ 为了明确调⽤用关系和采集数据包,在smali中添 加了调试⽇日志 ● 在OutputStream.write前 ●
在encodeData前后
36.
后续的问题 ⦿ ⻜飞⾏行控制模式 ● GPS ●
姿态
37.
结语 ⦿ 通信信道安全的重要性 ● 需要加密和⾝身份认证 ⦿
加固系统和功能接⼝口 ● 关闭系统级⼊入⼝口 ⦿ 尽量在低层做校验
38.
谢谢
Download