dhboss-p/phishing-simulation
GitHub: dhboss-p/phishing-simulation
该项目是一个基于 GoPhish、Mailtrap 和 Ngrok 的安全教学实验,在沙箱环境中完整演示钓鱼活动从构建到追踪的全过程。
Stars: 0 | Forks: 0
# 使用 GoPhish、Mailtrap 和 Ngrok 进行钓鱼模拟
**作者:** Praise Testimony (CyberForge)
**日期:** 2026 年 7 月 23 日
## 免责声明
该项目完全在受控的实验环境中搭建和测试,仅供教育目的。所有邮件均通过 Mailtrap sandbox 进行路由,因此绝对不会发送给任何真实的收件箱或真实的人。
## 项目简介
钓鱼攻击是许多真实安全漏洞的起点,因此我希望了解它的实际构建和运行过程,而不仅仅是空谈“不要点击可疑链接”。
我使用了在 Kali 上运行的 **GoPhish**(一个开源的钓鱼模拟框架),利用 **Ngrok** 对我本地的 GoPhish 落地页进行隧道转发,使其拥有一个真实可访问的 URL,而不仅仅是 localhost;并使用 **Mailtrap** 作为 sandbox SMTP 服务器,这意味着 GoPhish 发送的任何邮件都会被安全地拦截在测试收件箱中,而不会发送到任何真实的地址。
## 环境设置
- 在 Kali Linux 上安装并运行 **GoPhish**
- 用于 SMTP 服务器的 **Mailtrap** sandbox 账号(这是实际“发送”邮件的工具,但仅限 sandbox 内部)
- 使用 Mailtrap 的 SMTP 凭据作为 Sending Profile,将 GoPhish 连接到 Mailtrap
- 用于隧道设置的 **Ngrok**,具体流程见下文
## 步骤 1:设置 Sending Profile
我在 GoPhish 内部创建了一个 Sending Profile,并填入了 Mailtrap 的 SMTP 主机、端口和登录详细信息。然后发送了一封快速测试邮件,以确保它被投递到了 Mailtrap 收件箱中,而不是发送到了真实世界中。
**截图:**

**截图:**

测试邮件详情
**截图:**

## 步骤 2:构建钓鱼邮件模板
我为这次模拟使用了一个**奖品赠送**的借口:一封伪造的 **Campus Tech Giveaway** 邮件,通知学生通过一个虚构的“Campus Digital Connectivity Survey”赢得了 iPhone 15 Pro Max。我选择了奖品/奖励的角度,而不是吓人的“你的账号已被锁定”角度,因为我想测试一下积极、令人兴奋的借口与常见的基于恐惧的借口相比效果如何。
**截图:**

## 步骤 3:构建落地页
我使用了一个相匹配的“Campus Rewards Portal”落地页,这样从邮件到点击的整个流程故事就保持一致了。如果有人看到“你赢得了一部 iPhone”并点击进入,他们会看到一个继续讲述相同故事的页面,而不是突然看起来毫无关联的内容。
## **截图:**

## 步骤 4:创建目标群体
我没有使用真实的电子邮件地址,而是设置了所有通过 Mailtrap 路由的虚假目标名称,因此无论发生什么,每封邮件都留在了 sandbox 内部。
**截图:**

## 步骤 5:设置 Ngrok
由于 GoPhish 和我的落地页仅在 localhost 上运行,我需要一种方法使该落地页可以通过实际可点击的链接访问,否则“受害者”(我的测试目标)必须已经在我的机器上才能看到它,这是不现实的。
我创建了一个 ngrok 账号,在设置/安装部分下有一份关于如何在 Kali 上安装 ngrok 的指南。我从那里复制了命令,并在我的 Kali Linux 终端中逐步运行了它们。
**截图:**


**启动隧道:**
`ngrok http 80`
这打开了一个隧道,并为我提供了一个直接转发到本地端口 80 的公开 URL。我获取了该 URL 并将其用于 GoPhish 的活动(Campaign)中。这样,当钓鱼邮件发出并且有人点击链接时,它实际上会解析到一个真实、可访问的地址
**截图:**

## 步骤 6:启动活动(Campaign)
ngrok 运行起来后,我进入 GoPhish 并创建了活动(Campaign)。在 URL 字段中,我粘贴了从终端复制的 ngrok URL,然后选择了我之前已经创建好的 Sending Profile、目标群体、落地页和邮件模板。
**截图:**

## 步骤 7:检查结果
**在 Mailtrap 中:** 我检查了邮件的确切渲染效果,包括主题行、发件人名称、格式,以及它看起来是具有说服力还是有明显的危险信号(语法错误、发件人域不匹配等)。
**截图:**

我还检查了落地页,以查看当有人实际点击进入时它的渲染效果。

**在 GoPhish 中:** 仪表板会追踪邮件是否被打开、链接是否被点击,以及是否在伪造的落地页上提交了任何数据。
**截图:**

## 我学到了什么
构建这个活动让我明白了为什么尽管每个人都被告知“不要点击可疑链接”,钓鱼攻击依然如此有效。一个带有紧迫感(某些东西即将过期,某些东西需要“立即关注”)且制作精良的借口,会绕过许多人平时的警惕心理,特别是当发件人名称和落地页看起来与真实的东西非常接近时。
它也让我看到了事物的另一面——那些真正有助于识破钓鱼攻击的因素:
- 检查**真实的发送域**,而不仅仅是显示名称
- 在点击之前将鼠标悬停在链接上,以查看真实的目标 URL
- 对紧迫感保持怀疑,即使它是积极表达的(**在 48 小时内领取您的奖品,否则将失去资格**)——这与可怕的警告是相同的操纵策略,只是伪装成了好消息
- 像 **SPF、DKIM 和 DMARC** 这样的邮件安全控制机制,专门用于增加令人信服地伪造发件人域的难度
## 邮件模板和落地页代码
以下是我用于邮件模板和落地页的 HTML 文件,以防有人想复制它们进行自己的练习。
**邮件模板**

**落地页 HTML**

## 使用的工具
- Kali Linux 上的 GoPhish(开源钓鱼框架)
- ngrok(用于将我的本地落地页隧道转发到公开 URL)
- Mailtrap Sandbox(安全的 SMTP 测试环境 — 绝不会发送真实邮件)
标签:GoPhish, 内网穿透, 多模态安全, 安全教育, 网络安全, 隐私保护