年前给儿子买了个天猫精灵,广告说这是智能音箱提供海量音乐!有很多音乐不假,但是为什么还附带一堆的儿歌?每次回家想听音乐,儿子就会强行播放儿歌。遥想起:

When I was a boy,跟我妈抢遥控器,抢赢了,下图你们熟悉吗?抢输了,陪着看TVB妈妈剧。

Ettercap系列IV:闭嘴吧天猫精灵----ettercap过滤器的应用 [Ettercap系列完结撒花]_ip地址

When I was a young man,跟老婆抢笔记本,抢赢了会吵架;抢输了要陪着看掉智商的韩剧。

And now,跟儿子抢音箱,抢赢了,儿子会跟他爷爷打报告;抢输了,忍受儿歌洗脑循环。哎,纵观这些年,我怎么一直是弱势群体?正当我感叹人生时发现,虽然天猫精灵号称是智能音箱,没网络时还不如个收音机----彻底哑了!哼哼,作为全家的网管,我首先想到的是登上路由器把天猫精灵踢进黑名单,世界不就安静了?奈何家里用的是电信光猫,路由管理账号忘了,方案1失败!

    虽然路由器上不去,家里其他设备都跟天猫精灵连在同一个无线网内,能不能实施中间人欺骗?趁儿子睡觉,我试了一下,Arpspoof果然能对天猫精灵进行断网攻击。(其实多数光猫为了节省成本,没有任何安全措施,连基本的ARP欺骗防御都省了,插上网线就能跑。如果,光猫安置在一户人家中,问题不大;但是也有例外,但是,光猫安置在小区机房或者合租房内,这种情况风险很大。)很好么,不用登路由器也能掐断儿子的网了。

    故事结束了?并没有!偶尔一天,我想看看天猫精灵联网再干啥,别偷偷把我家有金矿的事传出去了!于是我又开启ettercap和wireshark开始抓包。192.168.0.176是天猫精灵的IP,虽然我没法登陆路由,但是,用arpscan结合排除法还是确定了它的IP地址!

Ettercap系列IV:闭嘴吧天猫精灵----ettercap过滤器的应用 [Ettercap系列完结撒花]_服务器_02

不出所料,天猫精灵忙着收发各种数据包。一般而言,这些设备会跟某台服务器通信。那势必会用域名解析协议来定位服务器IP,果然,wireshark里看到不少dns请求/应答,其中有请求阿里云的IP地址:

Ettercap系列IV:闭嘴吧天猫精灵----ettercap过滤器的应用 [Ettercap系列完结撒花]_安全措施_03

嗯,天猫精灵是阿里旗下的产品,用到阿里云做服务器也挺正常。用这些DNS应答中出现的aliyun作为关键字,在wireshark显示过滤器中输入,碰碰运气:

frame contains "aliyun"

我居然发现了大量的HTTP请求!请注意,是HTTP请求,不是HTTPS!没有加密!再确认一下aliyun服务器(IP:47.97.242.7)是不是真的发了很多HTTP请求:(注,此时我还没有开启"TCP assembly subdissection"选项)

Ettercap系列IV:闭嘴吧天猫精灵----ettercap过滤器的应用 [Ettercap系列完结撒花]_服务器_04

天猫精灵接收了这么多HTTP应答,难道他闲着没事看网页?太智能了吧!我启用"TCP assembly subdissection"选项的同时,以HTTP作为显示过滤器,看看天猫精灵在干啥:

Ettercap系列IV:闭嘴吧天猫精灵----ettercap过滤器的应用 [Ettercap系列完结撒花]_安全措施_05

嗯?请求MP3?原来你是在线播放器?我仔细观察了一下,每次播放一首歌曲,天猫精灵会发出2-3个GET请求和2-3个POST请求,虽然请求中看不出他请求的MP3的名字(部分英文歌曲可以看到歌曲名和演唱者名)。再次改变显示过滤器,可以将规律放到放大镜下:

Ettercap系列IV:闭嘴吧天猫精灵----ettercap过滤器的应用 [Ettercap系列完结撒花]_服务器_06

我让天猫精灵播放了4-5首某女歌星的歌曲,得到上面的显示结果。在"Pack detail"面板中点开其中一项HTTP请求,可以看到天猫精灵下载音乐通过HTTP媒体协议。另外,天猫精灵下载完一首歌曲后会短暂的停止下载,所以,会暂时和aliyun断开链接,可以从TCP的RST包中看到这个现象。下图是我选取其中一个HTTP响应,右键-Follow TCP Stream得到的结果:

Ettercap系列IV:闭嘴吧天猫精灵----ettercap过滤器的应用 [Ettercap系列完结撒花]_安全措施_07

嗯,已经收集了足够的信息,现在可以让天猫精灵闭嘴了,写个ettercap过滤器,过滤特定IP和端口:

//过滤器以普通文本形式保存即可,我的过滤器文件名为etter.filter
if (ip.dst == '192.168.0.176' && ip.proto == TCP) {
if (tcp.src == 80) { //过滤HTTP包
msg("data stream detect.\n");
drop(); //设置ettercap不转发这个包
kill(); //同时切断链接
msg("disconnection"); //日志
}
}

编译过滤器:

etterfilter etter.filter -o etter.ef

最后通过命令:应用该过滤器

ettercap -Tq -i wlan0 -M arp:remote /192.168.0.176// /192.168.0.1// -F etter.ef
#-F参数指定过滤器的路径

Ettercap系列IV:闭嘴吧天猫精灵----ettercap过滤器的应用 [Ettercap系列完结撒花]_服务器_08

应用过滤器后,在跟天猫精灵语言,虽然它还能回答,但是已经无法播放音乐(毕竟下载音乐是以HTTP协议作为载体,而载体已经被砍断),同时,可以看到ettercap有大量的拦截输出,而我们的wireshark却一片祥和:

 

Ettercap系列IV:闭嘴吧天猫精灵----ettercap过滤器的应用 [Ettercap系列完结撒花]_ip地址_09