造价通

反馈
取消

热门搜词

造价通

取消 发送 反馈意见

手把手教你接管基于BLE的IoT智能灯泡

2018/09/06118 作者:佚名
导读:在这篇文章中。我将手把手的教大家如何接管一个基于BLE的IoT智能灯泡。我将利用嗅探工具抓取通信数据包,并对数据包做相应的修改以执行重放攻击 – 而所有的这些操作成本将会控制在10美元以下。 本文将主要包含以下内容: 安装和配置G

在这篇文章中。我将手把手的教大家如何接管一个基于BLE的IoT智能灯泡。我将利用嗅探工具抓取通信数据包,并对数据包做相应的修改以执行重放攻击 – 而所有的这些操作成本将会控制在10美元以下。

本文将主要包含以下内容:

安装和配置Gattacker 分析物联网设备的advertisement和Service数据包 嗅探和转储在移动设备和设备之间传输的数据 用转储文件执行重放攻击

这里我先做个预告。在不久后,我们将举办IoT开发的公开课,其中涉及BLE嗅探,开发,Zigbee等主题,大家可以随时通过secure@attify.com与我们联系,或查看这里。公开课程的安排在这里:https://www.attify-store.com/collections/real-world-training/products/offensive-iot-exploitation-live-training。

在正式开始之前,我们必须具备以下条件:

硬件

笔记本电脑 BLE Dongles

软件

Gattacker NRFConnect
安装Gattacker并对其进行配置:

执行步骤

Step 1:安装Gattacker,你需要最新版本的node和npm。可以使用以下命令安装:

sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev

安装NodeJS,你可以参照本指南进行操作

Step 2:接下来,我们需要安装bleno,命令如下:

npm install bleno npm install noble

如果出现错误,请确保你之前已正确安装了node和npm软件包。

Step 3:现在使用该命令安装Gattacker

npm install gattacker

Step 4:在另一台虚拟机(或系统)上重复相同的步骤,因为我们需要两台机器 – 一台用于主机,另一台用于从机。

Step 5:完成后,插入ble适配器并使用sudo hciconfig确保其已插入。

然后导航到gattacker文件夹

cd node_modules/gattacker

Step 6:

接下来,我们需要编辑config.env文件,配置gattacker。

sudo nano config.env

Step 7:取消NOBLE_HCI_DEVICE_ID注释,然后将其替换为hciX,其中(X是我们之前通过hciconfig找到的值)并保存文件

从机的配置

让我们来查看下该从机的IP地址。

从机的连接信息

Step 8:现在在主机中,插入BLE适配器并按照上述步骤操作。对于config.env,请按照以下步骤操作:

取消NOBLE_HCI_DEVICE_ID注释 取消BLENO_HCI_DEVICE_ID注释

将它们分配给hciX值。

完成后,在WS_SLAVE中,将其中的IP地址替换成从机的地址:

主机的配置

完成后,保存配置文件。现在我们准备开始使用Gattacker并利用一些物联网设备。

使用Gattacker扫描和存储设备信息:

执行步骤

Step 1:打开从机VM并启动ws-slave.js,如下所示:

sudo node ws-slave.js

Step 2:现在在主机分支的gattacker文件夹下并启动扫描,如下所示

sudo node scan.js

扫描命令

现在打开灯泡,然后按Enter键以查看如下消息

保存它的advertisement包

sudo node scan f81d7860753A其中f81d7860753A是由gattacker保存的灯泡的peripheral名称。

保存它的service包

现在,如果你再导航到gattacker中的device文件夹,你可以看到如下图所示的两个文件

文件夹包含了灯泡的advertisement和Service数据包

Step 3:现在打开文件f81d7860753a_LEDBLE-7860753A.adv.json查看设备的advertisement信息

灯泡的advertisement信息

Step 4:同样,打开f81d7860753a.srv.json查看设备的service信息

灯泡的service信息

使用gattacker转储和重放信息: 执行步骤

Step 1:按照前面的练习存储advertisement和service数据包。 现在我们关闭灯泡并按照以下步骤操作

Step 2:完成后,在主机上结合advertisement和service数据包启动advertise.js。

sudo node advertise.js -a devices/f81d7860753a_LEDBLE-7860753A.adv.json -s devices/f81d7860753a.srv.json

嗅探设备之间的通信

现在按回车并等待消息

等待灯泡开启

现在给灯泡供电,你会看到如下信息

初始化攻击

Step 3:现在从手机中打开MAGICBLUE应用程序并扫描设备

Step 4:现在连接到设备,在主机中你可以看到如下内容

主机中客户端成功连接的消息

Step 5:在移动应用中,更改灯泡的颜色。

可以在这里看到更改的Handles和RGB值

现在我们按ctrl + c退出

Step 6:现在此值已被保存在了转储(dump)文件夹中,导航到转储文件夹并输入以下命令:

转储转储文件夹中的文件

打开文件:

sudo nano f81d7860753a.log

你将看到如下内容

更改保存为转储的值

Step 7:现在我们来对它进行重放,在此之前我们必须将前7行删除。

要编辑的行

编辑完成后

现在保存文件

Step 7:现在在移动设备和灯泡断开连接后的主机中,输入以下命令

sudo node replay.js -i dump/f81d7860753a.log -p f81d7860753a -s devices/f81d7860753a.srv.json**

重放攻击

重放信息

使用gattacker转储和重放NRFConnect应用程序的信息:

执行步骤

Step 1:NRFConnect应用程序支持XML文件。因此,我们需要将从转储文件夹获取的日志文件更改为有效的xml文件,如下所示:

node gattacker2nrf.js -i dump/f81d7860753a.log > dump/f81d7860753.xml

转换为xml文件的命令

导航到转储文件并查看名称为f81d7860753.xml的xml文件

包含f81d7860753.log的文件夹和转换后的f81d7860753.xml文件

现在将这个xml文件传送给手机

Step 2:接下来,从google play store下载NRFConnect应用程序。 安装完成后打开应用程序和灯泡。使用nrf connect app扫描灯泡。

Step 3:连接后,按下位于右下角的橙色图标

灯泡的连接状态

Step 4:你将看到下图所示的内容

打开宏以加载xml文件

Step 5:现在按屏幕上的下载图标并浏览到从主机传输xml文件的文件夹。

加载xml文件

Step 6:在这里你将能够看到如下所示的播放选项

转储文件准备重放

Step 7:现在点击播放选项来执行对灯泡的重放攻击。

执行攻击

如果现在你已经能够控制和操纵灯泡了,那么就证明你已经成功执行了该攻击。

在之后的文章中我们还会研究和讨论更多有关BLE开发,Zigbee开发等主题,欢迎大家的关注!

*参考来源:attify,FB小编 secist 编译,转载请注明来自FreeBuf.COM

*文章为作者独立观点,不代表造价通立场,除来源是“造价通”外。
关注微信公众号造价通(zjtcn_Largedata),获取建设行业第一手资讯

热门推荐

相关阅读