首页 > 其他分享 >钓鱼篇-邮件钓鱼

钓鱼篇-邮件钓鱼

时间:2024-03-07 22:33:17浏览次数:15  
标签:钓鱼 -- 发送 邮件 com SPF

钓鱼篇-邮件钓鱼

前置知识

SPF的定义

发件人策略框架(发送方策略框架),是一种电子邮件认证机制,主要作用是防止伪造邮件地址。

假如说:你收到了来自于腾讯官方的邮件,那么你很大程度上相信这是真的。但是,如果你收到了未知人发送过来的邮件,那么你会大概率认为这个是假的。

那么如何伪造发件人使得受害者认为你是真的,就取决于你可不可以绕过SPF。

注意:SPF很大程度上不太可能绕过。

如何判断SPF?

主要运用dns查询工具,查询邮件域名的相关信息

dig -t txt qq.com         //linux

nslookup -type=txt qq.com //windows

SPF的规则

  • "+" Pass(通过)
  • "-" Fail(拒绝)
  • "~" Soft Fail(软拒绝)
  • "?" Neutral(中立)
"v=spf1 -all" (拒绝所有,表示这个域名不会出发邮件)

"v=spf1 +all" (接受所有)

"v=spf1 ip4:192.168.0.1/16 -all"(只允许 192.168.0.1/16 范围内的 IP发送邮件)

"v=spf1 mx -all"(允许当前域名的 mx 记录对应的 IP 地址发送邮件)

"v=spf1 mx mx:test.example.com -all"(允许当前域名和test.example.com 的 mx 记录对应的 IP 地址发送邮件)

"v=spf1 a mx ip4:173.194.72.103 -all"(允许当前域名的 a 记录和 mx 记录和一个给定的 IP 地址发送邮件)

"v=spf1 include:example.com -all"(采用和 example.com 一样的SPF记录)

根据上述内容,我们可以进行简单的总结:

  • 先查看有没有SPF验证机制?如果没有,那么可以直接伪造发信人。
  • 如果存在SPF验证机制,要判断是否可以进行绕过。

注:为了方便测试,这个给一个生成临时邮箱的网站:https://www.linshi-email.com/

以上内容来源于:

邮件钓鱼的相关工具

Swaks

这款工具kali linux上自带,语法如下:

swaks --header-X-Mailer "" --header-Message-Id "" --header-
"Content-Type"="text/html" --from "伪造发件人的邮箱" --ehlo 
shabimeiguo -header "邮件标题" --body 邮件正文 --to 受害者的邮箱

Gophfish工具平台

https://github.com/gophish/gophish/releases/

如何防范钓鱼邮件?

img

img

相关实验

无SPF伪造

我们采用网上的临时邮件来完成此实验。

使用nslookup来查看该域名是否存在SPF策略规则:
img

发现并不存在。

那么我们可以使用Swaks工具来伪造发信人,发送钓鱼软件了。

执行如下命令:

swaks --header-X-Mailer "" --header-Message-Id "" --header-"Content-Type"="text/html" --from "[email protected]" --ehlo shabimeiguo -header "test" --body "This is a test" --to [email protected]

成功发送钓鱼邮件!

img

有SPF绕过

软刚发件人(修改字眼)

所谓修改字眼就是:如果你冒充阿里云的官方账号(假设为[email protected])给某QQ邮箱去发送消息的话,那么很大概率是会被过滤的(SPF),那么我们可以将aliyun.com改为al1yun.com或者aliyun.com.cn。那么很大程度上就不会被绕过了。

我们可以查看qq.com的SPF策略:

img

我们使用Swaks以[email protected]的身份给QQ邮箱发送钓鱼邮件:

swaks --header-X-Mailer "" --header-Message-Id "" --header-"Content-Type"="text/html" --from "[email protected]" --ehlo shabimeiguo -header "test" --body "This is a test" --to [email protected]

发现失败了
img

我们尝试将[email protected]改为[email protected]

发现发送成功!

img

但是,这里成为了垃圾邮件!

img

这里给一个提示:我们在书写邮件内容时,一定要写的丰富一些,一定不要只写一些单词等,这样的话容易被后台的朴素贝叶斯分类器划分为垃圾邮件。

我们可以找一封阿里云给自己发送的真实邮件,把内容搞下来,然后去当成钓鱼邮件去发送。

  • 找到真实邮件,导出为eml文件
  • 修改eml文件中的内容,时间等,使其更加逼真
  • 使用swaks命令:
swaks --to 收信人 -f [email protected] --data 1.eml 

发送成功!

img

查看邮件:
img

硬刚发件人(POP3转发)

POP3转发的目的在于:如果攻击者发送钓鱼邮件给A,那么会被A拦截,此时B发送邮件给A可以通过。那么,攻击者可以将钓鱼邮件发送给B,B设置POP3转发,B再给A发送,从而绕过SPF限制。

  • 非平台转发
    • 需要自建邮箱(qq邮箱、163邮箱等)
    • 将自建邮箱设置POP3转发,获得授权码,导入eml模板,修改时间
    • 将模板中的发件人改为:[email protected]
    • 修改收件人邮箱
    • 使用swaks工具进行发送
