本次实验基于 Kali Linux 环境,使用 Wireshark 软件抓取无线网络的数据包,分析其他使用者登录大学教务系统的数据,从而登录同学们的教务系统。
在 Kali Linux 中,使用 Aircrack-ng 系列工具,可以使无线网卡工作在监控模式下,从而抓取无线网络的 802.11 帧。大学的校园网的无线接入点为 WHU-STU,这是不经过加密的接入点,因此可以获取 802.11 帧中的数据。大学教务系统的 URL 为 http://218.197.150.140/,只能使用 HTTP 协议连接,而非经过加密的 HTTPS,因此可以从 HTTP 请求中提取用户的登录信息。
在本次实验中,我使用笔记本电脑运行 Kali Linux 进行抓包,使用自己的智能手机模拟其他使用者登录教务系统。在抓取数据包后,使用分析获得的登录信息,在智能手机上重新登录教务系统成功,达到实验目的。
本次实验的目的仅在于学习网络安全知识,应对信息安全威胁,并防范自用 IT 基础设施受到攻击。本次实验没有侵犯他人的任何权利。对本实验报告的不当使用所导致的一切后果,作者不承担任何责任。
在 Kali Linux 中获取 WHU-STU 使用的信道:
sudo iwlist wlan0 scanning
由输出可知,WHU-STU 工作在信道 5。
使无线网卡工作在监控模式下:
sudo airmon-ng check kill
sudo airmon-ng start wlan0
设置无线网卡监控信道 5:
sudo iwconfig wlan0mon channel 5
打开 Wireshark,选择 wlan0mon 开始抓包。
使用智能手机的浏览器打开大学教务系统 http://218.197.150.140/,此时 Wireshark 中抓取到相应 IP 地址的 HTTP 数据包。
输入学号、密码与验证码并点击提交,此时 Wireshark 中抓取到 POST 请求,包含 id
,pwd
与 xdvfb
三个字段。容易判断 id
是学号,pwd
是密码,xdvfb
是验证码。其中,学号与验证码通过明文传输,密码通过密文传输。
关闭 Wireshark。关闭无线网卡的监控模式,恢复正常连接:
sudo airmon-ng stop wlan0mon
sudo service network-manager start
sudo ifconfig wlan0 up
在浏览器中退出登录后,关闭浏览器的 JavaScript 功能。因为在登录前,网页会使用 JavaScript 对密码进行加密,再向服务器发送登录信息。若关闭 JavaScript 功能,使用抓取获得的密码的密文登录,网页将不会对密码进行处理。这与原来输入密码明文,并使用经过 JavaScript 加密后生成的密文登录等效。
输入学号、抓取获得的密码的密文和新的验证码并点击提交,可以成功登录教务系统。此时页面内容显示不完全,这是由于教务系统页面的部分内容通过 Ajax 动态加载,只需重新启用浏览器的 JavaScript 功能即可。
在本次实验中,我通过抓包获取大学教务系统的登录信息,并使用分析后得到的信息重新登录大学教务系统成功,达到了实验目的。
本次实验中,我遇到了较多问题,但都得到了解决。起初我使用 Windows 操作系统抓包,但由于与 Kali Linux 相比,Windows 操作系统在安全工具方面较为欠缺,不易配置无线网卡工作在监控模式下,因此只能抓取到本机的数据包,而不能抓取无线网络的所有 802.11 帧。
在 Kali Linux 中使用 Wireshark 抓包时,起初只能抓到少量的数据包,且大多为 802.11 帧的管理帧和控制帧,数据帧非常少。后来我设置无线网卡监控正确的信道,问题得到解决。
本次实验还存在许多可以改进之处。若无线接入点经过加密,可以通过字典攻击爆破密码。目前许多站点使用经过加密的 HTTPS 协议,但用户在访问网站时通常省略协议名,第一次连接仍然使用 HTTP 协议,可以在此时发起攻击。大学教务系统使用 MD5 对密码进行加密,对于弱密码可以使用彩虹表反查出对应的密码。
通过本次实验,我对 Kali Linux 的使用,特别是 Aircrack-ng 系列工具的使用有了基本的了解;对 Wireshark 的使用有了更深的认识。但更为重要的是,在帮助和鼓励下,我克服了一个个困难,掌握了更多的网络安全知识,实现了黑客梦,为青春增添了光辉灿烂的一笔!
(作于 2019 年 4 月 19 日,发布于 2019 年 5 月 20 日,发布时有删改)