0x00 折腾的缘由
不知什么时候看到这篇文章后,我便对其中主人公对一个模拟的邻居进行攻击的过程产生了好奇,由于原文没有详细描述攻击的每一个步骤,便想着什么时候在一个安全的环境下重现一下。
首先明确接下来的操作都是安全无害的,虽然的确劫持到了其他人的一些流量,但并没有继续解密流量了,尝试修改流量也只是针对自己设备。
然后我们来假象这么一个目标,劫持到邻居的流量,这可以用来分析ta,并修改流量,达到浏览器弹窗、修改网页布局的效果。
这简单的实现可以使用古老但好用的ARP攻击,将目标的流量欺骗到攻击人的网卡上,便可以开展中间人攻击了。不过这要求我们在同一个局域网中,比如连接了同一个无线路由器。一般可以搜索到邻居的无线路由器,一旦破解了其登陆密码,便可以扫描到目标的设备,进行攻击了。
0x01 尝试破解Wifi
一般我们的设备和邻居的设备不在同一内网中,所以第一难关就是攻克无线路由器。如果像我一样,插上网线发现就已经和邻居在同一内网中,那么就可以跳过这一步了。
使用的武器
Aircrack-ng是常用的用于破解无线802.11WEP及WPA-PSK加密的工具。Linux用户下载源码编译安装即可。
其中需要Ubuntu用户预先apt-get install libnl-3-dev libnl-genl-3-dev
安装几个依赖。
Mercury 150Mbps MW150U是一个无线USB网卡,Ubuntu免驱使用,由于可以开启Monitor模式,既可以用于台式机的无线上网,也可以偶尔做做无线网络的实验。
查看网卡后发现我的笔记本网卡和USB网卡都可以用于实验:
1 |
|
选择攻击目标
一切就绪,首先让网卡进入Monitor模式,这运行程序获取到更底层的无线网络数据,
1 | sudo airmon-ng start wlan1 |
ifconfig
后发现wlan1mon
。
继续开始审查周围的无线网络,
1 | sudo airmon-ng start wlan0 |
可以看到周边的无线热点,按照信号强度由强到弱排序,其中BSSID
是热点的Mac地址,CH
是热点的信道(WIFI2.4Ghz分有13个互相有重叠的信道),ENC
是加密方式,可以发现基本都是WPA2加密,ESSID
是名称,好了,我们基本就只需要关注这些。
挑选一个victim,记下它的信息。
捕获WPA的握手包
要想破解无线密码,我们先捕捉两台设备成功握手的包。虽然其中也不含密码,但我们可以用这一信息来暴力验证密码字典中的密码是否正确。
1 | sudo airodump-ng --ivs --ignore-negative-one --bssid 目标热点MAC -w 保存文件的名称 -c 信道 wlan1mon |
现在我们看到开始抓包,
不过是否能快速捕获握手包取决于两个因素,信号强弱、是否现在有活跃的设备正在和热点通信。为了尽快获取到握手包,常规做法是广播中断连接的信号,强制踢设备下线,再连接就有我们想要的握手包了。
1 | sudo aireplay-ng -0 30 -a 目标热点MAC wlan1mon |
幸运地话,很快就能看到握手包捕捉成功,
离线破解,拼算力的时候到了
目前WPA的加密是捕获热点和设备间的握手信息,再离线用密码字典爆破,按理来说都是可以破解的,不过时间不允许我们这么做,由于一般密码很弱,比如8位纯数字,或者是非常常见,如password。一个好的字典囊括了最常见的密码,让我们能瞬间破解很多热点。
1 | aircrack-ng -w ~/Downloads/dict/0-9.8位纯数密码.txt my-01.ivs |
4T 2.2GHz的破解速度只有90000个/秒的破解速度,把0-9的8位纯数密码扫描一遍要1000分钟了。
不过常见密码是很好破解的,
所以,一定要把无线密码设置得非常特殊,长度12位以上,切记切记,还有防止软件偷走密码去分享。
0x02 扫描内网设备
成功登入后,首要访问一下192.168.1.1
或192.168.1.253
,这是路由器管理界面的常见入口,比如我登的就是admin/admin口令,控制了路由器就更加自由了。可以进行DNS攻击,刷路由器固件等。
如何在不登陆路由器管理界面的情况下,看看内网内的其他设备的情况呢?nmap登场,神级工具之前一直没用过,最近才看到其他人使用。
简单用法如下,更多请参阅他人的简单的教程1
2
3
4
5
6
7
8
9
10➜ ~ nmap -sP 192.168.1.1-254
Nmap scan report for xxxxxxxdeiPhone (192.168.1.7)
Host is up (0.031s latency).
All 100 scanned ports on feixiandeiPhone (192.168.1.7) are closed
MAC Address: XX:XX:XX:XX:XX (Apple)
Too many fingerprints match this host to give specific OS details
Network Distance: 1 hop
```
哈,发现一个人的iPhone。
0x03 简单进行Arp攻击
现在,真正的攻击上演了。我们要将上面找到的victim的流量欺骗到我们的网卡上,ettercap登场,apt-get
安装即可。
1 | sudo ettercap -i wlan1 -T -M arp:remote /192.168.1.1// /192.168.1.7// |
执行中间人攻击,欺骗路由器和目标设备,这样本来由目标发下路由器的流量就发给了我方网卡,中转后再发向路由器。
0x04 审查流量信息
配合wireshark
审查浏览,不过现在HTTPS加密已经流行起来,似乎只有HTTP明文可以被我们分析了。
似乎到了饭点,在定外卖……
0x05 修改流量信息
接下来攻击自己手机,尝试在HTTP明文中注入脚本。
还是使用ettercap
,其中的fliter
功能可以进行简单的文本查找和替换,虽然十分低效。高效的方法需要加入HTTP解析,这样方便过滤和注入。
fliter代码,
1 |
|
预先编译为ettercap
可加载的二进制模块,
1 | etterfilter f.filter -o fun.ef |
重新进行攻击,这时候流量被匹配后修改,
1 | sudo ettercap -i wlan0 -T -M arp:remote -F fun.ef /192.168.31.1// /192.168.31.155// |
攻击效果,
脚本注入
哈,灰色默哀