钓鱼邮件从入门到放弃
钓鱼邮件,即一种伪造邮件,是指利用伪装的电邮,一般目的是用来欺骗收件人将账号、口令或密码等信息回复给指定的接收者,或附有超链接引导收件人连接到特制的钓鱼网站或者带毒网页,这些网页通常会伪装成和真实网站一样,如银行或理财的网页,令登录者信以为真,输入收集号码、账户名称及密码等而可能被盗取。
在大型企业边界安全做的越来越好的情况下,不管是 APT 攻击还是红蓝对抗演练,钓鱼和水坑攻击被越来越多的应用。
一、钓鱼邮件的基本概念
1.1 钓鱼邮件的伪造方式
1.1.1 购买域名搭建邮箱服务器
在真实的钓鱼场景中,一般是用一些近似的邮箱或邮件服务商注册的邮箱,在给甲方做钓鱼邮件演练的时候,如果预算高,会注册一个和甲方域名相似的域名,可以使用urlcrazy工具自动寻找:

#工具在kali里面是预安装的
urlcrazy -i weibo.com
valid为false的就是没有人使用的,我们就可以挑一个便宜的注册一个。然后利用域名搭建一个邮箱服务器,这里推荐ewomail,下文有具体的搭建方式。
1.1.2 伪造发件人
有时候我们找不到比较合适的域名,或者就是单纯的没有钱购买域名,这个时候我们就需要去伪造发件人。
我们先快速介绍一下邮件传递的过程,我们使用的邮箱客户端程序,网页版的qq邮箱、Foxmail、outlook统称为MUA(Mail User Agent),他们只跟自己代理邮箱的smtp服务器(MTA)交互,而你使用qq邮箱向sina邮箱发送一封邮件,实际上最少经过4台机器,即:
发件MUA -> QQ MTA-> SINA MTA ->收件MUA。
然后我们可以仿造swaks直接伪装成一台邮件服务器(MTA),自己去进行身份的认证和邮件的发送
#telnet到邮件服务器的25端口
telnet smtp.mysun.org 25
# 用ehlo申明,表示自己需要身份验证,MTA将返回一些元信息
EHLO + 域名
#进行用户身份认证
auth login
#然后服务器会返回base64加密过的user和pass字段,你也需要输入base64加密过的账号和密码
#发到本系统中域名下的账户可跳过身份认证。
#接下来进入邮件发送部分,使用mail from命令指定邮件由谁发出:
mail from: <test1@domain.com>
#递送给地址 test2@domain.com
rcpt to: <test2@domain.com>
#使用DATA命令指定邮件正文,以[.]结束
data
#结束连接
quit
然后我们可以发现上面的发送邮件流程中,涉及到域名后缀的有三个地方:
与接收者MTA打招呼时的EHLO命令
指定发送人的MAIL FROM命令
正文里的From头部
所以原理上,我们可以按照上面讲述原理的过程,直接与对端MTA交互,自定义以上三个部分,就可以模拟任何地址发送邮件了,因为MTA之间没有任何认证的过程。当然这个过程我们可以利用工具去替代,swaks就是这样的一款工具(该工具下文会介绍)。
————————————————
版权声明:本文为CSDN博主「tomyyyyy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tomyyyyyy/article/details/121760139