首页 > 其他分享 >邮箱伪造之搭建匿名SMTP服务器

邮箱伪造之搭建匿名SMTP服务器

时间:2023-04-21 15:33:31浏览次数:59  
标签:postfix SMTP 发送 匿名 邮箱 com 邮件

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

 

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

 

0x01 在线邮件伪造

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

  查看SPF配置情况:

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

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

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

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

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

0x02 搭建匿名SMTP服务器

  使用postfix搭建匿名SMTP服务器

  环境:CentOS7   

1、安装postfix

yum install postfix    #安装postfix

2、修改main.cf配置文件

vim /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    #启动postfix服务   
systemctl stop firewalld.service    #关闭防火墙

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

第一种:使用mail发送邮件

yum install mailx    #安装mailx
echo "email content" | mail -s "title" a*****[email protected]    #发送邮件测试
 

  查看邮件发送记录:

tail -f /var/log/maillog
 
 
Apr 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=<[email protected]>
Apr 28 09:27:15 centos postfix/qmgr[39469]: 0170D403916: from=<[email protected]>, 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*****[email protected]>, 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 = '[email protected]'
 
 
receivers = ['a*****[email protected]']
 
 
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服务商,发送邮件的限制也是不一样,具体会发生什么样的化学作用,还需具体进一步去测试。

标签:postfix,SMTP,发送,匿名,邮箱,com,邮件
From: https://www.cnblogs.com/hkgan/p/17340551.html

相关文章

  • c#匿名类 anonymous
      感谢http://hi.baidu.com/guodong828/blog/item/cc53404ef40af002b3de0500.html  c#匿名类上代码:1.using2.using3.using4.using5.6.namespace7.{8.///<summary>9.///作者:it小金10.///作用:匿名类型的使用11.///说明:var关键字,用于表示隐式......
  • Linq专题之提高编码效率—— 第二篇 神一样的匿名类型
    说起匿名类型,我们都知道这玩意都是为linq而生,而且匿名类型给我们带来的便利性大家在实战中应该都体会到了,特别适合于一次性使用,临时使用这些场景,虽然说是匿名类型,也就是说是有类型的,只是匿名了而已,对吧,这篇我们就来探索下匿名类型到底和linq有多大关系呢???......
  • JavaScript 邮箱 验证正则表达式 ,包看懂
    \w就是[0-9a-zA-Z_]\s是[\t\v\n\r\f]\S是[^\t\v\n\r\f]\W是[^0-9a-zA-Z_]\D就是[^0-9]\d就是[0-9].就是[^\n\r\u2028\u2029]。表示几乎任意字符。varreg=/\w{1,30}(\.\w{1,10}){0,2}@\w{1,10}\.\w{1,10}/g\w{1,30}理解为至少有一个字符,最多30个.\w{1,30}理......
  • 如何用一个邮箱接收其他邮箱的邮件
    假设你有163邮箱、QQ邮箱、Gmail邮箱等等,你想使用一个邮箱就可以接收其他邮箱的邮件(比如QQ邮箱),这样可以不用频繁登录各个邮箱来查看邮件1主邮箱(163)添加其他邮箱  2以QQ邮箱为例进行设置  3登录QQ邮箱设置    4回到163邮箱,填写授权码,点击一键迁移 5在邮......
  • Java基础知识点内部类之局部内部类和匿名内部类
    一:局部内部类1概述:将内部类定义在方法里面就叫做局部内部类。类似于方法里面的局部变量。2.注意点:外界无法直接使用,需要在方法内部创建对象并使用。3.该类可以直接访问外部类成员,也可以访问方法内的局部变量。publicclassOuter{publicstaticvoidshow(){......
  • 02_JAVA匿名内部类
    匿名对象就是没有名字的对象匿名对象的应用场景A:调用方法,仅仅只调用一次的时候。(调用多次的时候不适合,且匿名对象调用完毕就是垃圾,可以被回收器回收)//newStudent().show();B:匿名对象可以作为实际参数传递。StudentDemosd=newsStudentDemo();//Studentss=newSt......
  • C# 匿名类型之 RuntimeBinderException
    匿名类型在某些场景下使用起来还是比较方便,比如某个类型只会使用一次,那这个时候定义一个Class就没有多少意义,完全可以使用匿名类型来解决,但是在跨项目使用时,还是需要注意避免出现RuntimeBinderException问题问题描述比如我们有一个netstandard2.0类型的类库项目,里面有一......
  • 简历上写QQ邮箱很low吗?
    本文首发自公粽hao「林行学长」,欢迎来撩,拿20个求职工具资源包。了解校招,分享校招的学长来了!每一个准备投简历的同学都会有很多学长学姐苦口婆心地告诉你:“投简历千万不要用 QQ邮箱,会很Low...”这种传言有理由相信是不少好心人的探索结果。不过,QQ邮箱真的有这么不堪吗?01QQ邮箱......
  • 摸鱼用python代码收集每天大瓜内容信息,并发送到自己的邮箱
    本篇文章内容主要为如何用代码,把你想要的内容,以邮件的形式发送出去内容可以自己完善,还可以设置一个定时发送,或者开机启动自动运行代码代理注册与使用注册账号并登录生成api将自己电脑加入白名单http://api.tianqiip.com/white/add?key=xxx&brand=2&sign=xxx&ip=输入自己电脑的ip地......
  • 外贸公司在选择使用企业邮箱时面临的优势
    外贸公司使用ZohoMail企业邮箱的优势?域名做为扩展名的企业邮箱与外界沟通交流,给人一种专业,印象,公司的消费者会经常要求工作流程发一封详解原材料给到消费者,倘若用的是企业邮箱价值评定。倘若员工特别是在销售员在运用ZohoMail企业邮箱进行一些外事接待沟通交流的话,当这一员工离职......