swaks --to 收件人邮箱 -f  转发邮箱 --data 1.eml --server smtp.163.com -p 25 -au 转发邮箱 -ap 转发邮箱的授权码

发送成功!

img

  • 平台转发
    • 这里可以采用很多平台:
    • 1、smtp2go(速度慢但免费发送量大)
    • 2、SendCloud(速度快但免费发送量少)

这里以SendCloud平台举例:

  • 生成api key
  • 配置发信域名(需要申请且备案)
  • 配置发信配置和收信配置(参考文档即可)
  • 单击发送相关,进行发送邮件

关于第三方平台的转发这里就不进行赘述了。

  • 自己搭建邮件服务器(推荐!)

注:使用邮件钓鱼最好还是用自己搭建的邮件系统,不要使用第三方的,容易被封,进垃圾邮件等

Gophfish平台的使用-优化内容、效率

img

使用给定的地址登录,使用默认的用户名和密码登录。

使用该工具,大致分四个步骤:

  • 设置用户组,批量测试提高效率(Users&Groups)
  • 设置邮件模板,提高命中率,丰富内容(Email Templates)
  • 设置钓鱼网站,与邮件钓鱼配合,提高命中率(New Landing Page)
  • 设置发信人和收信人消息(发送策略),发送钓鱼邮件(New Sending Profile)
  • 综合运用如上信息,进行攻击:Campaigns
  • 配合相关手册食用:https://blog.csdn.net/qq_42939527/article/details/107485116

标签:钓鱼,--,发送,邮件,com,SPF
From: https://www.cnblogs.com/gao79135/p/18058929

相关文章

  • 简单实现邮件模板功能
    系统中经常有需要发送提醒邮件的需求,而且邮件类型和内容往往又不同,有些还需要跟业务字段做关联。这种情况下,就需要用到邮件模板功能,可以通过在模板中定义业务字段标记,通过模板引擎或自定义代码来实现这些字段的填充。下面是一个自己写的简单的,字符串替换方式实现的邮件模板功能。......
  • shell邮件功能-2
    场景:应用服务域名对应多台负载机,当某台出现CPU或RAM资源阻塞时,如果服务器并未死机,根据负载策略(类似ping或telnet),服务器可能仍然是可用的,新的访问仍然有分配到这台机器处理的可能,但实际又不可用,体验不好,且不能及时发送故障通知。新的负载策略是访问指定页面(类似curl命令),检查返......
  • shell邮件功能-2
    场景:应用服务域名对应多台负载机,当某台出现CPU或RAM资源阻塞时,如果服务器并未死机,根据负载策略(类似ping或telnet),服务器可能仍然是可用的,新的访问仍然有分配到这台机器处理的可能,但实际又不可用,体验不好,且不能及时发送故障通知。新的负载策略是访问指定页面(类似curl命令),检查返回结......
  • python邮件发送代码参考
    1.python邮件发送参考代码#!/usr/bin/python#-*-coding:UTF-8-*-importsmtplibfromemail.mime.imageimportMIMEImagefromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipartfromemail.headerimportHeader#第三方SMTP服务mail_host......
  • Spring Boot整合邮件发送
    整合邮件发送功能SpringBoot2.x集成了mail模块在pom.xml中引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>邮箱配置一些必要的名词解释什么是POP3、SMTP和IMAP?他们是三......
  • 配置Gitlab支持SMTP发送邮件
    不配置SMTP都无法工作了目前的版本Gitlab16.9.0,管理员在创建用户的时候,管理员无法给用户指定初始密码。初始密码只能以邮件的形式,发送到用户的邮箱。因此有了此篇博文,为我们的Gitlab服务器做好正确的SMTP配置。找到Gitlab的config文件夹如果您的Gitlab,是根据我们的文章安装......
  • 发邮件的工具类
    importjavax.mail.*;importjavax.mail.internet.InternetAddress;importjavax.mail.internet.MimeMessage;importjava.util.Properties;/***发邮件工具类*/publicfinalclassMailUtils{privatestaticfinalStringUSER="";//发件人称号,同邮箱地址......
  • 云服务器发送邮件失败问题
    出现问题下面代码为使用golang给用户发送邮件功能:packagemainimport( "fmt" "gopkg.in/gomail.v2")funcmain(){ subject:="邮件标题" sendUserEmail:=[]string{"[email protected]","[email protected]"} text:="邮件内容" f......
  • Outlook邮箱设置规则处理自动化邮件的方式方法
    Outlook邮箱设置规则处理自动化邮件的方式方法背景软件自动化发布过程中会有大量的邮件发送.如果不进行处理,会有大量的无效邮件在收件箱显示.为了提高工作效率,避免无效的精力浪费可将部分成功的邮件全部迁移到指定目录,避免浪费大家的精力.outlook客户端其实有着很强的处......
  • c#发送邮件的简单封装类
    1publicclassEmailSender2{3privatestringsmtpServer;4privateintsmtpPort;5privatestringsenderEmail;6privatestringsenderPassword;7privatestringsubjectPrefix;8privatestringemailContex......