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工具启动界面

  1. Social-Engineering Attacks:用于实施社交工程攻击,例如钓鱼网站和恶意USB攻击。
  2. Penetration Testing (Fast-Track):快速执行一系列渗透测试任务的模块集合。
  3. Third Party Modules:支持加载第三方工具或定制功能模块。
  4. Update the Social-Engineer Toolkit:更新SET工具至最新版本以获取最新功能和修复。
  5. Update SET configuration:修改SET配置文件以调整工具参数或行为。
  6. Help, Credits, and About:查看工具的帮助信息、开发者名单及简介。
  7. Exit the Social-Engineer Toolkit:退出SET工具。

我们的实验中选择1) Social-Engineering Attacks用于社交工程攻击。


图2:Social-Engineering Attacks 菜单界面

  1. Spear-Phishing Attack Vectors:用于生成针对特定目标的钓鱼邮件攻击。
  2. Website Attack Vectors:用于创建伪造网站以捕获用户凭据或执行恶意操作。
  3. Infectious Media Generator:生成携带恶意代码的可移动设备(如U盘)。
  4. Create a Payload and Listener:创建恶意负载并监听目标系统的连接。
  5. Mass Mailer Attack:发送大量伪装的电子邮件以进行社会工程攻击。
  6. Arduino-Based Attack Vector:利用Arduino设备模拟键盘输入执行攻击。
  7. Wireless Access Point Attack Vector:设置恶意Wi-Fi热点进行数据窃取或流量劫持。
  8. QRCode Generator Attack Vector:生成带有恶意链接的二维码以诱导目标扫描。
  9. Powershell Attack Vectors:通过PowerShell脚本执行各种类型的攻击。
  10. Third Party Modules:加载第三方开发的模块以扩展SET功能。
  11. Return back to the main menu:返回SET主菜单。

本实验选择2) Website Attack Vectors,用于创建伪造网站,模拟钓鱼攻击并捕获用户输入的凭据。


图3:Website Attack Vectors 菜单界面

  1. Java Applet Attack Method:通过伪装的Java证书运行恶意负载,用于攻击启用了Java的系统。
  2. Metasploit Browser Exploit Method:使用Metasploit框架中的浏览器漏洞注入恶意代码。
  3. Credential Harvester Attack Method:克隆目标网站,用于捕获用户输入的用户名和密码。
  4. Tabnabbing Attack Method:通过伪装切换标签页,诱导用户输入敏感信息。
  5. Web Jacking Attack Method:使用iframe替换链接,伪造URL重定向到恶意页面。
  6. Multi-Attack Web Method:结合多种Web攻击方法同时进行攻击(如Java、Metasploit和Credential Harvester)。
  7. 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:选择和配置攻击方法界面

  1. Web Templates:使用预定义的网站模板进行攻击,不需要克隆实际网站。
  2. Site Cloner:克隆目标真实网站的页面,用于模拟钓鱼攻击,捕获用户凭据。
  3. 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欺骗)是防范此类攻击的关键。同时,此次实验也让我体会到攻防技术的双刃性,作为安全从业者,更应秉承职业伦理,利用技术提升系统的安全性,而非助长网络威胁的发展。这种理论与实践的结合,为后续学习奠定了扎实基础。

参考资料

posted @ 2024-12-06 22:07  20222409王勤博  阅读(21)  评论(0编辑  收藏  举报