安全研究 | 传真机的攻击面研究报告

2018 年 10 月 25 日 FreeBuf

介绍

大家一听到“传真机”这三个字,肯定觉得这种设备离自己非常远。但实际上,现在很多办公室里仍然存在着这种“远古”设备,而且在商业和法律通信等领域内仍处于广泛使用中。传真机的大部分技术都是几十年前的了,而且在过去的几年里基本没有升级过。

以前的传真机主要通过座机电话和电话线来访问,并且通过以太网来连接本地网络。但说实话,可能很多人并不了解传真机背后的通信机制。网上只有一些介绍打印机标准的文档,其实也并没有什么X用,而且我们也不准备对打印机的固件进行逆向分析。不过幸运的是,网上有很多开源(源代码可完全访问)的打印机模拟工具,而且它们还实现了很多额外功能,这就非常棒了。

大家准备好了吗?那我们开始吧!

传真模拟软件

传真机看起来其实有点像一台连接了电话线的打印机,不过传真机会发出各种奇怪的声音,还能通过电话线并以低速传输的形式进行页面扫描和输出。虽然在全球各地的各种办公室内仍然能找到传真机的身影,但实际上并没有多少人喜欢这种设备。

在网上搜索半天之后,我们也找到了很多有意思的传真机软件开源项目,其中更新比较频繁的就是HyLaFax。HylaFAX貌似是一款企业级的软件传真工具,而eFAX和mgetty + sendFAX则是一种基于命令行的更轻量级的软件传真替代方案。除了它们之外,还有很多开源项目都在为软件传真生态系统做贡献。比如说,ICTFAX就是一种基于Web的解决方案,IAXmodem则是一款支持连接PBX和传真客户端的软件桥接工具,以及Spandsp库等等。

简单来说,传真的整个过程需要涉及到三种通信层:

1.数据层:此时,调制解调器需要拨号,然后发出各种奇怪的声音,最后在通信双方之间建立数据信道,并允许双方交换数据符号。

2.会话层:在这一层,传真机会进行通信参数协商,其中包括页面格式、页面传输速度和图片压缩方式等等。

3.图片/页面层:传真机会在这一层对页面信息进行编码/解码,对数据进行压缩/解压,检查并纠正错误等等。

根据调制解调器需要处理的通信层数量,我们可以对设备进行归类:

1.第一类:调制解调器处理数据层,同时依靠传真机软件来实现会话处理和页面处理任务。

2.第二类:调制解调器处理数据层和会话层,然后把图片处理任务交给软件端完成。

除此之外,还有一类设备负责提供额外功能,比如说设置不同的传输速度等等。由于我们这篇文章主要针对的是第一类设备,所以其他种类的设备就大家自行搜索啦!

那么,在传真机软件(例如HylaFAX)和传真机调制解调器的帮助下,任何人都可以通过电话线来发送和接收传真。在发送一份传真时,我们只需要一份输入文档和目的传真机的电话号码,然后用软件进行拨号和数据编码,最后发送出去就可以了。在接收一份传真时,会有一个软件进程通过调制解调器的串口来监听来电信号,接收所有的数据信息,然后将其存入本地文件系统或通过邮件发送给用户。

安装配置

接下来,我们需要深入分析软件传真背后每一层的工作机制。此时,我们需要用到下列几种组件:

1.两台90年代的老式传真机;

2.两个USB传真机调制解调器;

3.思科SPA112;

4.Asterisk;

5.IAXmodem;

6.HylaFAX、eFAX和mgetty;

7.gdb;

8.vim;

9.afl。

我们的组件将帮助我们部署不同的配置环境,Asterisk是我们的主PBX,它负责进行路由调用和提供私人电话网络(允许我们的各种组件与其他组件拨号通信,而无需使用到使用到公用电话网络PSTN)。思科SPA允许我们物理连接到传真机设备,并使用USB调制解调器连接我们的Asterisk网络。同时,gdb和vim可以帮助我们阅读程序的源代码和编译过程。在整个过程中,我们还需要运行afl模糊测试器来测试不同代码块和功能组件的安全性。

漏洞收集

在对传真机软件的安全性进行了详细研究之后,我们发现并上报了多个漏洞,相关厂商也在第一时间修复了上报的漏洞。

Mgetty中的多个安全漏洞

下面是我们发现并上报的漏洞信息:

CVE-2018-16741:通过Mgetty的任务描述实现Shell注入

CVE-2018-16742:通过Mgetty的命令行参数实现栈缓冲区溢出

CVE-2018-16743:通过Mgetty的命令行参数实现栈缓冲区溢出

CVE-2018-16744:通过Mgetty的配置参数实现栈缓冲区溢出

CVE-2018-16745:通过Mgetty的配置参数实现缓冲区溢出

参考资料:【传送门】

HylaFAX的远程代码执行漏洞

CVE-2018-17141:在HylaFAX的传真接收过程中,远程攻击者将能够写入一个未序列化的指针;

