内部环境的wifi钓鱼实践: 基于信任的安全体系一攻即破

2021-05-20 15:50:56 浏览数 (1)

因法律原因,本文中所提及技术的关键步骤已省略,且在无危害的封闭环境下模拟进行。

0x01 古老技术:Wi-Fi钓鱼

1971年6月美国夏威夷大学设计了一种实验性电脑网络,并命名为ALOHA。它成功借助无线网络连接了夏威夷诸岛并实现了一定的带宽,这是世界上第一个无线资料网络,也是Wi-Fi的起源。上个世纪八十年代初期移动电话兴起后,Wi-Fi网络也开始建立。从1997年推出的第一代WLAN标准协议802.11-1997至2019年的WI-FI 6,WI-FI历经三十多年的发展已经成为现代通信网络中必不可少的一环。全球每天都有无数人在家或办公室通过无线网络上网,而这些网络中有很多是开放或者设置不安全的,这给危险提供了极大的生长空间。

本文要介绍的WI-FI钓鱼则是一种“古老”的无线渗透技术,它几乎伴随着Wi-Fi的普及而诞生,它长期存在且难以消失,在技术上较为简单却又极易得手。因为其在本质上利用的是人们的一种信任惯性:对自己经常连接又熟悉的无线热点十分信任几乎不会怀疑。Wi-Fi钓鱼便是利用这一心理进行诱导,让受害者将伪造的热点误认为自己经常使用的热点或者使受害者的设备误以为伪造的热点为曾经连接过的从而进行连接,从而进行DNS劫持、流量劫持等一系列攻击。因而Wi-Fi钓鱼普遍运用于需要进行物理接触的渗透测试当中,你不会知道在公司隔壁的咖啡厅里摆着电脑喝咖啡的人,其实正在监控着你在互联网上的一举一动。

WI-FI钓鱼的出名最早源于美国黑客大会的绵羊墙(The Wall of Sheep)活动,黑客大会的会场提供了开放的WiFi网络,不加密的网络会话可以被监听,因此主办方搞了一个“绵羊墙”,它会监听整个WiFi网络,抽取其中明文传输的账号、密码和URL,自动发到IRC频道里(当然,账号和密码打上了部分掩码)。绵羊墙上时时发出一个个HTTP会话和邮箱登陆的账号密码,让大家真正感受到无线网络攻击的危险。

在国内第一次受大众所知则是在15年的一次315晚会上,360无线安全专家在舞台上展示了绵羊墙,现场截获了许多观众的网络账号,那一年的315晚会我也坐在电视前,这一幕给我留下了十分深刻的印象。这也是我第一次认识无线安全。

这一场315晚会已经过去六年,2021年的今天无线钓鱼仍然能够使用吗?答案是肯定的。

跟大部分大学一样,我所在的学校也建设了校园无线网络设施,并覆盖了整个教学楼区域。每间教室都在天花板的中央安装了一台无线路由器,且每间教室无线热点的ssid都是一样的。这些热点是开放的,学生连接后会跳转至登陆页面在输入自己的校园平台账号后可以联通上网。

学生们每天进入教学楼后打开手机、平板、电脑连入Wi-Fi并输入自己的校园网账户密码后便可以上网,日复一日,没有人怀疑这一行为有什么奇怪的,这是一个很日常的操作,就像自己的手机一样熟悉。为便于理解,我们可以称人们对这一热点是信任的。这很重要,是后续所有攻击的基础。

信任在被利用后产生的危害是远比人们在接触一个陌生事物时要大的。而针对这一网络进行WI-FI钓鱼攻击往往屡试不爽。

在此基础上,我猜测对学校进行wifi钓鱼攻击成功概率将极高。由于学校wifi登录页面密码即为校园内网登录密码,因而学生的该账号密码将有极高的利用价值,其具体利用将在文章最后叙述。

0x02 wifi钓鱼的前期准备

要进行wifi钓鱼,需要的硬件设备为:

1. 支持Monitor模式的无线网卡,最好为RT3070、RT5070系列芯片。这系列芯片的网卡支持kali虚拟机免驱运行,可以省去很多事情。最好使用两个网卡,一个网卡负责洪水攻击,另一个网卡进行无线AP伪造。

2. 一台笔记本

软件:

