电子邮件欺骗(email spoofing)的根本原因是SMTP协议是不需要身份验证的,攻击者可以利用这个特性伪造电子邮件头,从任意电子邮件地址发送任何人,导致信息看起来来源于某个人或某个地方,而实际却不是真实的源地址。

如果要实现邮箱伪造发件人地址,首先,我们需要一个可以用来发送邮件的SMTP服务器。在这里,我们将介绍如何搭建一个匿名SMTP服务器。

0x01 在线邮件伪造

我们先来使用一个在线伪造邮件地址发送Email邮件的服务,来做一些简单的测试。

查看SPF配置情况:

nslookup -type=txt qq.com

Emkei’s Fake Mailer:https://emkei.cz/

1、test.com未配置SPF,伪造发件人邮件为admin@test.com,发送邮件,QQ邮箱成功接收到邮件:

2、某个域名xxx.net 配置了SPF,伪造admin@xxx.net发送邮件,邮件进入垃圾箱。

通过以上测试,我们可以得到一个简单的结论,QQ邮箱在接收到邮件时,会检查域名的SPF记录,未配置SPF的域名,邮箱容易被伪造并成功投递到目标邮箱;已经配置了SPF的域名,检验后会被投递到垃圾箱。

其实可以发现,这个在线邮件伪造emkei.cz,通过查看邮件头,可知它是用postfix搭建。那么,我们也可以使用postfix搭建匿名SMTP邮件服务器,以便更灵活地去伪造邮箱任意字段。

0x02 搭建匿名SMTP服务器

使用postfix搭建匿名SMTP服务器

环境:CentOS7

1、安装postfix

#安装postfixyum install postfix

2、修改main.cf配置文件

vi /etc/postfix/main.cf    # 75行:设置myhostname     myhostname = mail.test.com     # 83行: 设置域名     mydomain = test.com     # 99行: 设置myorigin    myorigin = $mydomain     # 116行: 默认是localhost,修改成all    inet_interfaces = all     # 119行: 推荐ipv4,如果支持ipv6,则可以为all     inet_protocols = ipv4     # 165行: 设置mydestination    mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain     # 264行: 指定内网和本地的IP地址范围     mynetworks = 192.168.0.0/16,127.0.0.0/8    # 419行: 取消注释,邮件保存目录    home_mailbox = Maildir/     # 572行: 取消注释,设置banner。    smtpd_banner = $myhostname ESMTP

3、启动postfix服务

systemctl start postfix
#关闭防火墙systemctl stop firewalld.service

4、测试邮件搭建成功的几种方式:

第一种:使用mail发送邮件

#安装mailxyum install mailx
#发送邮件测试echo "email content" | mail -s "title" a*****t@163.com

查看邮件发送记录:

tail -f /var/log/maillogApr 28 09:27:14 centos postfix/smtpd[108012]: connect from localhost[127.0.0.1]
Apr 28 09:27:15 centos postfix/smtpd[108012]: 0170D403916: client=localhost[127.0.0.1]
Apr 28 09:27:15 centos postfix/cleanup[108015]: 0170D403916: message-id=<20200428012715.0170D403916@mail.abc.com>
Apr 28 09:27:15 centos postfix/qmgr[39469]: 0170D403916: from=<root@test.com>, size=716, nrcpt=1 (queue active)
Apr 28 09:27:15 centos postfix/smtpd[108012]: disconnect from localhost[127.0.0.1]
Apr 28 09:27:15 centos postfix/smtp[108016]: connect to mx3.qq.com[240e:ff:f101:10::127]:25: Network is unreachable
Apr 28 09:27:16 centos postfix/smtp[108016]: 0170D403916: to=<a*****t@163.com>, relay=mx3.qq.com[58.251.110.111]:25, delay=1.5, delays=0.03/0.03/0.37/1, dsn=2.0.0, status=sent (250 Ok: queued as )
Apr 28 09:27:16 centos postfix/qmgr[39469]: 0170D403916: removed

从邮件日志看到status=sent,确认邮件发送成功。

第二种:通过telnet使用smtp协议发送邮件

telnet localhost 25

测试邮箱成功接收到邮件

第三种:使用Python脚本发送邮件

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.header import Header
sender = 'admin@test.com'receivers = ['a*****t@163.com']message = MIMEText('Just for test', 'plain', 'utf-8')
message['From'] = Header("admin")   # 发送者
message['To'] =  Header("test")        # 接收者subject = 'SMTP 邮件测试'
message['Subject'] = Header(subject, 'utf-8')try:smtpObj = smtplib.SMTP('localhost')smtpObj.sendmail(sender, receivers, message.as_string())print "邮件发送成功"
except smtplib.SMTPException:print "Error: 无法发送邮件"

使用第三方邮件服务器,往往会受限于SMTP服务商的限制,但也有一定的好处,这些权威的邮件服务商的地址往往会被大部分邮件服务商加入白名单。

国内主流的邮箱有:QQ邮箱(qq和foxmail)、网易邮箱(包括163、126和yeah邮箱)、新浪邮箱、搜狐闪电邮箱、移动139邮箱、电信189邮箱等等。

国外的第三方SMTP服务商:SendGrid、mailgun等

不同的邮箱系统,接收邮件安全策略是不同;不同的SMTP服务商,发送邮件的限制也是不一样,具体会发生什么样的化学作用,还需具体进一步去测试。

