PENIOT 是一个针对物联网(IoT)设备的渗透测试工具。 它通过针对设备的互联网连接发起不同类型的安全攻击,帮助您测试/渗透设备。 换句话说,您可以让设备暴露在主动和被动安全攻击之下。在确定目标设备及其必要信息(或参数)后, 您可以执行主动安全攻击,例如篡改/消耗系统资源、重放有效的通信单元等。 同时,您还可以执行被动安全攻击,例如破坏重要信息的机密性或进行流量分析。 借助PENIOT,所有这些操作都可以半自动化甚至全自动化。简而言之,PENIOT 是一个用于对物联网设备进行基于协议的安全攻击的包/框架。
此外,它还为您提供了一个基础结构,以便您进一步注入新的安全攻击或新的物联网协议。 PENIOT 最重要的特性之一是其可扩展性。默认情况下,它包含了多种常见的物联网协议以及与这些协议相关的众多安全攻击。 但是,您可以通过导出内部使用组件的基本结构来进一步扩展它,从而让您开发的攻击与PENIOT的内部结构协调一致。
在过去的十年中,物联网范式经历了巨大的增长,数十亿设备连接到互联网。 由于容量限制以及为了缩短上市时间而设计时未考虑安全性,大多数设备甚至缺乏基本的安全措施。 由于物联网的高度互联性,黑客可以轻松通过易受攻击的设备对扩展网络发起具有破坏性影响的攻击。
到目前为止,渗透测试要么被完全忽略,要么是手动进行的。 这种流程使得设备的测试阶段非常缓慢。另一方面,生产物联网设备的公司应始终保持对其设备在可靠性、鲁棒性以及所提供功能方面的测试更新, 因为遭受恶意人员的安全攻击可能会对最终用户产生意想不到的影响。 PENIOT 的主要目标是加速安全测试过程。它通过自动化耗时的渗透测试阶段,让您能够发现物联网设备上的安全漏洞。
首先,PENIOT 提供了新颖性。它是物联网领域渗透测试工具的首批范例之一。 目前只有一两个类似的工具专门针对物联网,但它们仍处于开发阶段,尚未完成。
由于物联网设备的数量急剧增加,物联网设备在我们的日常生活中变得越来越普遍。 智能家居、智能自行车、医疗传感器、健身追踪器、智能锁和互联工厂只是物联网产品中的几个例子。 考虑到这一点,我们觉得有必要选择一些最常用的物联网协议默认植入到PENIOT中。 我们选择了以下协议作为PENIOT中默认包含的物联网协议。这些物联网协议已通过多种类型的安全攻击进行测试,例如DoS、模糊测试、嗅探和重放攻击。
目前支持的协议如下:
此外,它允许您导出其内部实现的协议和攻击的主框架,以实现您自己的协议或攻击。 同时,您也可以将新实现的攻击扩展到已有的协议中。最后,它为您提供了一个易于使用、用户友好的图形用户界面。
首先,您需要在机器上安装Python的 setuptools 模块。另外, 在安装和构建之前,您还需要安装 python-tk 和 bluepy。
简而言之,运行安装脚本前您需要满足以下条件:
注意:建议为Peniot单独创建一个虚拟环境,因为其依赖的库比较陈旧,可能会与您现有的外部库安装时产生冲突。
您可以通过执行以下代码在本地构建项目:
$ git clone [email protected]:yakuza8/peniot.git
$ cd peniot
$ python setup.py install
尽管我们尽力提供最新的安装脚本,但由于项目长期未维护,其中可能缺少某些部分。 如果安装过程中出现任何问题,请通知我们。
重要提示:您需要在机器上安装 Radamsa 以便在模糊测试攻击中生成模糊测试载荷。
在设置好虚拟环境并安装上述必要的库之后,您可以通过命令行或您喜欢的IDE运行Peniot。
$ python src/peniot.py
运行此命令后,您应该会看到一个用户界面出现。然后您可以自行探索该工具。
您可以在 resources/documents 文件夹中找到《设计概述文档》和《最终设计文档》。 resources/diagrams 文件夹下附有若干图表。以下是PENIOT模块分离方式及其设计的最简表示。
大多数攻击在其攻击脚本中都包含自己的示例集成测试。要运行这些测试, 您需要为目标协议运行一个程序。我们尽力为每个协议提供示例程序,您可以在每个协议的 examples 目录下找到服务器/客户端脚本。
本项目由以下项目成员贡献:
并由 Pelin Angın 指导。
首先,感谢您访问我们的项目页面。我们试图通过端到端的安全攻击,向您展示如何利用物联网设备所使用的协议对其进行渗透和攻击。 我们的主要目标是使用通用安全攻击来攻击这些设备。任何人都可以轻松找到针对特定协议的攻击方法,但正如我所说,我们的目标是提供一个通用且可扩展的渗透框架。
其次,PENIOT 是使用 Python2.7 开发的。我们的代码可能已经进入了“遗留状态”。 但尽管如此,我们还是希望将其公开,以便任何人可以从中获得洞察和灵感,开发自己的渗透工具——如果这能实现,我们将非常高兴。
第三,如果时间允许,我们也会尝试将我们的工具移植到 Python3。 当移植完成时,我们也将通过此页面通知大家。感谢您的关注。
开发者:@yakuza8 (Berat Cankar)