kali Linux 其中用到的工具有aircrack-ng(kali自带) wifipumpkin3(安装使用可参考:https://www.freebuf.com/sectool/265288.html)

无线网卡我用的是这一款信号能在6dbi左右:

由于我所在的区域与校园wifi信号覆盖区域有一定的距离,而且携带一个带天线的网卡进入Wi-Fi覆盖区域到处乱转很难不被怀疑,在前期嗅探的阶段我打算先不进入wifi信号覆盖区域,所以我在某鱼上又淘了一个增益天线:

源头设计来自于一位俄罗斯人,详情可以参考B站上这位老兄的视频。

强烈不建议自己焊接,铜上不太好挂锡。效果还不错,据卖家说能收到一公里以外,实测没有这么远,遇到建筑物遮挡信号仍然无解。但还是收到了学校隔壁小区售楼处的Wi-Fi信号。

这是一款定向天线,我期待它能在攻击某一无线AP时派上用场。

0x03 进行攻击

整个钓鱼的过程的大体思路是这样的:

首先利用取消验证洪水攻击(De-authentication Flood Attack)攻击目标AP,使连接在无线AP上的设备被迫断开连接。

然后对目标无线AP进行伪造,此时断开连接的设备将更倾向于自动连接伪造的无线AP。

在连接伪造的无线AP后,假AP将自动弹出经过仿制的无线网络认证页面,诱导用户填入账户信息,从而窃取其校园网账户信息。

对被攻击AP进行洪水攻击

进入kali,首先进行针对无线AP的洪水攻击:

输入命令ifconfig查看已经存在的网卡设备,wlan0即为移动网卡设备。

然后使用sudo airmon-ng start wlan0命令开启无线网卡的monitor模式,只有在打开monitor模式后才能进行之后的操作。之后该网卡的名称将变为wlan0mon,在开启monitor模式前最好运行airmon-ng check kill命令来关闭可能对操作有影响的进程。

运行sudo airodump-ng wlan0mon来对附近的无线热点进行嗅探:

当发现所要进行攻击的无线AP后,即可退出嗅探,记下BSSID栏中无线AP的MAC地址与CH栏中的频道号。

运行airodump wlan0mon -c 1将网卡监控频道设至与目标AP相同的频道。

运行aireplay-ng -0 0 -a xx:xx:xx:xx:xx:xx wlan0mon命令来进行洪水攻击。

在上述命令中 参数-0表示攻击次数,当设置为0时将不断进行攻击,-a为无线AP的MAC地址。

攻击开始后,用户将难以连接该路由器的WI-FI热点。

伪造无线AP

我们将使用无线渗透框架wifipumpkin3进行伪造,wifipumpkin3是用Python编写的wifi钓鱼攻击强大框架

可以快速方便的搭建一个钓鱼wifi,进行钓鱼或中间人攻击,免去了手动搭建环境的繁琐步骤。

具体安装与使用教程可以参考https://www.freebuf.com/sectool/265288.html

要注意的是此时需要使用另一块网卡进行无线AP的伪造工作。

wifipumpkin3中代理模块中的captive flask支持伪造强制登录的无线AP的登录页面并使用该页面强制用户登录,可在 wifipumpkin3/plugins/captiveflask下进行编写,使用flask语言。具体编写可参考该项目在GitHub上的文档。

运行sudo wifipumpkin3启动框架

运行下列命令

设置热点名称 wp3 > set ssid evilAPname 选择网卡 wp3 > set interface wlan0#如果使用了两张网卡应为wlan1c wp3 > set proxy captiveflask # wp3 > set captiveflask.swifi true #swifi是我们自定义的captiveflask页面 wp3 > start

启动后框架将显示伪造页面的flask运行状态与连接状态。

此阶段为在封闭场所下的实验行为,所有参与实验者事前知情,请勿在生产生活中进行尝试!否则将涉嫌违法犯罪。

由于高度的仿真,连接至无线AP的被攻击者很难分辨真假,在填入自己的账户与密码后页面将返回一个报错页面,致使被攻击者错以为网络设备出现了问题,而此时其账户和密码皆已被窃取。

0x04 攻击后利用

当得到校园网络账户密码后,我们同时获取的也将是该被攻击者的内网登录账户。而登陆内网平台,不仅将会导致此人的个人信息严重泄露,同时黑客将有可能借助此人的身份进行更进一步的渗透。比如在内网平台上可向全校任意师生发送站内邮件,黑客可利用该功能发送附有恶意程序的钓鱼邮件,从而跳入内网,造成更大危害。

而一切进一步的攻击,都将基于对被攻击者的身份信任。

而被攻击者账户的泄露,也是基于对无线网络的惯性信任。

我们可以得到一个结论:这种基于信任的安全体系,是不安全的,脆弱的,一攻击破的。或者换言之:现有的安全体系已经是不可信任,而仍然对其保持信任将导致风险的高度提升。

我们如果要建立一种安全的防护体系,最为可行的有两条路可以选择:

1.建立更加完善的技术安全体系,以更加安全的防护恢复用户对其的信任。

2.彻底消除对于安全体系的信任,建立以零信任为基础的安全体系。即认为任何安全体系都不是安全的,对于一切通讯与加密认为是不安全的,并以此为理念建立新的防护体系。

0 人点赞