Walks

网络安全爱好者

Python3学习系列(四):编写属于自己的邮件伪造工具

《Python3学习系列(四):编写属于自己的邮件伪造工具》

前言:

相信有些人也看过一些渗透,邮件伪造然后钓鱼这个在渗透中也是经典技巧了,那么邮件伪造又是如何运作的呢?下面的文章将会为你揭示邮件伪造,看完这篇文章,你会发现,原来就是这样。


目录:

  • 0x01:邮件伪造原理

  • 0x02:处理流程

  • 0x03:代码实现

  • 0x04:逐行解析

 0x01 邮件伪造原理

利用的是SMTP协议,因为在SMTP协议里面,是不需要身份认证的,也就是邮件发送者和邮件显示的发送人不一定要一致,那为什么我们平时发送的邮件的邮件发送人和显示的发送人都是一致的呢?这是邮件服务商人为要求的,163,qq邮箱都是如此

 

 0x02 处理流程

  • 注册个邮箱,这里用网易163

 《Python3学习系列(四):编写属于自己的邮件伪造工具》 

  • 登陆邮箱

  • 进入设置

 《Python3学习系列(四):编写属于自己的邮件伪造工具》 

  • 打开SMTP服务

 《Python3学习系列(四):编写属于自己的邮件伪造工具》 

  • 设置授权码

这些只是代码之前的前奏,下面开始我们的工具编写   

0x03  代码编写 

# -*- coding: utf-8 -*-
'''
Program:邮件伪造
Function:伪造邮件发送工具

Version:Python3.6
Time:2017/10/13
Author:Walks
个人博客:http://www.bywalks.com
'''  
  
import smtplib  
import email.mime.multipart  
import email.mime.text  

#建立邮件对象  
msg = email.mime.multipart.MIMEMultipart()  
#添加数据,来自哪,去哪
msg['Subject'] = u'发送asd邮件时设置的标题asd'  
msg['From'] = '123asds@163.com'  
msg['To'] = 'xxx@qq.com'   
content = "你好啊今asdasda好日子,所以西乡说些阿萨德asdasd事情阿斯达所阿斯达所大所大大所大库拉索多拉还是打款哈手机打开哈金士顿哈见到过巴克斯降本增效变成你们准备下次找你没错吧红烧冬瓜 。" 
   
txt = email.mime.text.MIMEText(content,'text','utf-8')    
msg.attach(txt)  # 将多个子部分进行组合  

#防出错  
try:  
        smtp = smtplib.SMTP()
        # 连接到服务器
        smtp.connect('smtp.163.com', '25')
        # 用户名密码登录,密码为163邮箱的授权码
        smtp.login('bywalkss@163.com', 'XXX')
        # 发送邮件 
        smtp.sendmail('bywalkss@163.com', ['739327037@qq.com'], msg.as_string()) 
        smtp.quit()  
        print('邮件发送成功email has send out !')  
except Exception as e:  
    print(e)


0x04  逐行解析

# -*- coding: utf-8 -*-
'''
Program:邮件伪造
Function:伪造邮件发送工具

Version:Python3.6
Time:2017/10/13
Author:Walks
个人博客:http://www.bywalks.com
'''  

#导入两个库,用来发送邮件,multipart用来构造邮件,带附件的
import smtplib  
import email.mime.multipart  
import email.mime.text  

#建立邮件对象  
msg = email.mime.multipart.MIMEMultipart()  
#添加数据,来自哪,去哪
msg['Subject'] = u'发送asd邮件时设置的标题asd' 
#邮件显示的发送人 
msg['From'] = '123asds@163.com'  
#接受地
msg['To'] = 'XXX@qq.com' 
#发送的内容  
content = "你好啊今asdasda好日子,所以西乡说些阿萨德asdasd事情阿斯达所阿斯达所大所大大所大库拉索多拉还是打款哈手机打开哈金士顿哈见到过巴克斯降本增效变成你们准备下次找你没错吧红烧冬瓜 。" 
   
txt = email.mime.text.MIMEText(content,'text','utf-8')   
# 将多个子部分进行组合 
msg.attach(txt)    

#防出错  
try:  
        smtp = smtplib.SMTP()
        # 连接到服务器
        smtp.connect('smtp.163.com', '25')
        # 用户名密码登录,密码为163邮箱的授权码,自己设置的
        smtp.login('bywalkss@163.com', 'XXX')
        # 发送邮件(发送地,接受地,内容) 第二个参数必须为列表
        smtp.sendmail('bywalkss@163.com', ['XXX@qq.com'], msg.as_string()) 
        #退出
        smtp.quit()  
        print('邮件发送成功email has send out !')  
except Exception as e:
    #打印出错原因,可以查看出错代码  
    print(e)

两张成功图。这里为什么会显示代发,上面也说过了,邮件服务商要求,那么我们找一个小服务商是不是就行了?

《Python3学习系列(四):编写属于自己的邮件伪造工具》 《Python3学习系列(四):编写属于自己的邮件伪造工具》

转载请注明来自:www.bywalks.com

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

21 − 13 =