目 录CONTENT

文章目录

HTB靶场-APTLabs-20241019

Administrator
2025-03-11 / 0 评论 / 0 点赞 / 1 阅读 / 0 字

红队笔记:钓鱼攻击技术详解

1. 邮件基础与钓鱼攻击概述

1.1 当前攻击环节的思维框架

  • 在当前攻击阶段需要思考为什么被逼到只能使用钓鱼的方法

  • 基于已获得的进度,为什么能够钓鱼以及哪些技术因素可能会终止或影响钓鱼过程

  • 需要思考各种工具的使用场景,以及在什么情况下某些工具会变得无法使用

  • 要结合靶场环境进行思考,了解哪一步该终止,哪一步能继续前进

  • 对于遇到的限制(如邮件发送服务器的限制),需要评估其对钓鱼过程的影响

1.2 Swaks(Swiss Army Knife for SMTP)工具介绍

  • Swaks是一个开源的邮件发送工具,不是专为钓鱼设计,而是为发送邮件设计的

  • 可以理解为邮件底层实现的雏形,大型邮件服务器底层逻辑与之类似

  • 是一个标准的生产力工具,支持多种协议和安全机制:

    • 支持多种协议

    • 支持安全传输层(TLS)

    • 支持验证机制

  • 工具具有高度灵活性,允许操作邮件的各个字段

  • 能够显示与SMTP服务器交互的详细信息,便于诊断邮件发送过程

  • 严格遵循国际标准RFC邮件规范

1.3 邮件结构与关键字段

邮件由多个字段组成,理解这些字段对钓鱼攻击至关重要:

  • 核心字段

    • To: 收件人地址

    • From: 发件人地址

    • Body: 邮件正文内容

    • Subject: 邮件主题

    • Header: 邮件头信息(可以有多个header字段)

  • 重要头部信息

    • X-Mailer: 邮件客户端标识,指定由哪个客户端/品牌发送的邮件

    • Message-ID: 邮件的唯一标识符,通常包含发送方的域名信息

  • 为什么头部信息重要

    • 安全性高的邮件系统会检查这些头部信息

    • 如果缺少这些信息或信息不符合预期,邮件可能会被直接标记为垃圾邮件

    • 例如,如果Message-ID显示为"@kali",会暴露邮件是从Kali Linux发送的

2. Swaks工具的实际应用

2.1 基本命令格式与参数

Swaks工具的基本命令格式及常用参数:

swaks --to 收件人 --from 发件人 --server SMTP服务器 [选项]

主要参数:

  • --to: 指定收件人地址

  • --from: 指定发件人地址

  • --server: 指定SMTP服务器(不指定时会自动查找)

  • --port: 指定端口号(默认25,TLS通常为587,SSL为465)

  • --auth: 认证方式

  • --auth-user: 认证用户名

  • --auth-password: 认证密码

  • --header: 自定义头部信息

  • --body: 邮件正文内容

  • --data: 指定邮件的data部分

  • --attach: 添加附件

  • --tls: 启用TLS连接

2.2 具体应用示例

实际邮件发送示例:

swaks --from service@xiaomi.com --to recipient@example.com --header "Subject: Please Update Your Password" --body "Writing notes" --header "X-Mailer: QQMail" --header "Message-ID: 20241019.939@example.com"

此命令创建一封伪装成来自小米服务的邮件,主题是密码更新通知,并设置了自定义的X-Mailer和Message-ID头。

┌──(root㉿kali)-[~/Desktop/APTLabs]
└─# swaks --ehlo RedteamNotes --from "service@cloud.tencent.com" --to qbfo225@163.com --header "Subject: 请即刻修改你的密码" --header "X-Mailer: RedteamNotes" --header "Message-Id: 20240123" --header "Content-Type: text/html" --body '<!DOCTYPE html><html><head><title>欢迎来到红队行动Live</title><meta charset="UTF-8"></head><body><h3>欢迎来到红队行动Live</h3><p>学渗透的终极是红队,要学红队就要对自己狠一点。</p><footer><p>2024年10月19日晚</p></footer></body></html>'
=== Trying 163mx02.mxmail.netease.com:25...
=== Connected to 163mx02.mxmail.netease.com.
<-  220 163.com Anti-spam GT for Coremail System (163com[20141201])
 -> EHLO RedteamNotes
<-  250-mail
<-  250-PIPELINING
<-  250-AUTH LOGIN PLAIN
<-  250-AUTH=LOGIN PLAIN
<-  250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UFs1DEUUCa0xDrUUUUj
<-  250-STARTTLS
<-  250-SIZE 73400320
<-  250 8BITMIME
 -> MAIL FROM:<service@cloud.tencent.com>
<-  250 Mail OK
 -> RCPT TO:<qbfo225@163.com>
<-  250 Mail OK
 -> DATA
