首先,我不确定是否应该将其发布在Lego Stack Exchange网站上或此处,然后我决定该网站与问题有关(我希望我不会对此表示不好)。好吧,我和我的朋友们都有乐高NXT相扑机器人竞赛,很有趣。基本上,您会构建一个等待五秒钟的机器人,并与机器人竞争以停留在板上。我们通常专注于机械方面,以击败其他机器人(找到它们并将其推离桌面),但是我有尝试进行软件攻击的想法。我的想法也是:


找到可以从另一个NXT中利用的某种蓝牙漏洞(我用NXC编写程序)。机器人永远向后驱动。
以某种方式执行该程序(并赢得胜利!)。

我尝试测试NXT蓝牙的漏洞(我了解Windows / Linux的开发和调试知识),什么都找不到主要问题是NXT固件处理蓝牙连接,换句话说,您在运行需要蓝牙的程序之前使用密码连接设备。所以,我的问题是:


这是可能的还是浪费时间?
如果存在NXT蓝牙漏洞,我什至可以从另一个NXT发送该漏洞吗?未连接?
这是发布此问题的正确地方吗?
甚至可以进行NXT调试吗?

更新
首先,感谢所有创意和答案。其次,一些答案说明了我正在尝试做的合法性。是的,我住的地方是合法的。第三,我与比赛的主要负责人和裁判进行了交谈,他说他希望看到这样的软件攻击。

我现在在哪里
我有Kali Linux,并且找到了mac地址。我也在这里找到论文
在控制协议上。我仍然面临的主要难题是必须在要连接的设备上输入蓝牙密码。任何更新都将发布在这里!

评论

听起来好像堆栈实际上设计得很好。顺便说一句,这不是“漏洞和漏洞”站点,而是反向站点。

既然是反向站点,这是发布此问题的正确地方吗?

由于缺乏答案,甚至评论都没有满足感,因此可能并非如此。请尝试使用Lego Stack Exchange,至少它们是在该特定硬件中使用的。

好的,我将其发布到此处。
顺便说一句,security.stackexchange.com将是问这个问题的最佳场所。出于好奇,尝试破解朋友的NXT和机器人配对代码,让我们知道结果

#1 楼

两个主要问题:如果您的竞争对手是与“朋友”这样的正规组织/人在一起,但您从未一起喝啤酒,那么对于初学者来说,您想看看这在您的国家是否合法。在美国的情况下,这可能违反CFAA,但我不是律师。另外,这会使您失去参加(非正式)比赛的资格吗?

其次,考虑一下:众所周知,以下(狂躁)攻击很难防御,并且您和您的朋友需要在每次私人比赛之前和之后立即更改配对代码,这很痛苦。

除此之外,还有很多方法可以利用功能而不是漏洞来折衷敌方团队:D为什么要麻烦对NXT的蓝牙堆栈进行模糊处理,看看它是否具有JTAG端口例如,在比赛开始之前(如果他们已经启用了NXT并且在范围内),您可以配对,浏览其保存的连接并进行控制他们的NXT,他们的机器人以及您的机器人!或者直接与他们的机器人配对。但是,您需要配对代码!

要执行此攻击,您绝对需要一种可以嗅探(高速)蓝牙流量的设备。强烈建议使用像hackRF这样的软件无线电,因为它是我所知道的唯一可以捕获高速蓝牙数据包的蓝牙设备之一。这些是我要利用敌方乐高NXT或机器人的步骤:

对于步骤1-4,请首先在自己的设备上尝试,而不是在自己的设备上进行尝试。最好总是先进行“空转”运行(步骤1-4),然后再进行“实时”运行(针对步骤5中的NXT /机器人)。大多数工具都随图像一起提供
使用bluesniff / blueScanner / etc。抓取设备的地址(看起来像mac地址)
从那里,使用bluesnarf发送自定义([-c])命令。在这种情况下,他们将遵守Lego NXT通信协议LCP规范。或者,您可以使用bluesniff,记录/保存蓝牙数据包并使用裂纹破解配对代码
可选:您可能会重放从Lego NXT套件发送到机器人的常规LCP命令,所以我会尝试先使用bluesnarf和SDR嗅探并重播它们。
一旦弄清楚了发送给Lego NXT的蓝牙命令的格式,现在该完成侦察/枚举了。敌方团队之前的一场比赛并执行前面的步骤(获取其NXT /机器人的地址,用您的SDR嗅探,记录/保存蓝牙数据包),然后使用裂纹破解其配对代码。

掌握了敌方的配对代码,以及如何通过SDR和/或bluesnarf发送自定义LCP命令的知识,在下一轮中,您应该能够以多种方式作弊:


让他们的机器人玩Frogger:与敌方团队的NXT设备作为主设备(它是从设备)配对,并编辑通过蓝牙推送到其机器人的NXC脚本
锁定'退出:在比赛开始时更改机器人的配对代码。
奖金:使用您所学到的有关LPC和SDR的知识编写一个轻量级的蓝牙模糊器,将蓝牙数据发送到NXT或机器人。您极有可能需要JTAG调试器。奖励积分,如果您可以在NXT的蓝牙堆栈中找到一个远程执行代码(RCE)漏洞,则可以利用该漏洞将皮卡丘吸引到他们的NXT屏幕上


评论


我已经有Kali,并且已经获得Mac地址。我将开始尝试取消协议。我还找到了一些有关蓝牙协议的Lego论文,稍后将通过链接对其进行编辑。

– Starwarsfan2099
16年6月24日在22:11

#2 楼

我不知道您使用的是哪个版本的NXT,因为我没有使用3.0的经验,但是如果您使用2.0砖,则可以安装自定义固件,该固件将允许您使用不同的语言进行编码。

有两种主要的cfw,一种允许您使用Java编程,另一种允许使用C语言。

从这里开始,我建议您安装RobotC,因为它非常强大。虽然您可以运行标准的lego二进制文件(使用块ide创建的二进制文件),但是您具有C的功能。在那里,尝试实施公共漏洞利用程序(如果存在)或开发自己的漏洞利用方法。安全(因为不是这样,并且可以嗅探流量),但是我认为很难在远程乐高玩具上执行代码)

此外,请查看堆栈粉碎漏洞。

编辑:也考虑在比赛中使用这些技术可能是回教徒,在您所在的国家/地区搜索漏洞也可能是回教徒。