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 收件箱中,而不是发送到了真实世界中。 **截图:** ![image](https://static.pigsec.cn/wp-content/uploads/repos/cas/21/216f379a978a7edefa38fd5fd01ed48cd503efeb747fc40a65c838fa0a699222.png) **截图:** ![image](https://static.pigsec.cn/wp-content/uploads/repos/cas/60/607546acd6955b517497ebd900307f6caa3eec44e2bdccad13d011edac43d361.png) 测试邮件详情 **截图:** ![image](https://static.pigsec.cn/wp-content/uploads/repos/cas/20/208f7f11ba21663e98473f05fd181ae2d6d4553026f9ae9952bb4f114b0c10e2.png) ## 步骤 2:构建钓鱼邮件模板 我为这次模拟使用了一个**奖品赠送**的借口:一封伪造的 **Campus Tech Giveaway** 邮件,通知学生通过一个虚构的“Campus Digital Connectivity Survey”赢得了 iPhone 15 Pro Max。我选择了奖品/奖励的角度,而不是吓人的“你的账号已被锁定”角度,因为我想测试一下积极、令人兴奋的借口与常见的基于恐惧的借口相比效果如何。 **截图:** ![image](https://static.pigsec.cn/wp-content/uploads/repos/cas/b2/b2227520c9b255446459a644edbbf5f828e1f864d156d38d5375f99a95178db7.png) ## 步骤 3:构建落地页 我使用了一个相匹配的“Campus Rewards Portal”落地页,这样从邮件到点击的整个流程故事就保持一致了。如果有人看到“你赢得了一部 iPhone”并点击进入,他们会看到一个继续讲述相同故事的页面,而不是突然看起来毫无关联的内容。 ## **截图:** ![image](https://static.pigsec.cn/wp-content/uploads/repos/cas/b1/b1dec5f83cebb8baca6da5790457570926b44490e32ff6b3a729a6fcbd16b9ab.png) ## 步骤 4:创建目标群体 我没有使用真实的电子邮件地址,而是设置了所有通过 Mailtrap 路由的虚假目标名称,因此无论发生什么,每封邮件都留在了 sandbox 内部。 **截图:** ![image](https://static.pigsec.cn/wp-content/uploads/repos/cas/4e/4e5c55a328237a73c760e7ff7d02cf103a148332fd3593eb9a7e24f55c88fb7c.png) ## 步骤 5:设置 Ngrok 由于 GoPhish 和我的落地页仅在 localhost 上运行,我需要一种方法使该落地页可以通过实际可点击的链接访问,否则“受害者”(我的测试目标)必须已经在我的机器上才能看到它,这是不现实的。 我创建了一个 ngrok 账号,在设置/安装部分下有一份关于如何在 Kali 上安装 ngrok 的指南。我从那里复制了命令,并在我的 Kali Linux 终端中逐步运行了它们。 **截图:** ![image](https://static.pigsec.cn/wp-content/uploads/repos/cas/b3/b3e2c19edc2ecde0d151ced1fdec16bbe57e4756484d21175fc1368c243b7d7d.png) ![image](https://static.pigsec.cn/wp-content/uploads/repos/cas/32/32b977a5999da5b0452697a79c30163d403917490f9aa5adf00250b439b685d4.png) **启动隧道:** `ngrok http 80` 这打开了一个隧道,并为我提供了一个直接转发到本地端口 80 的公开 URL。我获取了该 URL 并将其用于 GoPhish 的活动(Campaign)中。这样,当钓鱼邮件发出并且有人点击链接时,它实际上会解析到一个真实、可访问的地址 **截图:** ![image](https://static.pigsec.cn/wp-content/uploads/repos/cas/ca/ca728ed02bc769b94d64a71aad8afda552874c2de46bd1c4534cfb68810d5df6.png) ## 步骤 6:启动活动(Campaign) ngrok 运行起来后,我进入 GoPhish 并创建了活动(Campaign)。在 URL 字段中,我粘贴了从终端复制的 ngrok URL,然后选择了我之前已经创建好的 Sending Profile、目标群体、落地页和邮件模板。 **截图:** ![image](https://static.pigsec.cn/wp-content/uploads/repos/cas/b4/b4f6e38ed2d21a8547435f035334ffb1cc7d203ea2493492317d2138d9cea2dc.png) ## 步骤 7:检查结果 **在 Mailtrap 中:** 我检查了邮件的确切渲染效果,包括主题行、发件人名称、格式,以及它看起来是具有说服力还是有明显的危险信号(语法错误、发件人域不匹配等)。 **截图:** ![image](https://static.pigsec.cn/wp-content/uploads/repos/cas/b8/b82f333ad5ea6bad5a9031cebef9419694ab6acfec83916a4b567c77f5891478.png) 我还检查了落地页,以查看当有人实际点击进入时它的渲染效果。 ![image](https://static.pigsec.cn/wp-content/uploads/repos/cas/01/018ac8e360397c619f2437b6a9a2595a0f146cb11a446590e4d5476b4d7f41cd.png) **在 GoPhish 中:** 仪表板会追踪邮件是否被打开、链接是否被点击,以及是否在伪造的落地页上提交了任何数据。 **截图:** ![image](https://static.pigsec.cn/wp-content/uploads/repos/cas/63/63ff518ad26e968793a9e87fe3a3c26a715886621c61f05941304c4317aa9106.png) ## 我学到了什么 构建这个活动让我明白了为什么尽管每个人都被告知“不要点击可疑链接”,钓鱼攻击依然如此有效。一个带有紧迫感(某些东西即将过期,某些东西需要“立即关注”)且制作精良的借口,会绕过许多人平时的警惕心理,特别是当发件人名称和落地页看起来与真实的东西非常接近时。 它也让我看到了事物的另一面——那些真正有助于识破钓鱼攻击的因素: - 检查**真实的发送域**,而不仅仅是显示名称 - 在点击之前将鼠标悬停在链接上,以查看真实的目标 URL - 对紧迫感保持怀疑,即使它是积极表达的(**在 48 小时内领取您的奖品,否则将失去资格**)——这与可怕的警告是相同的操纵策略,只是伪装成了好消息 - 像 **SPF、DKIM 和 DMARC** 这样的邮件安全控制机制,专门用于增加令人信服地伪造发件人域的难度 ## 邮件模板和落地页代码 以下是我用于邮件模板和落地页的 HTML 文件,以防有人想复制它们进行自己的练习。 **邮件模板** ![image](https://static.pigsec.cn/wp-content/uploads/repos/cas/54/54628714afd837925d543b008fa6c4a01cb6d9497bfe088a2b2eb1aae8fac681.png) **落地页 HTML** ![image](https://static.pigsec.cn/wp-content/uploads/repos/cas/d2/d26aef9c20810644de04e107f0bb625c0916113415fad886fd7b838011f162a9.png) ## 使用的工具 - Kali Linux 上的 GoPhish(开源钓鱼框架) - ngrok(用于将我的本地落地页隧道转发到公开 URL) - Mailtrap Sandbox(安全的 SMTP 测试环境 — 绝不会发送真实邮件)
标签:GoPhish, 内网穿透, 多模态安全, 安全教育, 网络安全, 隐私保护