16bama0911/website-cloning-hosts-spoofing-project
GitHub: 16bama0911/website-cloning-hosts-spoofing-project
一个隔离实验室环境下的网络安全教学项目,演示网站克隆与本地 DNS 欺骗的完整攻击流程及对应的防御检测策略。
Stars: 0 | Forks: 0
# 网站克隆与 Hosts 文件欺骗项目
### 概述
本项目演示了如何在受控的实验室环境中,结合网站克隆和本地 DNS 篡改来模拟网络钓鱼和社会工程学攻击。该实验的重点在于理解攻击者的技术,并记录防御性的检测和缓解机会。
所有活动均在隔离的虚拟机中进行,仅供教育和防御性分析之用。本实验中使用的所有网站均由作者创建和托管,仅出于教育目的。
### 实验目标
- 克隆测试网站以进行离线托管
- 修改克隆的内容以模拟恶意文档传递
- 使用 Windows hosts 文件重定向域名流量
- 从客户端系统测试欺骗域名的访问
- 分析防御性检测和缓解策略
### 环境
| 组件 | 详情 |
|:-----------|:------------------:|
| Hypervisor | VMware Workstation |
| ClientVM | Windows (修改 hosts 文件及用户访问) |
| ServerVM | Ubuntu Linux (Web 托管) |
| 工具 | `HTTrack`, `Python HTTP server` |
| 网络 | Host-only/NAT (隔离实验室) |
### 攻击模拟工作流
#### 1. 测试网站创建与克隆
- 专门为本次实验创建了一个临时的、可公开访问的测试网站
- 使用 `HTTrack` 和基于终端的文本编辑器克隆并编辑了该网站——模拟攻击者如何镜像合法的 Web 内容
- 保留了目录结构和内部链接以增加真实感
- 未使用任何真实的组织或生产环境网站
### 2. 本地 Web 服务器托管
- 使用轻量级 `Python HTTP server` 在 Ubuntu 服务器上托管了克隆的网站:
python3 -m http.server 8000
- 使用以下命令验证服务是否正在所有接口上主动监听:
ss -tuln
### 3. Hosts 文件修改(本地 DNS 欺骗)
- 编辑了 Windows hosts 文件以覆盖 DNS 解析,并将实验室域名重定向到 Ubuntu 服务器:
` training-portal.local`
- 通过清除本地 DNS 缓存来应用更改
- 现在可以通过 `http://training-portal.local:8000` 访问该网站(服务器运行在端口 8000 上)。
### 4. DNS 解析验证
- 在浏览器访问之前确认了欺骗域名的解析
- 使用基于 ICMP 的工具——`ping` 验证了该域名被解析为内部服务器 IP
### 5. 欺骗域名访问
- 从 Windows 客户端使用欺骗域名访问了克隆的网站
- 确认在不使用外部 DNS 基础设施的情况下成功进行了重定向
### 6. 文档传递模拟
- 通过克隆的网站传递了一个良性的占位符 PDF
- 验证了通过欺骗域名成功访问了文档
- 未包含任何可执行文件或恶意内容
### 道德与法律声明
本项目严格在隔离的实验室环境中进行。未针对任何真实用户、凭据或生产系统。所有内容和基础设施的创建仅出于教育和防御性研究的目的。
### 展示的关键技能
- 虚拟化和实验室隔离
- 网站克隆和内容分析
- 通过 hosts 文件进行本地 DNS 篡改
- HTTP 服务托管和验证
- 防御性检测思维
- 专业的网络安全文档编写
### 防御与检测分析
防御性检测机会:
- **Hosts 文件篡改:** 使用文件完整性监控或 Endpoint Detection and Response (EDR) 监控对 `C:\Windows\System32\drivers\etc\hosts` 的未经授权的更改。
- **意外的本地 Web 服务:** 检测在非标准端口(例如端口 8000)上托管 HTTP 服务的用户系统。
- **DNS 异常:** 识别解析为私有 IP 地址(例如 `192.168.x.x`)而不是预期的公共范围的域名。
- **用户意识:** 培训用户报告从看似可信的域名意外下载文档的行为。
这些控制措施有助于降低网站克隆和 DNS 欺骗技术的有效性。
### 仓库说明
- 截图存储在 /screenshots 目录中
### 2. 本地 Web 服务器托管
- 使用轻量级 `Python HTTP server` 在 Ubuntu 服务器上托管了克隆的网站:
python3 -m http.server 8000
- 使用以下命令验证服务是否正在所有接口上主动监听:
ss -tuln
### 3. Hosts 文件修改(本地 DNS 欺骗)
- 编辑了 Windows hosts 文件以覆盖 DNS 解析,并将实验室域名重定向到 Ubuntu 服务器:
`
### 4. DNS 解析验证
- 在浏览器访问之前确认了欺骗域名的解析
- 使用基于 ICMP 的工具——`ping` 验证了该域名被解析为内部服务器 IP
### 5. 欺骗域名访问
- 从 Windows 客户端使用欺骗域名访问了克隆的网站
- 确认在不使用外部 DNS 基础设施的情况下成功进行了重定向
### 6. 文档传递模拟
- 通过克隆的网站传递了一个良性的占位符 PDF
- 验证了通过欺骗域名成功访问了文档
- 未包含任何可执行文件或恶意内容
### 道德与法律声明
本项目严格在隔离的实验室环境中进行。未针对任何真实用户、凭据或生产系统。所有内容和基础设施的创建仅出于教育和防御性研究的目的。
### 展示的关键技能
- 虚拟化和实验室隔离
- 网站克隆和内容分析
- 通过 hosts 文件进行本地 DNS 篡改
- HTTP 服务托管和验证
- 防御性检测思维
- 专业的网络安全文档编写
### 防御与检测分析
防御性检测机会:
- **Hosts 文件篡改:** 使用文件完整性监控或 Endpoint Detection and Response (EDR) 监控对 `C:\Windows\System32\drivers\etc\hosts` 的未经授权的更改。
- **意外的本地 Web 服务:** 检测在非标准端口(例如端口 8000)上托管 HTTP 服务的用户系统。
- **DNS 异常:** 识别解析为私有 IP 地址(例如 `192.168.x.x`)而不是预期的公共范围的域名。
- **用户意识:** 培训用户报告从看似可信的域名意外下载文档的行为。
这些控制措施有助于降低网站克隆和 DNS 欺骗技术的有效性。
### 仓库说明
- 截图存储在 /screenshots 目录中标签:DNS劫持, VMware, 网络克隆, 网络安全, 逆向工具, 隐私保护, 靶场环境