亚马逊Dash Button的内部破解和如何让它有用gydF4y2Ba

如何找到一个Dash按钮的MAC地址使用简单的Python代码,你可能做什么gydF4y2Ba

在gydF4y2Ba我之前写的关于黑进亚马逊按钮的文章gydF4y2Ba最后我说,我将解释如何使用gydF4y2Ba泰德•本森的代码gydF4y2Ba并解释要使代码工作,你必须做些什么。gydF4y2Ba

在上一篇文章中,我们配置了一个Amazon Dash Button(亚马逊Dash Button),让我们可以选择在按下按钮时触发订单的产品。因为我们在这里停止了,现在,当按钮被按下时,Dash按钮会被唤醒,通过DHCP从我们为它配置的无线网络请求一个IP地址,然后,就像任何设备应该做的那样(无论它是否通过DHCP获得IP地址),它将发出一个ARP探测,以确保本地网络上没有其他设备正在使用它被分配的IP地址。gydF4y2Ba

RFC 5227gydF4y2Ba,gydF4y2Ba2.1.1节gydF4y2Ba,解释ARP探针的功能:gydF4y2Ba

主机通过广播一个ARP请求来探测一个地址是否已经被使用。客户端必须在ARP请求的“发送者硬件地址”字段中填写发送数据包的接口的硬件地址。'sender IP address'字段必须全部设为零;这是为了避免在同一链路上的其他主机的地址已经被另一个主机使用的情况下污染ARP缓存。“目标硬件地址”字段被忽略,应该全部设为零。“目标IP地址”字段必须设置为正在探测的地址。以这种方式构造的ARP请求,带有一个全零的“发送方IP地址”,被称为“ARP探测”。gydF4y2Ba

关于ARP探针的有用之处在于它包含请求设备的gydF4y2Ba媒体访问控制地址gydF4y2Ba(MAC地址)gydF4y2Ba应该是唯一的gydF4y2Ba.所以,如果我们观察网络上的ARP探针并解码它们,我们就能知道Dash按钮的MAC地址是什么。gydF4y2Ba

Ted的代码是Python的,这使得它很容易使用,但首先你需要安装gydF4y2BaScapygydF4y2Ba图书馆。Scapy不仅是一个图书馆,还是一个惊人的网络工具:gydF4y2Ba

Scapy是一个功能强大的交互式数据包处理程序。它能够伪造或解码大量协议的数据包,在电线上发送它们,捕获它们,匹配请求和答复,等等。它可以轻松地处理大多数经典任务,如扫描,跟踪,探测,单元测试,攻击或网络发现(它可以取代hping, 85%的nmap, arpspoof, arp-sk, arping, tcpdump, tethereal, p0f等)。它在许多其他工具无法处理的其他特定任务上也表现得非常好,比如发送无效帧,注入您自己的802.11帧,结合技术(VLAN跳变+ARP缓存中毒,在WEP加密通道上VOIP解码,…)等等。gydF4y2Ba

安装Scapy应该是很容易的,但结果是有一堆gotcha 's会得到cha;在OS X上有一篇Juha Laaksonen写的文章gydF4y2Ba在OS X上争论ScapygydF4y2Ba这将会拯救你所有的痛苦,就像下面的命令一样:gydF4y2Ba

/dev/bpf* . Sudo chmodgydF4y2Ba

这个命令将,对于当前的OS X口味,解决你将得到的错误…gydF4y2Ba

/dev/bpf0: permission denied(不能打开BPF设备)gydF4y2Ba

...因为OS X在默认情况下只允许根用户访问gydF4y2Ba伯克利包接口gydF4y2Ba.该命令通过更改来解决这个问题gydF4y2Ba所有BPF接口(gydF4y2Ba/dev/bpf*gydF4y2Ba)易读(gydF4y2Ba+ rgydF4y2Ba)gydF4y2BaggydF4y2Ba(集团;属于文件组成员的用户)和gydF4y2BaogydF4y2Ba(别人;既不是文件所有者也不是文件组成员的用户)。安装适用于Windows和Linux的Scapy稍微容易一些gydF4y2BaScapy文档gydF4y2Ba覆盖。gydF4y2Ba

这是Ted的代码:gydF4y2Ba