<-  354 End data with <CR><LF>.<CR><LF>
 -> Date: Wed, 12 Mar 2025 03:29:50 -0400
 -> To: qbfo225@163.com
 -> From: service@cloud.tencent.com
 -> Subject: 请即刻修改你的密码
 -> Message-Id: 20240123
 -> X-Mailer: RedteamNotes
 -> Content-Type: text/html
 -> 
 -> <!DOCTYPE html><html><head><title>欢迎来到红队行动Live</title><meta charset="UTF-8"></head><body><h3>欢迎来到红队行动Live</h3><p>学渗透的终极是红队,要学红队就要对自己狠一点。</p><footer><p>2024年10月19日晚</p></footer></body></html>
 -> 
 -> 
 -> .
<-  250 Mail OK queued as gzga-mx-mtada-g3-4,_____wDX7zvsN9FnXe5NAg--.38586S2 1741764589
 -> QUIT
<-  221 Bye
=== Connection closed with remote host.

2.3 HTML内容与高级格式化

  • 可以使用--data参数指定完整的邮件内容,包括HTML格式

  • 内容类型使用Content-Type: text/html; charset=utf-8指定

  • 示例:

swaks --to recipient@example.com --from sender@example.com --data "Content-Type: text/html; charset=utf-8

<html>
<body>
<h1>Important Notice</h1>
<p>Please click <a href='http://malicious-link.com'>here</a> to update your information.</p>
</body>
</html>"

2.4 测试与调试功能

Swaks提供了多种测试和调试功能:

  • 测试SMTP服务器延迟

  • 测试SMTP服务器垃圾过滤

  • 显示连接的服务器信息

  • 显示SMTP服务器的响应信息

2.5 SPF记录与实际测试

  • 当从一个域发送邮件时,目标服务器会检查SPF记录以验证发送者身份

  • 测试表明,某些服务器(如测试中的163.com)可能没有严格实施SPF检查

  • QQ邮件服务器会严格检查SPF,如果失败会拒绝接收邮件

  • 进行钓鱼攻击前应了解目标域的SPF设置及邮件安全机制

3. 钓鱼攻击的关键考量

3.1 真实性和可信度

成功的钓鱼攻击需要确保:

  • 邮件的视觉效果(如企业Logo、HTML格式)要逼真

  • 邮件头信息要完整且可信

  • 所有技术细节都要尽可能真实,以避免被自动过滤系统拦截

  • 要模拟出一个正常人发送的正常邮件,不仅是视觉上的欺骗

3.2 绕过邮件安全机制

  • 理解并绕过SPF(Sender Policy Framework)验证

  • 设置正确的X-Mailer和Message-ID头信息

  • 确保邮件不会因缺少关键头信息而被标记为垃圾邮件

  • 发送前测试邮件格式,确保能够进入收件箱而非垃圾箱

3.3 安全和伦理考量

  • 钓鱼攻击应仅用于安全测试和授权的渗透测试

  • 不应针对个人进行钓鱼攻击,这属于欺诈行为

  • 在进行安全测试时要获得适当授权

  • 需谨慎管理测试用的邮箱账户,避免个人信息泄露

  • 实战中应考虑法律风险和伦理问题

4. GoPhish钓鱼工具详解

4.1 GoPhish概述

  • GoPhish是一个开源的钓鱼工具包,适用于企业和渗透测试

  • 支持快速设置和执行钓鱼活动及安全意识培训

  • 工具已存在约十年,仍在不断更新

  • 主要功能是钓鱼活动的项目化管理和整合

  • 相比新的钓鱼技术有所局限,特别是在诱饵制作方面

4.2 GoPhish关键组件

4.2.1 仪表盘(Dashboard)

  • 显示钓鱼活动的整体情况

  • 跟踪邮件发送数量、打开率、点击率和数据提交率

  • 提供图形化展示和统计功能

4.2.2 活动(Campaigns)

  • 代表一个完整的钓鱼项目

  • 包含活动名称、开始日期和时间

  • 整合模板、登录页面和目标用户组

  • 设置发送配置文件(Sending Profile)

  • 可以启动、暂停和监控活动

4.2.3 用户和组(Users & Groups)

  • 管理钓鱼目标用户信息

  • 可以按组织结构或职位分组

  • 支持CSV格式批量导入用户

  • 记录每个用户的姓名、邮箱和职位等信息

4.2.4 邮件模板(Email Templates)

  • 创建钓鱼邮件的外观和内容

  • 支持纯文本或HTML格式

  • 可以导入现有的EML格式邮件作为模板

  • 有追踪功能,包括1x1像素的透明图片用于检测邮件是否被打开

  • 支持添加附件和URL链接

  • 可以自定义发件人信息

  • 支持选择是否将所有链接替换为指向登录页面的链接

4.2.5 登录页面(Landing Pages)

  • 创建用户点击钓鱼链接后将看到的网页

  • 可以从现有网站导入或手动创建

  • 支持捕获用户输入的数据(如凭据)

  • 可以设置表单提交后的重定向页面

  • 提供捕获用户凭据的功能,但有安全风险提示

4.2.6 发送配置(Sending Profiles)

  • 配置用于发送钓鱼邮件的SMTP服务器

  • 设置身份验证信息(用户名和密码)

  • 支持自定义邮件头(如X-Mailer和Message-ID)

  • 设置SMTP超时和TLS选项

  • 可以使用不同配置进行测试

