首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
智能设备
发新帖
18
3
[转帖]揭秘VxWorks——直击物联网安全罩门
发表于: 2016-5-1 10:25
19531
[转帖]揭秘VxWorks——直击物联网安全罩门
gjden
14
2016-5-1 10:25
19531
揭秘VxWorks——直击物联网安全罩门
一遍不错的文章,转过来分享给大家,原文链接见文末,欢迎大家讨论。
VxWorks是美国风河(WindRiver)公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。
VxWorks支持几乎所有现代市场上的嵌入式CPU,包括x86系列、MIPS、 PowerPC、Freescale ColdFire、Intel i960、SPARC、SH-4、ARM,StrongARM以及xScale CPU。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的F-16、F/A-18战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连一些火星探测器,如1997年7月登陆的火星探测器,2008年5月登陆的凤凰号,和2012年8月登陆的好奇号也都使用到了VxWorks。——摘自《维基百科》
https://zh.wikipedia.org/wiki/VxWorks
正因为VxWorks操作系统的开放性、模块化和可扩展性的系统结构特征以及能在多线程、多任务的系统环境中达到高实时要求的PLC控制要求,在保证实时性的同时,实现多点位、复杂功能的PLC系统控制目标,因此被广泛用于物联网嵌入式设备及工业控制领域。西门子、施耐德的多款PLC设备软件搭载在VxWorks系统上运行。
来看下CVE公布的VxWorks相关漏洞:
对于一款被广泛应用的操作系统,CVE漏洞能控制在这个数量可以说安全做得已经挺好了。最新的7.0系统又做出了很多针对安全的功能,更是提出了应用程序加密这样的安全模式,任何一个系统应用在运行前需要做哈希验证,这样能极大程度减少恶意软件和木马的植入对于系统带来的威胁。
难道说搭载风河VxWorks系统的嵌入式设备真的就无懈可击了?我要告诉你,在系统以及网络层我们还是能做很多事情的。
先来简单了解下该系统。
这是我在Vmware上运行的基于Pentium架构的VxWorks 5.5.1版本系统,虽然不是最新版本,但用于了解系统的工作方式,做一些基本的测试已经足够了,而且本身大部分加载VxWorks系统的设备也并不是最新的,低于此版本的设备也不在少数。
在虚拟机上运行VxWorks5.5系统并通过tornado软件进行调试总的过程需要如下几步:
编译网卡驱动
修改系统配置文件
编译bootrom并加载到启动磁盘
编译VxWorks镜像
用FTP把系统镜像传到虚拟机里
配置target server来调试系统以及应用
如果对于嵌入式系统没有基础那么这几步还是挑战很大,因此网上能找到已经编译好的针对vmware的系统镜像以及VxWorks BSP文件。这极大得降低了研究的门槛,我们只需要进行相应的配置再通过系统专门的集成开发环境tornado 2.2就可以展开对于VxWorks系统的入门级研究。当然这只是入门级研究环境,对于熟悉系统工作原理和网络栈已经可以满足,但是如果要研究系统底层安全性如溢出、shellcode那就需要真实的系统以及针对性的指令架构。
另外推荐两款搭载VxWorks系统的设备,也可以针对真实的设备进行研究。第一款为经典的思科Linsys54g路由器,这款路由出厂内置VxWorks5.5系统,很多对于固件的逆向都是从这款路由的固件入手的,通过接入板子串口可以拿到系统boot shell,但我在尝试时系统运行不到VxWorks shell,会报一个网络配置的错误,有兴趣的朋友可以一起研究下,如果知道怎么解决可以和我联系。另外一款设备是华为的UAP2105 UMTS是一款家庭使用的小型蜂窝基站。这款设备在2015Blackhat上被爆出多个漏洞,可以通过JTAG接口拿到VxWorks shell,并且可以通过远程调试端口进行访问。
在做了如上准备工作后,我们就可以开始对于VxWorks系统的安全性进行探秘了。
我们先来直观的感受下这个系统,来看下VxWorks系统的shell,这是可用的基本命令,和我们熟悉的Linux Bash区别还是很大的。
其中还包括输入输出、调试、文件系统、网络等一些具体的命令。我们注意到这个系统的shell具有一些针对于任务(task)的操作命令以及可以修改内存的命令,可以说权限是相当大的。看下当前任务状态,我们就可以感受到实时操作系统的特点了。
有兴趣可以去自己了解,这里不做详细介绍。
我们来用nmap做下端口扫描,结果如下:
可以看到系统支持了多种标准网络协议进行通信,我们主要来针对wdbrpc调试端口进行hack。
什么是Wdbrpc?
wdbrpc是VxWorks的远程调试端口,以UDP方式进行通信,端口号为17185。协议基于sun-rpc。该服务主要用于支持系统远程通过集成开发环境Tornado交互。
通过Tornado开发环境软件可以进行应用程序代码编写、上传到设备、远程调试、rom烧录等一系列功能。支持通过wdbrpc、wdbpipe、wdbserial等不同的连接交互方式。
Vxworks系统将一起与硬件相关的模块都放在BSP库中。BSP库是硬件与软件的接口,处理硬件的初始化、中断处理与产生、硬件时钟与定时管理、局部和总线内存空间的映射、内存大小定义等等。能够自行启动目标设备、初始化目标设备,能够与host通信下载系统内核,将系统权限交由Vxworks内核来调用应用程序等功能。
因此该通信端口权限十分大,然后并没有身份认证与传输加密机制。该通信接口为远程攻击设备提供了无限可能。
通过以上简单了解,我们需要深入了解wdbrpc通信协议,然而网上并没有官方详细的协议说明,只有在风河开发文档中简单涉及一些协议说明。
Rapid7曾在2010年8月发表博客《Shiny Old VxWorks Vulnerabilities》其中说明了wdbrpc端口的问题并且给出了当时的统计报告以及4个metasploit攻击模块。因此我们可以从模块入手进行分析。
https://community.rapid7.com/community/metasploit/blog/2010/08/02/shiny-old-vxworks-vulnerabilities
包括wdbrpc_version、wdbrpc_bootline、wdbrpc_reboot、wdbrpc_memory_dump。分别提供远程获取系统版本号信息、获取bootline信息、远程重启系统以及远程dump内存。
通过对虚拟机远程设备进行尝试,可以看到我们能从wdbrpc端口上轻松获取到系统版本号以及bootline启动配置信息。通过wireshark我们在仔细看下协议过程。
可以看到协议内容并无加密,但是wireshark也不能解析该协议,因此攻击手段也将受限,wdbrpc提供的功能很多并且权限很大,但目前也只能通过这四个攻击模块进行攻击。初步尝试还发现获取系统版本号可以直接通过重放进行攻击,然而要是获取bootline信息或远程dump内存并不能简单的重放,协议的交互过程还是具备初始化等步骤。因此我们还是需要进一步深入了解该协议。
Vxworks开发文档上有如下对于wdbrpc协议请求和响应的说明:
这是一个请求数据包的格式,其中20字节IP头,8字节UDP头,40字节wdbrpc头,其中包含WDBPROG为4字节固定为0x55555555、WDBVERS为4字节(0x00000001)以及RPC调用编码。XDR stream为调用参数信息。
RPC请求数据头具体如下:
RPC请求参数wrapper部分具体如下:
建立连接的通信过程为,host首先给target发送一个Connect请求,收到回应包后,即可发送Fanc_call数据包。Connect请求的Procedure字段为0x00000001,data字段需要填充具体的调用参数为0x00000002,0x00000000,0x00000000。
远程内存读取的通信过程为,在建立连接的基础上发送以0x0000000A为Procedure、以offset/length/params为具体参数的data,即可收到相应内存地址上的数据。具体内容可
以通过阅读源码了解${WIND_BASE}/share/src/agents/wdb/wdb.h
http://www.codeforge.cn/read/82844/wdb.h__html
今后会在Github上公布关于VxWorks系统攻击的python源码,敬请期待。
https//github.com/ameng929/VxworksHack
当我们具备了wdbrpc协议的基础,我们就可以通过该协议对Vxworks系统设备进行远程攻击了。列举几种简单的攻击方式:
一、篡改bootline绕过登录验证
首先看下ARM架构下的系统内存布局:
其中0x0700到0x0800地址之间存放Bootline配置信息。如果系统架构为x86那么对应地址将从0x1200开始。
我们可以通过wdbrpc远程修改内存地址数据令其以0x20方式启动,这样就可以绕过登录认证通过ftp或telnet访问系统。
二、Dump内存数据从中抓取登录密码
以一个远程昆腾PLC为例,通过wdbrpc协议dump全部内存空间数据。
10分钟后就拿到了远程设备约15M左右的完整内存数据。
可以看到ppc架构指定位置上的bootline信息,再通过string命令抓取内存文件中的字符串数据。
再通过这样一个正则就轻松的找到了内存中的所有ftp、telnet登录密码:
cat strings.memory.dmp |grep -n "[RSbcdeyz9Q]\{9\}"
具体为什么正则要这样写以及这个hash密码如何利用,请看我之前的文章《邪恶的0x4321》。
现在可以回答之前文章的问题了,0x4321即为wdbrpc的端口号17185的16进制格式。
下面交给Z-one大神 (⊙.⊙)
以下是全球暴漏在IPv4公网上的17185端口统计分析:
http://plcscan.org/lab/census/vxworks/
通过Zmap调用wdbrpc-scan脚本扫描全网暴漏端口IP数约5万+,其中3.4万能读取到系统信息和bootline信息。
数量按国家分布Top10:
中国: 7861
美国: 5283
巴西: 3056
意大利: 1025
日本: 823
俄罗斯: 647
墨西哥: 505
哈萨克斯坦: 486
澳大利亚: 481
印度: 448
数量按VxWorks系统版本号统计:
VxWorks5.5.1 15601
VxWorks5.4.2 6583
VxWorks5.4 5410
VxWorks5.4.2 5254
VxWorks5.5 899
VxWorks 654
VxWorks5.3.1 236
数量按设备信息统计Top10:
Telogy Networks GG30E Reference Board 3674
TI TNETV1050 Communication Processor 3360
Motorola MPC82xx ADS - HIP7 2626
IP-ADSL DSLAM (MPC860/855T) 1972
HUAWEI ET&IAD 1796
MPC8245Board: EDSL , Map B (CHRP) 1678
PowerPC 875, 133MHZ 1553
Mips 4KEc 1239
MGCB 912
Intel IXP425 - IXDP425 BE 887
其中受影响的PLC模块型号:
罗克韦尔Rockwell Automation 1756-ENBT固件版本为3.2.6、3.6.1及其他
西门子Siemens CP 1604、Siemens CP 1616
施耐德Schneider Electric 昆腾部分以太网模块
另外通过Shodan和Zoomeye搜索“vxworks”Dork的数量对比:
知道创宇-ZoomEye:
FTP 77,123
Telnet 10,795
SNMP 133
Shodan:
FTP 26,212
SNMP 17,261
Telnet 4,735
以下的数据由Z-one提供,未经允许不得引用。
搞物联网安全的黑阔们又可以疯狂了。
原文链接:http://chuansong.me/n/1864339
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
上传的附件:
image(1).jpg
(74.51kb,7次下载)
image(2).jpg
(34.46kb,3次下载)
image(3).jpg
(101.77kb,8次下载)
image(4).jpg
(71.73kb,4次下载)
image(5).jpg
(61.21kb,4次下载)
image(6).jpg
(63.30kb,3次下载)
image(7).jpg
(38.20kb,3次下载)
image(8).jpg
(67.79kb,13次下载)
image(9).jpg
(41.64kb,3次下载)
image(10).jpg
(15.44kb,3次下载)
image(11).jpg
(71.88kb,7次下载)
image(12).jpg
(94.45kb,5次下载)
image(13).jpg
(34.84kb,7次下载)
image(14).jpg
(63.86kb,6次下载)
image(15).jpg
(22.29kb,4次下载)
image(16).jpg
(57.53kb,6次下载)
image(17).jpg
(45.70kb,5次下载)
image(18).jpg
(27.33kb,5次下载)
image(19).jpg
(87.45kb,4次下载)
image(20).jpg
(98.81kb,5次下载)
image(21).jpg
(56.93kb,6次下载)
image(22).jpg
(27.83kb,4次下载)
image(23).jpg
(36.30kb,6次下载)
image(24).jpg
(44.15kb,6次下载)
image.jpg
(52.97kb,6次下载)
收藏
・
18
免费
・
3
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
飘零丶
为你点赞~
2024-5-31 07:01
shinratensei
为你点赞~
2024-5-31 06:55
一笑人间万事
为你点赞~
2023-2-21 04:00
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
10
)
天高
雪 币:
623
活跃值:
(40)
能力值:
( LV3,RANK:30 )
在线值:
发帖
3
回帖
166
粉丝
0
关注
私信
天高
2
楼
mark
2016-5-1 10:51
0
luskyc
雪 币:
248
活跃值:
(3789)
能力值:
( LV2,RANK:10 )
在线值:
发帖
25
回帖
938
粉丝
11
关注
私信
luskyc
3
楼
在美国的F-16、F/A-18战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连一些火星探测器,如1997年7月登陆的火星探测器,2008年5月登陆的凤凰号,和2012年8月登陆的好奇号也都使用到了VxWorks...
这一段碉堡了,但是我觉得不太可能,因为站在国家安全战略的角度考虑,这是美国的机密
2016-5-1 11:36
0
gjden
雪 币:
6790
活跃值:
(4441)
能力值:
(RANK:600 )
在线值:
发帖
33
回帖
447
粉丝
277
关注
私信
gjden
14
4
楼
这不算什么秘密,真正的秘密是控制程序,不过就是使用了这个os而已
2016-5-1 13:36
0
广岛秋泽
雪 币:
8910
活跃值:
(2352)
能力值:
( LV3,RANK:20 )
在线值:
发帖
8
回帖
70
粉丝
4
关注
私信
广岛秋泽
5
楼
make
2016-5-1 15:42
0
影子不寂寞
雪 币:
6
活跃值:
(19)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
349
粉丝
1
关注
私信
影子不寂寞
6
楼
谢谢分享
2016-5-1 16:43
0
gotope
雪 币:
204
活跃值:
(11)
能力值:
( LV2,RANK:10 )
在线值:
发帖
3
回帖
42
粉丝
0
关注
私信
gotope
7
楼
能dump内存全部数据,那么好玩
2016-5-2 23:24
0
LOVEZ
雪 币:
76
活跃值:
(206)
能力值:
( LV2,RANK:15 )
在线值:
发帖
1
回帖
135
粉丝
0
关注
私信
LOVEZ
8
楼
mark
2016-5-13 08:58
0
NewbieR
雪 币:
216
活跃值:
(46)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
8
粉丝
0
关注
私信
NewbieR
9
楼
补充一篇
http://www.freebuf.com/news/93201.html
lz转的这篇是针对wdbrpc v1版本的,分析方法最早由大神H. D. Moore早在2010年公布于rapid7,并集成到了Metasploit。
有兴趣的同学可以继续看看这篇v2版本的,v2是之前没有公开过的,直到15年底才有人声称研究出来,不过没有公布细节,16初被另一团队公布了细节。
“WDB RPC有V1和V2两个版本,VxWorks 5.5中使用V1版本,而VxWorks 6.6中使用V2版本,V2版本相较于V1版本有较多处修改,具体体现在协议字段及交互方式。”
2016-5-16 08:25
0
StartAoA
雪 币:
71
活跃值:
(58)
能力值:
( LV2,RANK:10 )
在线值:
发帖
4
回帖
163
粉丝
0
关注
私信
StartAoA
10
楼
VxWorks 的确在安全方面可以傲视群雄。据说这个(Gentoo Linux,http://www.gentto.org)号称是全球最安全的操作系统。
2016-5-16 09:56
0
gjden
雪 币:
6790
活跃值:
(4441)
能力值:
(RANK:600 )
在线值:
发帖
33
回帖
447
粉丝
277
关注
私信
gjden
14
11
楼
感谢分享,非常棒的一篇文章,感兴趣的小伙伴继续看这篇文章。
2016-5-16 11:20
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
gjden
14
33
发帖
447
回帖
600
RANK
关注
私信
他的文章
[原创]基于Smali即时编译的DEX静态补丁技术实现
20856
[原创]量子算法分析: 深入算法内核掌握量子计算的精髓
22460
[原创]不一样的玩法儿:基于反编译器的Frida支持
33813
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
谁下载
×
yajunz
我是哥布林
mb_qxsbueaq
谁下载
×
谁下载
×
不歪
schroep
龙蝶
谁下载
×
熊趴趴来
谁下载
×
一只鸭鸭
谁下载
×
谁下载
×
谁下载
×
damen
hxygeneral
guobing
evionmzs
猎人猎枪
小点
绿林科技
小乔xiaoqiao
香风一族
谁下载
×
谁下载
×
谁下载
×
trojanth
lstcting
Semaphore
香风一族
谁下载
×
trojanth
lstcting
谁下载
×
hxygeneral
acerwww
小乔xiaoqiao
Semaphore
谁下载
×
happyasr
jassy
Carter藤萝
谁下载
×
ainideyang
谁下载
×
hardstone
mu人
香风一族
谁下载
×
happyasr
trojanth
谁下载
×
trojanth
香风一族
谁下载
×
evionmzs
谁下载
×
cznyx
一只鸭鸭
谁下载
×
cznyx
一只鸭鸭
香风一族
谁下载
×
cznyx
谁下载
×
cznyx
NaX
一只鸭鸭
谁下载
×
acqqer
香风一族
龙蝶
谁下载
×
zhangway
regedit小表
wubingqp
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部