使用Python控制Sonos IoT设备

转载国外课栈网

许多流行的物联网设备都有可怕的安全性问题。例如,与Sonos扬声器位于同一Wi-Fi网络上的黑客可以直接控制设备的行为。如果物联网设备无法确保免于被网络驱动的控制消息影响,那么有人可以轻松编写一些Python脚本使其按照自己的意愿行事。

为什么IoT设备并不总是安全的?

物联网设备是低成本,连接互联网的硬件部分,已经构建出链接伟大想法和完全空无的大道。随着将Wi-Fi卡放置在精艺的设备上连接到互联网的不断发展趋势,意味着许多不同的制造商正在将他们自己的安全版本烧入这些设备中。

许多这些支持Wi-Fi的产品,如灯泡,恒温器和扬声器,已经成为主流产品,甚至可以吸引那些技术娴熟的用户。由于物联网设备的采用范围很广,物联网设备制造商的信念是,他们的设备必须首先易于使用,这意味着安全性不严格。

大多数物联网设备使用安全性较差的API,假设允许您的设备链接本地Wi-Fi网络上,则必须拥有与其进行交互的权限。然而,许多物联网设备允许本地Wi-Fi网络上的任何人使用正确的命令控制它们,而无需向用户询问密码或任何类型的登录。

物联网设备的SoCo,SoCos和API库
一些最流行的物联网设备类型是Sonos连接扬声器,它允许本地网络上的任何人通过移动或桌面应用程序控制它们。由于Sonos扬声器具有广泛且易于控制的特点,因此它们是检验我们如何影响它们的完美范例。

与远程服务器通信的移动应用程序不同,在手机或桌面上运行Sonos应用程序会将命令直接发送到家庭网络上的Sonos。因为这些命令可以由任何人发送,而不仅仅是Sonos应用程序,如果我们知道Sonos设备使用的API,我们可以从Python程序进行应用程序调用。

对于黑客而言,幸运的是许多常见物联网设备的API都是众所周知的,并且是非正式的。Sonos API甚至已经变成了Python的库!SoCo和SoCos库允许Python程序员通过命令行界面或通过IDE编写的Python脚本搜寻本地网络上的Sonos设备和发出命令。

为了说明这是如何工作的,我们构建一个拒绝服务(DoS)脚本来禁用网络上的任何Sonos系统,通过这种手段分析Sonos设备的控制方式。

使用Python设计自己的控制方式
为了使用Python的SoCo(Sonos Controller)库,我们首先研究了该库中哪种命令方式适用于IoT设备的脚本控制。虽然我们可以将一首歌反复改变成一首强烈感性力量的经典歌曲,例如“ 永远不会放弃你”,但这种行为会立即使附近的所有人感到烦躁。相反,查看可用的命令,似乎拒绝服务攻击(DoS)将很容易使用。

拒绝服务攻击(Dos)旨在简单地打破设备通常的工作方式,拒绝其他人使用它的能力。在Wi-Fi DoS攻击中,我们会反复尝试让所有人离开网络,以防止任何人使用互联网。在这次攻击中,我们将在网络上找到任何Sonos设备,然后一遍又一遍地向他们发送“停止播放”命令,让Sonos扬声器无法正常使用。

你需要什么

开始之前,您需要确认有权限访问网络上的Sonos设备。接下来,您需要一个Python IDE来编写代码。IDE很有用,因为它们让我们在优化的环境中处理我们的代码,并在整个过程中向我们提供大量有关代码发生情况的反馈。我推荐PyCharm。

设置好PyCharm后,请确保您的计算机已安装Python。执行此操作的最佳方法是转到终端窗口,输入python3,然后按回车键。如果你得到一个命令提示符,你有Python3,你就可以开始了。如果不这样做,您可能需要在继续官方网站之前下载Python3 。

步骤1:启动一个新的Python项目
下载PyCharm后,打开文件,然后按照安装步骤进行设置。如果您已经设置好了,只需打开PyCharm应用程序即可。第一次打开PyCharm时,你会看到如下屏幕:
在这里插入图片描述
单击“创建新项目”,然后根据需要将项目命名为未定义的项目。单击“创建”以打开新项目窗口。
在这里插入图片描述
在新项目窗口中,我们需要启动一个新的Python文件。右键单击左侧的项目屏幕,然后选择“新建”下拉菜单。从该菜单中,选择“Python File”以创建空白Python文件。把它命名为你会记住的东西。
在这里插入图片描述
现在应该打开一个Python文件并准备运行。为了确保您的Python正常工作,您可以将以下一个简单脚本放入编辑区,右键单击“项目”区域,然后单击“运行”。

更多内容,点击此链接

猜你喜欢

转载自blog.csdn.net/jiyotin/article/details/86596730