20222409 2024-2025-1 《网络与系统攻防技术》实验七实验报告
1.实验内容
1.1 本周学习内容
- 学习了SET和Ettercap工具的使用,掌握了ARP污染和DNS欺骗的攻击原理与过程。
- 了解钓鱼网站的工作原理及防范措施。
- 学习了Web安全基础,掌握前后端概念和常用技术(如前后端区别、java和js区别、前后端编程语言的特点和应用场景等)。
- 深入理解SQL注入和XSS攻击原理,认识到攻击者通过小漏洞可以造成重大损害。
1.2 实践内容
- 使用 SET 工具搭建一个冒名网站,用于模拟钓鱼攻击场景。
- 利用 Ettercap 工具实现 DNS 欺骗,将目标用户流量重定向到攻击者控制的 IP 地址。
- 结合 SET 与 Ettercap 两种技术,通过 DNS 欺骗将目标用户引导至冒名网站,进一步验证综合攻击的实际效果。
2.实验过程
2.1 使用SET工具建立冒名网站
SET(Social-Engineer Toolkit)是一款专为社会工程攻击设计的开源工具,可广泛用于模拟钓鱼网站和其他社会工程攻击。本实验中,我们使用 SET 工具克隆一个目标网站,搭建伪造页面以捕获用户输入的登录凭据。
2.1.1 实验环境
操作系统:Kali Linux
工具:Social-Engineer Toolkit (SET)
目标网站:需选择易于克隆的HTTP/HTTPS网站(如:天翼快递)
2.1.2 实验步骤
1. 启动SET工具
在终端中输入以下命令以启动SET工具:
setoolkit
工具启动后,会进入交互式界面,按提示选择所需的攻击模块。
2. 选择攻击向量
从主菜单中选择 1) Social-Engineering Attacks
。
接着选择 2) Website Attack Vectors
。
然后选择 3) Credential Harvester Attack Method
,用于捕获用户输入的登录凭据。
具体流程如下:
图1:SET工具启动界面
- Social-Engineering Attacks:用于实施社交工程攻击,例如钓鱼网站和恶意USB攻击。
- Penetration Testing (Fast-Track):快速执行一系列渗透测试任务的模块集合。
- Third Party Modules:支持加载第三方工具或定制功能模块。
- Update the Social-Engineer Toolkit:更新SET工具至最新版本以获取最新功能和修复。
- Update SET configuration:修改SET配置文件以调整工具参数或行为。
- Help, Credits, and About:查看工具的帮助信息、开发者名单及简介。
- Exit the Social-Engineer Toolkit:退出SET工具。
我们的实验中选择1) Social-Engineering Attacks
用于社交工程攻击。
图2:Social-Engineering Attacks 菜单界面
- Spear-Phishing Attack Vectors:用于生成针对特定目标的钓鱼邮件攻击。
- Website Attack Vectors:用于创建伪造网站以捕获用户凭据或执行恶意操作。
- Infectious Media Generator:生成携带恶意代码的可移动设备(如U盘)。
- Create a Payload and Listener:创建恶意负载并监听目标系统的连接。
- Mass Mailer Attack:发送大量伪装的电子邮件以进行社会工程攻击。
- Arduino-Based Attack Vector:利用Arduino设备模拟键盘输入执行攻击。
- Wireless Access Point Attack Vector:设置恶意Wi-Fi热点进行数据窃取或流量劫持。
- QRCode Generator Attack Vector:生成带有恶意链接的二维码以诱导目标扫描。
- Powershell Attack Vectors:通过PowerShell脚本执行各种类型的攻击。
- Third Party Modules:加载第三方开发的模块以扩展SET功能。
- Return back to the main menu:返回SET主菜单。
本实验选择2) Website Attack Vectors
,用于创建伪造网站,模拟钓鱼攻击并捕获用户输入的凭据。
图3:Website Attack Vectors 菜单界面
- Java Applet Attack Method:通过伪装的Java证书运行恶意负载,用于攻击启用了Java的系统。
- Metasploit Browser Exploit Method:使用Metasploit框架中的浏览器漏洞注入恶意代码。
- Credential Harvester Attack Method:克隆目标网站,用于捕获用户输入的用户名和密码。
- Tabnabbing Attack Method:通过伪装切换标签页,诱导用户输入敏感信息。
- Web Jacking Attack Method:使用iframe替换链接,伪造URL重定向到恶意页面。
- Multi-Attack Web Method:结合多种Web攻击方法同时进行攻击(如Java、Metasploit和Credential Harvester)。
- HTA Attack Method:克隆网站并通过HTA文件执行PowerShell注入,用于Windows系统的攻击。
本实验选择3) Credential Harvester Attack Method
来克隆目标网站,模拟钓鱼攻击以捕获用户输入的登录凭据。
3. 选择网站克隆方式
从可用选项中选择 2) Site Cloner
。
输入本地IP地址(192.168.222.130)
,作为伪造网站的监听地址,。
输入目标网站URL(https://www.tykd.com/User/login/)
,克隆该网站页面。
具体流程如下:
图4:选择和配置攻击方法界面
- Web Templates:使用预定义的网站模板进行攻击,不需要克隆实际网站。
- Site Cloner:克隆目标真实网站的页面,用于模拟钓鱼攻击,捕获用户凭据。
- Custom Import:导入自定义HTML文件作为伪造网站,适合用户需要特定样式或内容时使用。
本实验选择选择2) Site Cloner
,以克隆目标网站(天翼快递登录页面),模拟真实网站以捕获用户输入的登录信息。
图5:克隆网站并启动监听界面
在提示 IP address for the POST back in Harvester/Tabnabbing 后,输入攻击者机器的本地IP地址,用于监听目标用户的提交请求,并确保本地伪造网站能够接收到用户的凭据。
192.168.222.130
在提示 Enter the url to Clone 后,输入目标网站的URL,触发SET工具对目标网站页面的克隆,生成本地托管的伪造页面。
https://www.tykd.com/User/login/
最后,工具显示 Credential Harvester is running on port 80,表示监听已启动。
2.1.3 测试伪造网站并验证数据捕获
1. 访问伪造网站
在目标设备的浏览器中访问伪造网站的URL:
http://192.168.222.130
图6:伪造网站页面(与天翼快递登录页面一致)
可见页面与目标网站(天翼快递)的登录页面完全一致。
2. 模拟用户输入信息
在伪造页面的用户名和密码输入框中填写测试数据。我们随便填即可。“评分标准”里对用户名、密码没有要求。
//用户名
testuser@qq.com
//密码
password
点击登录按钮,模拟用户行为。提交后,页面一直卡着没有特殊提示,但数据已被攻击者机器捕获。
3. 验证数据捕获
回到Kali Linux的SET工具终端,查看终端输出。
可以看到终端实时显示了用户提交的凭据数据:
图7:SET终端成功捕获目标用户的凭据
内容如下:
192.168.222.130 - - [06/Dec/2024 10:54:04] "GET / HTTP/1.1" 200 -
192.168.222.130 - - [06/Dec/2024 10:54:06] "GET /favicon.ico HTTP/1.1" 404 -
[*] WE GOT A HIT! Printing the output:
POSSIBLE USERNAME FIELD FOUND: methods=user_login
POSSIBLE USERNAME FIELD FOUND: email=testuser@qq.com
POSSIBLE PASSWORD FIELD FOUND: pwd=password
2.2 使用Ettercap进行DNS欺骗
Ettercap是一款强大的中间人攻击工具,支持ARP欺骗、DNS欺骗等多种攻击方式。本实验中,我们使用Ettercap实现DNS欺骗,将目标主机访问的指定网站(www.baidu.com)
重定向到伪造网站的IP地址(192.168.222.130)
。
2.2.1 实验步骤
1. 配置Kali网卡
为了进行网络嗅探和欺骗攻击,需要将Kali的网卡设置为混杂模式,允许监听整个网络的流量。
输入以下命令,将网卡eth0设置为混杂模式:
ifconfig eth0 promisc
通过以下命令验证是否成功启用混杂模式:
ifconfig eth0
检查输出中是否包含PROMISC,以确认混杂模式已启用。。
图8:设置Kali网卡为混杂模式
根据图8可知,已成功将Kali网卡 eth0 设置为混杂模式(PROMISC 标志已启用),无 RX errors 和 TX errors,验证了网卡状态为正常运行。这一切说明网络接口已经配置好,可以监听网络流量,满足实施DNS欺骗实验的需求。
2. 修改DNS缓存表
Ettercap使用etter.dns文件来存储DNS欺骗规则。需要将目标域名(如www.baidu.com)的解析结果指向攻击机的IP地址(192.168.222.130)。
打开并编辑etter.dns文件:
vim /etc/ettercap/etter.dns
添加以下规则(需要键入i
进入INSERT模式),将目标域名(如 www.baidu.com)解析到攻击机的IP地址:
www.baidu.com A 192.168.222.130
*.baidu.com A 192.168.222.130
- www.baidu.com:指定欺骗的目标域名。
- *.baidu.com:通配符规则,欺骗所有子域名。
- 192.168.222.130:攻击机的IP地址(Kali主机)。
最后按ESC
,输入:wq
保存并退出
图9:配置ettercap的DNS规则
3. 启动Ettercap并实施DNS欺骗
①启动Ettercap图形界面:
ettercap -G
正确配置如图10所示:
Sniffing at startup:开启嗅探。
Primary Interface:选择当前实验使用的网络接口(eth0)。
图10:Ettercap初始界面设置。
②扫描网络主机:
点击右上角的“√”按钮,开始嗅探。
点击左上角的“🔍”图标,扫描子网中的所有主机。
点击[三竖点] -> Hosts -> Hosts List
,查看当前存活的主机。
图11:Ettercap扫描结果显示当前网段中的存活主机。
③获取网关和目标主机IP:
打开新终端,运行以下命令查看网关IP
route -n
从输出结果中找到网关地址(Gateway列),结果为192.168.222.2
在目标Windows主机中运行以下命令查看其IP
ipconfig
从结果中找到本机的IP地址(IP Address)和网关地址(Default Gateway)。
目标主机IP地址为 192.168.222.139,与网关同处于192.168.222.0/24网段。
④设置攻击目标:
在Ettercap的主机列表中
找到网关IP地址(192.168.222.2),点击Add to Target 1。
找到目标主机IP地址(192.168.222.139),点击Add to Target 2。
⑤ 启用ARP欺骗
为了劫持目标主机的数据流量,需通过ARP欺骗让目标主机误认为攻击者是网关。
导航到 Mitm > ARP Poisoning
,勾选 Sniff remote connections
并点击 OK
,确保攻击机可拦截目标主机的网络通信。
⑥ 启用DNS欺骗
点击右上角三个竖点图标(Ettercap菜单),导航到 Plugins > Manage plugins,找到并启用 dns_spoof 插件,此插件会根据 etter.dns 文件中的配置规则篡改 DNS 解析。
2.2.2 验证DNS欺骗效果
实验成功实现了DNS欺骗,目标主机的流量被引导至攻击者IP地址(192.168.222.130),达到了实验目标,具体如下:
1. 在目标主机上使用Ping命令验证:
打开目标主机(Windows)的命令提示符,输入以下命令:
ping www.baidu.com
验证返回的IP地址是否为攻击者IP地址(192.168.222.130)。由图12可知,结果为是。
图12:目标主机通过ping命令测试DNS欺骗结果
2. 检查Ettercap日志:
在 Ettercap 界面中,查看实时日志,确认是否捕获到目标主机的 DNS 请求,并成功将其解析到攻击机的 IP 地址。结果为是,Ettercap日志中明确显示,目标主机的DNS请求被篡改,成功解析到攻击者IP地址。
图13:Ettercap日志显示DNS欺骗成功
2.3 结合SET与Ettercap技术,进行DNS欺骗引导特定访问冒名网站
本部分实验结合 SET 和 Ettercap 工具,利用 DNS 欺骗将目标主机的流量引导至由 SET 工具克隆的冒名网站,进一步捕获目标主机用户输入的登录凭据。
2.3.1 实验步骤
1. 克隆冒名网站
首先按照2.1 使用SET工具建立冒名网站中的步骤,使用SET工具克隆目标网站(https://www.tykd.com/User/login/)
,并设置攻击机IP地址为 192.168.222.130
。监听已启动,并确认冒名网站能够正常运行。
2. 配置Ettercap的DNS欺骗规则
按照2.2 使用Ettercap进行DNS欺骗的步骤,配置Ettercap进行DNS欺骗。
唯一需要修改的地方是,在打开并修改/etc/ettercap/etter.dns规则文件时,添加到规则改为以下,确保目标主机访问 www.fakesite.net 或相关子域名时,流量将被重定向到攻击机托管的伪造网站。:
www.fakesite.net A 192.168.222.130
*.fakesite.net A 192.168.222.130
2.3.2 验证实验效果
1. 验证DNS欺骗是否成功
在靶机(Windows XP Pro)的命令行中,执行以下命令:
ping www.fakesite.net
图14:靶机Ping命令验证DNS欺骗成功
观察输出的IP地址为攻击机的IP地址192.168.222.130,说明DNS欺骗成功。
2. 访问冒名网站
在靶机浏览器中访问 www.fakesite.net
。页面跳转至SET伪造的冒名网站,显示为克隆的目标网站页面。
图15:靶机访问冒名网站成功
“评分标准”里对用户名、密码没有要求,因此我们可以输入以下测试登录信息,点击登录按钮,提交凭据。
//用户名
testuser@qq.com
//密码
password
3. 验证数据捕获
切换到攻击机的SET终端,观察是否成功捕获用户提交的登录信息。结果用户提交的凭据在攻击机终端成功显示,达成钓鱼攻击效果。
图16:SET工具捕获用户凭据
可见本实验成功,具体来说,实现了以下目标
- 目标主机的 DNS 请求被劫持,访问 www.fakesite.net 时解析至攻击机 IP。
- 目标主机在伪造网站上输入的登录凭据被 SET 工具实时捕获。
- 综合攻击链条验证了社会工程攻击的威胁和危害。
3.问题及解决方案
- 问题1:靶机访问伪造网站时,浏览器显示HTTPS安全警告。在点击“是”尝试忽略警告后,安全警告窗口仍然反复弹出,导致无法正常访问冒名网站。
- 问题1解决方案:手动忽略HTTPS安全警告,耐心多尝试几次点击“是”,并且清除浏览器缓存,即可成功进入伪造网站页面。
- 问题2:在编辑 etter.dns 文件时,选择使用 nano 命令打开,但不熟悉 nano 编辑器的操作,导致无法继续配置DNS欺骗规则。
- 问题2解决方案:改用熟悉的 vim 编辑器打开并编辑文件:
vim /etc/ettercap/etter.dns
4.学习感悟、思考等
通过本次实验,我深刻认识到网络欺骗攻击的隐蔽性和危害性,尤其是在结合DNS欺骗和伪造网站技术后,攻击者可以轻松地引导用户访问伪造页面并窃取敏感信息。这不仅使我对攻击技术有了深入的理解,也让我意识到网络安全防范的迫切性和复杂性。在实际应用中,加强安全意识、部署可靠的安全策略(如启用DNSSEC、限制ARP欺骗)是防范此类攻击的关键。同时,此次实验也让我体会到攻防技术的双刃性,作为安全从业者,更应秉承职业伦理,利用技术提升系统的安全性,而非助长网络威胁的发展。这种理论与实践的结合,为后续学习奠定了扎实基础。