邮箱伪造之搭建匿名SMTP服务器相关推荐

  1. yili邮箱服务器配置,手把手教 个人SMTP服务器的配置 -电脑资料

    导读:,因此我们要手工添加,管理员身份登录Windows Server 2003 系统.依次进入"控制面板→添加或删除程序→添加/删除Windows组件",在弹出的"Wi ...

  2. 【Tools】Win10系统搭建匿名FTP服务器详解

    00. 目录 文章目录 00. 目录 01. FTP服务器概述 02. FTP服务器要求 03. Win10系统配置FTP服务 04. Win10系统配置IIS服务 05. Win10系统防火墙设置 ...

  3. 搭建exchange邮件服务器一定要ad域么?_邮件伪造之SPF绕过的5种思路

    SMTP(SimpleMail Transfer Protocol) 即简单邮件传输协议,正如名字所暗示的那样,它其实是一个非常简单的传输协议,无需身份认证,而且发件人的邮箱地址是可以由发信方任意声明 ...

  4. Windows Server 2008: 搭建SMTP服务器、配置Outlook、收发邮件

    尽管是"二手知识",可能还是"三手知识",但也要亲自入一遍坑,才有体会. 背景:之前在某证券公司实习的时候,经常是定时执行完一些任务以后用SMTP自动发邮件.然 ...

  5. winserver搭建smtp_如何在服务器搭建本地smtp邮件服务

    一.在windows2003系统上安装POP3和SMTP服务组件 WindowsServer2003默认情况下是没有安装POP3和SMTP服务组件的,因此要手工添加. 1.安装POP3服务组件 以系统 ...

  6. 微软BI 之SSRS 系列 - 报表邮件订阅中 SMTP 服务器匿名访问与 Windows验证, 以及如何成功订阅报表的实例...

    这篇文章源于在上一篇博文中有园友提出订阅 SSRS 报表时的一个问题,  于是就好好总结了一下,把有关 SSRS 报表订阅的要点和容易出现问题的地方写出来,希望对大家有所帮助! 参看上一篇博文 - S ...

  7. Ubuntu 使用 heirloom-mail 调用外部邮箱 SMTP 服务器发送邮件

    使用本地服务发邮件,经常被过滤掉而且占用资源,发送成功率不高.所以使用外部SMTP服务器发送邮件成为了需求. SMTP认证的目的是为了使用户避免受到垃圾邮件的侵扰,简单地说就是要求必须在提供了账户名和 ...

  8. 各大型邮箱smtp服务器及端口收集:

    各大型邮箱smtp服务器及端口收集: >新浪邮箱smtp服务器 外发服务器:smtp.vip.sina.com 收件服务器:pop3.vip.sina.com 新浪免费邮件 外发服务器:smtp ...

  9. qq邮箱smtp服务器imap,如何配置电子邮件客户端使用IMAP(QQ邮箱账户) 你需要学习了...

    本篇主要介绍如何将QQ邮箱的账户添加到各类邮件客户端中.将介绍Foxmail客户端,outlook2007,2010,2013版本,及Android,iPhone客户端的设置方法. 工具/材料 各种邮 ...

最新文章

  1. SQL server 实例教程
  2. 安卓高手之路之 应用篇
  3. DirectX 90 3D 外接体
  4. web前端html图片轮播,如何使用LayUI实现网页轮播图_WEB前端开发,layui,轮播图
  5. 同页面多UpdatePanel的单独刷新
  6. windows如何使用ssh登录ubuntu
  7. 【MyBatis框架】配置文件-resultMap总结
  8. panzer 电力项目十一--hibernate操作大文本字段Blob和Clob
  9. asp.net mvc 依赖缓存启动项配置
  10. 多边形交叉区域计算面积_用什么算法来找到多边形与圆之间的交叉区域?
  11. html整体布局居中,html 居中布局
  12. 【Python】列表解析式
  13. 剑指offer——链表题目集合(Python)
  14. 访客登记无需排队-智能访客登记系统-从线上预约到室内导航寻车-为企事业单位提高更便利的人员访问服务
  15. 一起使用Mac和iPhone的10种便捷方法
  16. 都用无线技术,差距咋就这么大呢
  17. 狂奔的“智慧校园”:监控学生的生意,会持续吗?
  18. 逐步回归选取特征及GAM模型的使用==college数据集(统计学习导论)
  19. C++程序中如何执行cmd命令
  20. mfc checkedit设置字体颜色没有效果_还有这种操作?PPT居然能做出这么骚气的3D质感字体?...

热门文章

  1. Unity 运行状态下动态保存 预制体/预制体上脚本参数
  2. JavaScript DOM编程艺术——综合案例
  3. SitePoint Podcast#116:混合应用程序与John Allsopp一起获得BS
  4. 【nodejs】npm与包
  5. 量子前沿英雄谱|引领量子科技三十年:斯坦福NTT教授Yoshihisa Yamamoto
  6. 0917 电容参数X5R,X7R,Y5V等代表什么意思呢?X5R的意思就是该电容的正常工作温度为-55°C~+85°C,对应的电容容量变化为±15%
  7. wifi芯片行业信息汇总
  8. 一个让客户惊呼救急的BLDC电机驱动案例
  9. windows7虚拟机无法安装Xshell显示-1618错误怎么解决?
  10. 计算机毕业设计JAVA工资管理系统mybatis+源码+调试部署+系统+数据库+lw