4.3 GoPhish使用流程

  1. 设置发送配置文件(SMTP服务器和认证)

  2. 创建或导入邮件模板

  3. 创建或导入登录页面

  4. 添加用户/用户组

  5. 创建钓鱼活动,整合以上组件

  6. 启动活动并监控结果

4.4 GoPhish关键注意事项

  • 发送邮件前应先测试发送给自己,检查EML文件中的所有信息

  • 特别关注默认的X-Mailer头,它可能暴露使用了GoPhish

  • 谨慎处理真实凭据和个人信息

  • 了解自定义头部对邮件投递成功率的影响

  • 注意设置合适的模板和登录页面,以增加真实性

  • 钓鱼链接的处理策略对成功率有重要影响

5. 高级钓鱼技术与注意事项

5.1 临时邮箱的使用与风险

  • 临时邮箱可用于钓鱼活动,但不等同于匿名

  • 即使是宣称"临时"的服务也可能记录IP地址和其他识别信息

  • 如果用于攻击活动,服务提供商可能会配合执法机构

  • 不应完全信任这些服务的匿名性承诺

5.2 基础设施的重要性

  • 成功的红队行动依赖于良好的基础设施

  • 包括安全的通信通道、匿名的操作环境等

  • 需要考虑VPS、代理服务器等基础设施的安全配置

  • 基础设施的搭建往往比技术本身更为关键

5.3 钓鱼邮件测试与检查

  • 在正式发送前必须对邮件进行全面测试

  • 检查EML文件中的所有元数据和头信息

  • 验证是否有暴露自己身份或工具使用的信息

  • 确认邮件能够成功通过垃圾邮件过滤

5.4 红队行动的伦理与法律

  • 任何钓鱼活动都应获得适当授权

  • 不应针对个人实施钓鱼攻击

  • 应遵循行业最佳实践和伦理准则

  • 了解相关法律法规,避免违法行为

5.5 现代钓鱼技术的发展趋势

  • 传统钓鱼技术(如GoPhish)已相对基础化

  • 现代钓鱼技术更注重绕过多因素认证

  • Model和Evilginx等工具代表了更先进的钓鱼方法

  • 这些将在下一讲中详细介绍

6. 实用命令和参考资料

6.1 Swaks基本命令示例

# 基本邮件发送
swaks --to recipient@example.com --from sender@example.com --server smtp.example.com

# 带认证的邮件发送
swaks --to recipient@example.com --from sender@example.com --server smtp.example.com --port 587 --auth LOGIN --auth-user username --auth-password password

# 发送HTML内容邮件
swaks --to recipient@example.com --from sender@example.com --server smtp.example.com --body "<html><body><h1>Test</h1></body></html>" --header "Content-Type: text/html"

# 带附件的邮件
swaks --to recipient@example.com --from sender@example.com --attach file.pdf

# 自定义头部信息
swaks --to recipient@example.com --from sender@example.com --header "X-Mailer: Outlook" --header "Message-ID: 123456@example.com"

# 使用TLS加密
swaks --to recipient@example.com --from sender@example.com --tls

6.2 SPF记录检查命令

# 使用dig命令检查SPF记录
dig +short TXT example.com

# 检查特定域名的SPF记录
dig +short TXT example.com | grep "v=spf1"

6.3 有用的资源和文档

  • Swaks官方文档:包含所有参数和用法详解

  • GoPhish官方文档:https://docs.getgophish.com/

  • 邮件安全标准(SPF, DKIM, DMARC)官方规范

  • RFC邮件标准文档:了解邮件协议的标准实现

7. 下一步学习内容预告

7.1 Model和Evilginx工具

  • 将在下一讲中介绍这两个更现代化的钓鱼工具

  • 这些工具能够实现更高级的钓鱼攻击,包括绕过双因素认证

  • 基于反向代理原理实现的钓鱼方法

7.2 获取内网立足点

  • 成功的钓鱼攻击之后如何获取和维持立足点

  • 内网枚举和横向移动技术

  • 信息收集和权限提升策略

7.3 后续攻击阶段

  • PowerShell专题

  • COS攻击专题

  • 更复杂的网络渗透技术

总结要点

  1. 钓鱼攻击的本质:钓鱼不仅仅是视觉欺骗,还涉及复杂的技术细节和策略考量,需要综合考虑邮件格式、发送机制和目标环境。

  2. 工具的选择和使用:从基础的Swaks到项目化的GoPhish,选择合适的工具并理解其工作原理至关重要。

  3. 技术细节的重要性:邮件头信息、SPF记录、SMTP服务器配置等技术细节直接影响钓鱼攻击的成功率。

  4. 策略与伦理:钓鱼攻击应仅用于授权的安全测试,需遵循行业伦理准则和法律法规。

  5. 持续学习:红队技术不断发展,从传统的钓鱼方法到现代的高级技术,需要持续学习和实践。

  6. 基础设施建设:成功的红队行动依赖于良好的基础设施,包括安全的通信通道和匿名的操作环境。

  7. 测试与验证:任何钓鱼活动在实施前都需要充分测试,确保不会意外暴露自己。

-.-

0

评论区