倍福PLC安全评估实战
下图就是安全评估的目标PLC。本文会从固件逆向分析的角度来简单介绍下安全评估的方法。
CX9020的固件是存储在SD卡中,所以可以很容易通过读卡器读取到其中的固件。同时官网也开放了固件下载,可以获取到不同版本的固件(https://download.beckhoff.com/download/software/embPC-Control)。
NK.bin文件中则包含了windows系统文件和额外自定义的一些组件。对于NK.bin无法直接查看,需要用解包工具提取里面的文件。
提取工具需要用到Github上开源的eimgfs以及wince开发工具包中的cvrtbin,viewbin,通过将这些工具结合起来使用就能把NK.bin里的文件提取出来,相关命令如下:
#查看NK.bin信息,获取起始地址和长度信息
>>>viewbin.exe NK.bin
ViewBin... NK.bin
Image Start = 0x80200000, length = 0x039A8B30
Start address = 0x80201000
Checking record #88 for potential TOC (ROMOFFSET = 0xFD13FEC4)
Checking record #91 for potential TOC (ROMOFFSET = 0xFD15DEE8)
Checking record #181 for potential TOC (ROMOFFSET = 0xFE3C3EDC)
Checking record #293 for potential TOC (ROMOFFSET = 0xFF2C2EC0)
Checking record #339 for potential TOC (ROMOFFSET = 0x00000000)
Found pTOC = 0x83ba40c4
ROMOFFSET = 0x00000000
Done.
#将NK.bin转为NK.nb0
>>>cvrtbin.exe -r -a 0x80200000 -w 32 -l 0x039A8B30 NK.bin
...
...
...
start 83af9d0c length 000211f4
start 83b1af00 length 00051000
start 83b6bf00 length 000381c4
start 83ba40c4 length 00000054
start 83ba4118 length 00004a18
Progress...
0%Done.
#将NK.nb0里面文件全部dump出来,bins是提取到的文件夹
>>>eimgfs.exe NK.nb0 -extractall -fs xip –d bins
首选先把IDA PRO的wince debug server上传到PLC中并运行,该程序启动后会自动监听端口并且等待调试器连接。
启动调试服务端后,用IDA连接后便可以进行动态调试了。
通过调试器,我们快速定位到了崩溃点,并分析了崩溃原因。在mdp.dll处理函数中,有一处字符串编码转换处理,会将转换的编码结果输出到栈上,由于把输入字符串长度作为MultiByteToWideChar函数的cchWideChar,也就是输出的缓冲区大小(宽字节数),会导致缓冲区溢出发生,造成内存破坏从而引发拒绝服务。
由于这个倍福自带的CeRDisp不仅实现了远程桌面服务,还实现了授权功能,在用户设置密码后,使用远程桌面进行访问的时候要输入安全密码,如下图:
通过使用IDA简单分析了授权流程,发现该服务授权机制是存在缺陷的,可以直接被绕过。在CeRDisp.exe中,可以看到在检测密码之后,仅仅发送了一个判断密码正确与否的标志给客户端,而没有采取其他动作(如关闭连接之类的操作)来防止客户端继续进行连接流程,造成了只要修改客户端的判断代码忽略错误标志即可绕过授权强制进行登入。
(https://download.beckhoff.com/download/Document/product-security/Advisories/advisory-2019-006.pdf)
时间线如下:
2019.7.26 漏洞通报厂商
厂商已经确认漏洞并完成分析
厂商发布安全通告并提供更新固件
格物实验室专注于工业互联网、物联网和车联网三大业务场景的安全研究。 致力于以场景为导向,智能设备为中心的漏洞挖掘、研究与安全分析,关注物联网资产、漏洞、威胁分析。目前已发布多篇研究报告,包括《物联网安全白皮书》、《物联网安全年报2017》、《物联网安全年报2018》、《国内物联网资产的暴露情况分析》、《智能设备安全分析手册》等。与产品团队联合推出绿盟物联网安全风控平台,定位运营商行业物联网卡的风险管控;推出固件安全检测平台,以便快速发现设备中可能存在的漏洞,以避免因弱口令、溢出等漏洞引起设备控制权限的泄露。
往期回顾
本公众号原创文章仅代表作者观点,不代表绿盟科技立场。所有原创内容版权均属绿盟科技研究通讯。未经授权,严禁任何媒体以及微信公众号复制、转载、摘编或以其他方式使用,转载须注明来自绿盟科技研究通讯并附上本文链接。
关于我们
绿盟科技研究通讯由绿盟科技创新中心负责运营,绿盟科技创新中心是绿盟科技的前沿技术研究部门。包括云安全实验室、安全大数据分析实验室和物联网安全实验室。团队成员由来自清华、北大、哈工大、中科院、北邮等多所重点院校的博士和硕士组成。
绿盟科技创新中心作为“中关村科技园区海淀园博士后工作站分站”的重要培养单位之一,与清华大学进行博士后联合培养,科研成果已涵盖各类国家课题项目、国家专利、国家标准、高水平学术论文、出版专业书籍等。
我们持续探索信息安全领域的前沿学术方向,从实践出发,结合公司资源和先进技术,实现概念级的原型系统,进而交付产品线孵化产品并创造巨大的经济价值。
长按上方二维码,即可关注我