从scapy。所有进口*gydF4y2Ba
def arp_display (pkt):gydF4y2Ba
如果pkt (ARP)。op == 1: #who-has (request)
如果pkt (ARP)。psrc == '0.0.0.0': # ARP探测gydF4y2Ba
print "ARP Probe from: " + pkt[ARP].hwsrc .gydF4y2Ba
Print嗅探(prn=arp_display, filter="arp", store=0, count=10)gydF4y2Ba

这段代码所做的是通过原始数据包捕获来监视网络,查找ARP探针,然后在每个探针中打印MAC地址。注意,Ted的代码使用了这个参数gydF4y2Ba数= 10gydF4y2Ba在gydF4y2Ba嗅嗅gydF4y2Ba函数调用,限制代码只捕获10个数据包;在繁忙的网络上,这几乎会立即发生,所以我删除了这个参数,并选择了不优雅地杀死程序使用gydF4y2Bacontrol - cgydF4y2Ba.gydF4y2Ba

按下按钮后,你应该看到这样的显示(我使用的是OS X的“El Capitan”,所以gydF4y2BasudogydF4y2Ba是必需的):gydF4y2Ba

RedQueen:dash mgibbs$ sudo python dash-01.pygydF4y2Ba
密码:gydF4y2Ba
ARP Probe from: 74:c2:46:d7:7a:00gydF4y2Ba

瞧!现在你有了按钮的MAC地址。你可以尝试一两次,以确保它真的是你的按钮的MAC地址,因为你的网络上的其他设备有省电模式(例如,苹果电视)偶尔会唤醒并执行ARP探测。gydF4y2Ba

Ted建议用下面的代码来识别你的按钮是什么时候被按下的(这个代码可以识别两个叫做Huggies和Elements的按钮):gydF4y2Ba

从scapy。所有进口*gydF4y2Ba
def arp_display (pkt):gydF4y2Ba
如果pkt (ARP)。op == 1: #who-has (request)
如果pkt (ARP)。psrc == '0.0.0.0': # ARP探测gydF4y2Ba
如果pkt (ARP)。hwsrc == '74:75:48:5f:99:30': #好奇gydF4y2Ba
打印“哈吉斯”gydF4y2Ba
elif pkt (ARP)。hwsrc == '10:ae:60:00:4d:f3': #元素gydF4y2Ba
打印“推元素”gydF4y2Ba
其他:gydF4y2Ba
print "ARP Probe from unknown device: " + pkt[ARP].hwsrc .gydF4y2Ba
Print嗅探(prn=arp_display, filter="arp", store=0)gydF4y2Ba

泰德继续解释,按钮按下可以记录在谷歌电子表格使用gydF4y2Ba神奇的形式gydF4y2Ba,这是他创业时使用的一种工具,gydF4y2BaCloudstitchgydF4y2Ba,gydF4y2Ba他提供了gydF4y2Ba的代码gydF4y2Ba让它工作。gydF4y2Ba

使用按钮按下数据的其他选择是通过gydF4y2BaTweepygydF4y2Ba图书馆、控制gydF4y2Ba飞利浦色调灯gydF4y2Ba通过gydF4y2BaPhuegydF4y2Ba库(gydF4y2Ba我最近回顾了顺化的系统gydF4y2Ba),或触发任何东西gydF4y2BaIFTTTgydF4y2Ba支持使用gydF4y2BaiftttgydF4y2Ba图书馆。gydF4y2Ba你甚至可以进一步破解Dash按钮;根据gydF4y2Ba按钮按钮拆卸文章gydF4y2Ba由:的马修·彼托夫gydF4y2Ba

Adafruit现在有gydF4y2Ba重新编程按钮的指南gydF4y2Ba.还有一个gydF4y2BaGitHub上有趣的项目gydF4y2Ba里面有固件转储和其他固件和重编程信息。gydF4y2Ba

这些亚马逊按钮的黑客技术真的很有趣,非常便宜,而且可能非常有用的物联网实验。如果你觉得这个被黑了的按钮除了泰德的婴儿粪便和醒来追踪之外还有别的用处,告诉我。gydF4y2Ba

加入网络世界社区足球竞猜app软件gydF4y2Ba脸谱网gydF4y2Ba和gydF4y2BaLinkedIngydF4y2Ba对自己最关心的话题发表评论。gydF4y2Ba
相关:gydF4y2Ba

版权©2015gydF4y2Ba足球竞彩网下载

SD-WAN买家指南:向供应商(和您自己)提出的关键问题gydF4y2Ba