邮件伪造测试-Swaks
1、 前言
在kali中自带一个邮件伪造工具Swaks,工具项目主页为 http://jetmore.org/john/code/swaks
2、基本用法:
swaks --to <要测试的邮箱> --from <被伪造的邮箱> --ehlo <网址> --body <邮件内容> --header <邮件标题>
swaks --to xxxx@qq.com --from info@freebuf.com --ehlo freebuf.com --body hello --header "Subject: hello"
3、源码分析
这个工具的原理是将STMP邮件命令封装起来,填写好参数后通过TCP发送。
工具源码:http://jetmore.org/john/code/swaks/files/swaks-20170101.0/swaks
$n{data} ||= 'Date: %DATE%\nTo: %TO_ADDRESS%\nFrom: %FROM_ADDRESS%\nSubject: test %DATE%\n' .
"Message-Id: <%MESSAGEID%>\n" .
"X-Mailer: swaks v%SWAKS_VERSION% jetmore.org/john/code/swaks/".'\n' .
($bound ? 'MIME-Version: 1.0\nContent-Type: multipart/mixed; boundary="'.$bound.'"\n' : '') .
'%NEW_HEADERS%' . # newline will be added in replacement if it exists
'\n' .
'%BODY%\n';
4、查看IP的办法
阿里云邮箱-查看邮件原文-Received字段就是发送邮件人的IP
QQ邮箱-查看邮件原文
原文中的Received字段就是发件人的IP地址
Received: from 36x.cn (unknown [192.119.131.28])
by newmx21.qq.com (NewMx) with SMTP id
for <xxxxx@qq.com>; Tue, 27 Mar 2018 13:25:07 +0800
X-QQ-SPAM: true
X-QQ-FEAT: s2GiS5gUmyK+eXv9+I/fePc92oQJu9XHtWyzT9PgGcvSpn7dWJrxhFyEnAwTo
irizSvrfxLHBO0Uqb7XWddQ8Z9xc80zMicgaf6pyCj+5EaD7jNpPkUj3Q43vgXfmxscAQZm
Oe6ApiG6Du5QFkISrDjb+OQ0ZZZZRHH8i0TOVHHHDCvYHF8RBXG44G53
MmI3Lhj8CoWPztQ9Oftn5LlkK0/8nxZ1BbYhzKovOY3U27E1qlNUYRLLzC3X3NSs=
X-QQ-MAILINFO: M9mpTqh4QKvqUsonnjk0JTAHsII3lq/kTlJ+R+7KGWo2g8ZOmN0AZJRqQ
muQ8LXR8jVXXZZZEZTaXbafIHHHHHVNffL3voKA1fvkRCxucXzc=
X-QQ-mid: mx21t1522128307tnl9i9x2f
X-QQ-ORGSender: linwei@36x.cn
Date: Sat, 06 Jan 2018 03:02:36 +0800
To: xxxxx@qq.com
From: linwei@36x.cn
Subject:36x CERT
X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
welcome
5、发送伪造邮件原理
- 手法邮件
通过telnet客户端发Email,如下图所示:
- swaks工具使用
伪造请求后,可以看到发送的命令。如下图所示:
root@kali:~# swaks --to xxxx@qq.com
=== Trying mx3.qq.com:25...
=== Connected to mx3.qq.com.
<- 220 newmx59.qq.com MX QQ Mail Server
-> EHLO kali
<- 250-newmx59.qq.com
<- 250-SIZE 73400320
<- 250-STARTTLS
<- 250 OK
-> MAIL FROM:<root@kali>
<- 250 Ok
-> RCPT TO:<xxxx@qq.com>
<- 250 Ok
-> DATA
<- 354 End data with <CR><LF>.<CR><LF>
-> Date: Tue, 05 Jan 2016 23:15:11 -0500
-> To: xxxx@qq.com
-> From: root@kali
-> Subject: test Tue, 05 Jan 2016 23:15:11 -0500
-> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
->
-> This is a test mailing
->
-> .
<** 550 Mail content denied. http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=20022&&no=1000726
-> QUIT
<- 221 Bye
=== Connection closed with remote host.
6、安全防护解决方案
- 1)基于ip 发送频率 发送内容 发送标题 进行策略控制。通过正常邮件频率定义是否为垃圾邮件!
- 2)配置SPF:SPF 其实就是一条DNS的TXT的记录,其记录值就是 SPF的内容 比如:v=spf1 include:spf.mail.qq.com -all",SPF 需要在域名解析服务器上配置
7、参考
钓鱼邮件初探:黑客是如何进行邮件伪造的?
http://www.freebuf.com/sectool/92397.html
邮件发送和接收原理
https://blog.csdn.net/qq_15646957/article/details/52544099
邮件伪造测试-Swaks的更多相关文章
- Swaks绕过SPF验证进行邮件伪造
0x00 swaks简介 Swaks是一个功能强大,灵活,可编写脚本,面向事务的SMTP测试工具,由John Jetmore编写和维护. 目前Swaks托管在私有svn存储库中.官方项目页面是http ...
- SPF邮件伪造漏洞测试脚本
测试脚本: # -*- coding: utf-8 -*- import socket,select,base64,os,re,time,datetime class mail: def __init ...
- kali 下的邮件发送工具 swaks
kali 下的邮件发送工具 swaks Swaks 是一个功能强大,灵活,可编写脚本,面向事务的 SMTP 测试工具,目前 Swaks 托管在私有 svn 存储库中. 官方项目 http://jetm ...
- sql 邮件发送测试情况
sql 邮件发送测试情况 select * from msdb.dbo.sysmail_allitems select * from msdb.dbo.sysmail_event_log
- SPF难以解决邮件伪造的现状以及方案
邮件伪造的现状 仿冒域名 私搭邮服仿冒域名: 例如某公司企业的域名是example.com,那么攻击者可以搭建一个邮服,也把自己的域名配置为example.com,然后发邮件给真实的企业员工xxx@e ...
- 一个PHP邮件伪造脚本
xx.html <html> <head> <title>邮件欺骗</title> <body> <h3>社工必备-邮件欺骗&l ...
- Python3发送qq邮件,测试通过
import smtplib from email.mime.text import MIMEText # 收件人列表 mail_namelist = ["10402852@qq.com&q ...
- smtpclient 邮件发送测试
SmtpClient smtp = new SmtpClient(); //实例化一个SmtpClient smtp.DeliveryMethod = SmtpDeliveryMethod.Netwo ...
- Swaks伪造邮件
一.搭建邮件服务器 首先需要自己搭建邮件服务器采用的是EwoMail搭建参考链接: http://doc.ewomail.com/docs/ewomail/install 二.邮件伪造发送 swaks ...
随机推荐
- BZOJ 3173 最长上升子序列(树状数组+二分+线段树)
给定一个序列,初始为空.现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置.每插入一个数字,我们都想知道此时最长上升子序列长度是多少? 由于序列是顺序插入的,所以当前插入的数字对之 ...
- Django 2.0 学习(20):Django 中间件详解
Django 中间件详解 Django中间件 在Django中,中间件(middleware)其实就是一个类,在请求到来和结束后,Django会根据自己的规则在合适的时机执行中间件中相应的方法. 1. ...
- AtCoder Grand Contest 029 翻车记
A:对于每个B,会和其右边的每个W交换一次. #include<iostream> #include<cstdio> #include<cmath> #includ ...
- NOIP赛前集训营-提高组(第一场)#A 中位数
题目描述 小N得到了一个非常神奇的序列A.这个序列长度为N,下标从1开始.A的一个子区间对应一个序列,可以由数对[l,r]表示,代表A[l], A[l + 1], ..., A[r]这段数.对于一 ...
- Java中线程同步的理解 - 其实应该叫做Java线程排队
Java中线程同步的理解 我们可以在计算机上运行各种计算机软件程序.每一个运行的程序可能包括多个独立运行的线程(Thread). 线程(Thread)是一份独立运行的程序,有自己专用的运行栈.线程有可 ...
- YAPTCHA UVALive - 4382(换元+威尔逊定理)
题意就是叫你求上述那个公式在不同N下的结果. 思路:很显然的将上述式子换下元另p=3k+7则有 Σ[(p-1)!+1/p-[(p-1)!/p]] 接下来用到一个威尔逊定理,如果p为素数则 ( p -1 ...
- Oracle 事务实例(非理论)
begin begin savepoint p1; ---------============ 在这里写删改差语句(SELECT 不行)每句以分号结尾:如 delete ta ...
- LaTex Font Size 字体大小
目录 命令 效果图 命令 LaTex中字体大小由以下命令控制: \tiny \scriptsize \footnotesize \small \normalsize \large \Large \LA ...
- MongoDB ShardingCluster
sharding集群中的组件: 1.mongos:router,可以通过keepalived实现高可用. 2.config server:元数据服务器,这里要借助zookeeper存放配置信息. 3. ...
- fzyzojP3580 -- [校内训练-互测20180315]小基的高智商测试
题目还有一个条件是,x>y的y只会出现一次(每个数直接大于它的只有一个) n<=5000 是[HNOI2015]实验比较 的加强版 g(i,j,k)其实可以递推:g(i,j,k)=g(i- ...