参考资料:【点击阅读原文查看】

在我们的研究过程中,我们发现HylaFAX和HylaFAX+的功能非常丰富,而且完全可以实现传真机通信的全部要求。除此之外,它们的源代码也非常好读,不过在读源代码的过程中,我们发现代码中负责进行ECM页面传输的部分存在安全问题。请大家看下面的代码:

你没看错,就是缓冲区溢出的问题!这部分代码来自于FaxModem::recvPageDLEData()函数,而这个函数主要负责处理传真接收(开启JPEG传输功能时),而整个过程中没有对缓冲区的边界进行检测,当接收到数据量过大的页面时,将会出现缓冲区溢出的情况。

总结

在对传真机软件的安全性进行了研究之后,我们可以更好地了解这种技术,并揭示传真机系统中不同层级和不同复杂度的组件及其工作机制。在各种开源、免费工具的帮助下,我们能够迅速了解传真机工作机制中每一层的通信原理,除此之外,我们还能阅读源代码,并识别出其中可能存在安全漏洞的部分。

传真机已经存在了好多好多年了,也许现在的安全社区已经没人去研究传真机的安全问题了,但如果有一天,你旁边那台传真机给你带来了“毁灭性”的灾难,你该怎么办?

*参考来源:x41-dsec,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

登录查看更多
0

相关内容

软件(中国大陆及香港用语,台湾作软体,英文:Software)是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为编程语言、系统软件、应用软件和介于这两者之间的中间件。软件就是程序加文档的集合体。
Python分布式计算,171页pdf,Distributed Computing with Python
专知会员服务
105+阅读 · 2020年5月3日
和积网络综述论文,Sum-product networks: A survey,24页pdf
专知会员服务
23+阅读 · 2020年4月3日
德勤:2020技术趋势报告,120页pdf
专知会员服务
187+阅读 · 2020年3月31日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
【中国人民大学】机器学习的隐私保护研究综述
专知会员服务
130+阅读 · 2020年3月25日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
报告 | 2020中国5G经济报告,100页pdf
专知会员服务
97+阅读 · 2019年12月29日
联邦学习最新研究趋势!
AI科技评论
52+阅读 · 2020年3月12日
人工智能商业化研究报告(2019)
腾讯大讲堂
15+阅读 · 2019年7月9日
2019社交行业研究报告
行业研究报告
5+阅读 · 2019年5月30日
2018年边缘计算行业研究报告
行业研究报告
11+阅读 · 2019年4月15日
云游戏行业发展趋势分析报告
行业研究报告
13+阅读 · 2019年3月24日
量子计算、边缘计算、数据挖掘 前沿研究报告
人工智能学家
6+阅读 · 2019年3月16日
【学科发展报告】无人船
中国自动化学会
26+阅读 · 2019年1月8日
2018年德国汽车产业研究报告
行业研究报告
16+阅读 · 2018年12月1日
【行业报告】2018年中国人工智能行业研究报告
互联网金融
5+阅读 · 2018年4月7日
2018年中国人工智能行业研究报告
艾瑞咨询
3+阅读 · 2018年4月2日
AdarGCN: Adaptive Aggregation GCN for Few-Shot Learning
Arxiv
5+阅读 · 2017年12月29日
Arxiv
4+阅读 · 2017年4月12日
VIP会员
相关VIP内容
Python分布式计算,171页pdf,Distributed Computing with Python
专知会员服务
105+阅读 · 2020年5月3日
和积网络综述论文,Sum-product networks: A survey,24页pdf
专知会员服务
23+阅读 · 2020年4月3日
德勤:2020技术趋势报告,120页pdf
专知会员服务
187+阅读 · 2020年3月31日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
【中国人民大学】机器学习的隐私保护研究综述
专知会员服务
130+阅读 · 2020年3月25日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
报告 | 2020中国5G经济报告,100页pdf
专知会员服务
97+阅读 · 2019年12月29日
相关资讯
联邦学习最新研究趋势!
AI科技评论
52+阅读 · 2020年3月12日
人工智能商业化研究报告(2019)
腾讯大讲堂
15+阅读 · 2019年7月9日
2019社交行业研究报告
行业研究报告
5+阅读 · 2019年5月30日
2018年边缘计算行业研究报告
行业研究报告
11+阅读 · 2019年4月15日
云游戏行业发展趋势分析报告
行业研究报告
13+阅读 · 2019年3月24日
量子计算、边缘计算、数据挖掘 前沿研究报告
人工智能学家
6+阅读 · 2019年3月16日
【学科发展报告】无人船
中国自动化学会
26+阅读 · 2019年1月8日
2018年德国汽车产业研究报告
行业研究报告
16+阅读 · 2018年12月1日
【行业报告】2018年中国人工智能行业研究报告
互联网金融
5+阅读 · 2018年4月7日
2018年中国人工智能行业研究报告
艾瑞咨询
3+阅读 · 2018年4月2日
Top
微信扫码咨询专知VIP会员