揭秘vxworks——直击物联网安全罩门

blacksunny blacksunny     2022-09-09     458

关键词:

 
转载:http://chuansong.me/n/1864339
技术分享

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软件进行调试总的过程需要如下几步:

  1. 编译网卡驱动

  2. 修改系统配置文件

  3. 编译bootrom并加载到启动磁盘

  4. 编译VxWorks镜像

  5. 用FTP把系统镜像传到虚拟机里

  6. 配置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提供,未经允许不得引用。

技术分享
搞物联网安全的黑阔们又可以疯狂了。

Make some noise~?:.?ヽ(?????)??.:?+?

















python核心揭秘python协程(代码片段)

首先要明白什么是协程?协程是实现并发编程的一种方式。一说并发肯定想到了多线程/多进程模型,多线程/多进程正是解决并发问题的经典模型之一先从一个爬虫实例出发,用清晰的思路并且结合实战来搞懂这个不... 查看详情

揭秘互联网跟单赚钱新玩法-波浪智投

波浪智投是一款智能跟单交易的移动互联网应用产品(APP)。由達芬奇科技有限公司提供技术以及业务上支持,是波浪证券集团旗下的首款移动应用产品,拥有简捷、安全、专业、灵活等特点。用户只需要用最简单的方法跟单操... 查看详情

揭秘国外社交平台的灰色利益链

近年来,随着互联网技术的快速发展,物联网这一领域也跟着水涨船高,各项具有应用意义的项目也在不断拓展,比如智能家居,视频监控系统等,身处千里之外,却能知悉家中的一举一动,这也体现了“万物互联”的概念。其... 查看详情

万物智联,腾讯云iot边缘计算揭秘——云+未来峰会开发者专场回顾

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~背景:现在是万物互联的时代,智能穿戴设备,智能家居,无人商业,改变了我们的生活方式。预计到2021年,全球物联网设数将达到150亿,超过手机和PC的总和,物... 查看详情

easymr安全架构揭秘:如何管理hadoop数据安全

2017年,美国信用评级机构Equifax遭受黑客攻击,导致1.4亿个人的敏感信息泄露;2020年,发生了SolarWinds公司的软件供应链遭受恶意代码攻击事件,涉及多个行业和国家;2022年,网信办依据《数据安全法》等法律法规,对滴滴公司... 查看详情

网络安全从业人员必备哪些证书?揭秘“安全内幕”!

...员对于个人职业发展、能力提升有诸多关注。3分钟为你揭秘“信息安全内幕”!网络安全是个“多金而有前途”的行业根据中国信息安全从业人员现状调查显示,我国信息安全从业人员平均年薪为15.3万元。这个数字不但... 查看详情

直击大圣车服一周年发布会:这个汽车生态平台要放大招!

去年,一家汽车主机厂、一家互联网公司、一家保险公司,联合起来要做一个汽车生态平台。消息一出,有人赞许,有人质疑,毕竟在国内六大汽车集团中联手互联网企业干这事的,尚属首例。这个引发争议的平台叫大圣车服,... 查看详情

揭秘:一线互联网薪资曝光,看看你的价值,有没有被低估?

一,互联网公司排名首先看一下中国互联网公司排名1,中国互联网公司市值排名排名数据根据2017年8月4日统计阿里巴巴(BABA)3907.73亿美元腾讯控股(00700)29576.74亿港元(3782.92亿美元)百度(BIDU)793.87亿美元京东(JD)639.77亿... 查看详情

网易云易盾发布多国家多语种内容安全服务,助力中国互联网出海

...等移动互联网新兴市场。据《中国移动互联网出海环境全揭秘报告》,2017年Q4中国互联网出海企业就达到720多家,出海应用2268个,2018年出海应用数量更是呈井喷态势。出海产品已从纯工具类,逐步深入为游戏、文娱类、金融支... 查看详情

网易云易盾发布多国家多语种内容安全服务,助力中国互联网出海

...等移动互联网新兴市场。据《中国移动互联网出海环境全揭秘报告》,2017年Q4中国互联网出海企业就达到720多家,出海应用2268个,2018年出海应用数量更是呈井喷态势。出海产品已从纯工具类,逐步深入为游戏、文娱类、金融支... 查看详情

揭秘全球首次互联网8k直播背后的技术实现

3月28日,云栖大会·深圳峰会现场,阿里云发布并现场演示了阿里视频云最新8K互联网直播解决方案。这是全球发布的首个8K视频云解决方案,也是全球首次8K互联网视频直播。舞台的屏幕上显示了从1300公里以外的阿里巴巴杭州园... 查看详情

互联网黑产江湖揭秘一--那些隐藏在海面下的身份倒卖行业

如果有10%的利润,黑客就保证不会消停;如果有20%的利润,黑客就会异常活跃;如果有50%的利润,黑客就会铤而走险;为了100%的利润,黑客就敢践踏一切人间法律。这是马克思在《资本论》里写下的一句话,被引用在了《安全简史... 查看详情

深入揭秘https安全问题&连接建立全过程

...知识,HTTPS一直戴着神秘的面纱。接下来让我们一起深入揭秘HTTPS的安全问题和建立的全过程吧!本文将分两个专题去理解HTTPS。专题一,主要介绍HTTPS建立安全链接的原理,包括非对称加密、对称加密 查看详情

互联网大厂面试揭秘:mysql查询常考的十道面试题(代码片段)

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等表结构:`student`(‘id‘、‘name‘、‘code‘、‘age‘、‘sex‘)学生表`teacher`(‘id‘、‘name‘)教师表`course`(‘id‘、‘name‘、‘teacher_id‘)课程表`s... 查看详情

《揭秘一线互联网企业前端javascript高级面试》视频教程总结系列五:mvvm和vue相关

 系列目录:https://www.cnblogs.com/lmyxywy/p/10931603.html 问题一:说一下使用Jquery和使用vue的区别。 Jquery是对繁琐的Dom操作进行了封装,同时也在里面封装了兼容浏览器的处理方式,更方便开发人员选取和操作DOM对象,在这... 查看详情

揭秘医疗安全防卫战:“我们仍在购买不安全的医疗设备”

欢迎访问网易云社区,了解更多网易技术产品运营经验。“知物由学”是网易云易盾打造的一个品牌栏目,词语出自汉·王充《论衡·实知》。人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会知道... 查看详情

揭秘医疗安全防卫战:“我们仍在购买不安全的医疗设备”

欢迎访问网易云社区,了解更多网易技术产品运营经验。“知物由学”是网易云易盾打造的一个品牌栏目,词语出自汉·王充《论衡·实知》。人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会知道... 查看详情

idapro代码破解揭秘的编辑推荐

参考技术A《IDAPro代码破解揭秘》:如果你想掌握IDAPro,如果你想掌握逆向工程编码的科学和艺术,如果你想进行更高效的安全研发和软件调试,《IDAPro代码破解揭秘》正适合你!《IDAPro代码破解揭秘》是安全领域内的权威著作,... 查看详情