安全攻防之邮件钓鱼
1、准备工作
域名:需要申请一个域名(尽量和目标域名相仿)来搭建邮箱服务器。
服务器:本次服务器选择 racknerd(以Ubuntu22为例)。
SMTP 服务器:使用iRedMail搭建。
钓鱼工具:Gophish。
2、iRedMail安装
在服务器上设置完全限定域名 (FQDN) 主机名
主机名在两个文件中设置:/etc/hostname 和 /etc/hosts。
/etc/hostname 是短主机名,而不是 FQDN。这里修改成 mx。
/etc/hosts 是主机名的静态表查找,这里要将 FQDN 主机名列为第一项。
127.0.0.1 mx.example.com mx localhost localhost.localdomain
hostname -f 命令验证 FQDN 主机名。如果没有更改,请重启服务器 reboot。
hostname -f
下载iRedMail
wget https://github.com/iredmail/iRedMail/archive/refs/tags/1.6.6.tar.gz
这里我们下载到 opt 下的 iredmail 文件夹。
解压iRedMail
下载完后 iredmail 目录会有一个 iRedMail-x.y.z.tar.gz 文件。解压即可。
tar -zxvf iRedMail-x.y.z.tar.gz
安装iRedMail
bash iRedMail.sh
过程如下,欢迎并感谢您的使用,选择 Yes。
指定存储所有邮箱的位置。默认为 /var/vmail/,Next 继续。
选择用于存储邮件账户的后端,这里选择第二个 MariaDB。
设置数据库密码。
添加你的第一个邮箱域名。
设置你的第一个邮箱域名的管理员帐户的密码。
选择组件,默认就行。Next 继续。
确认开始安装,选择 y。
是否要使用 iRedMail 提供的防火墙规则?选择 y。
重启防火墙,选择 y。
安装完成后,首先读取文件 /root/iRedMail-x.y.z/iRedMail.tips,里面记录了基于 Web 应用程序的 URL、用户名和密码。
3、为邮箱服务器设置DNS记录
1、A记录
把域名和 IP 绑定,我这里没有用@,用子域名 mx 就可以,也就是说访问 mx.example.com 就会解析到我VPS上。
2、CNAME记录
分别设置 imap、pop、smtp,值都是 mx.example.com。
3、MX记录
也就是 SMTP 邮服的发件地址,设置为 mx.example.com 即可。
4、SPF设置
SPF 格式基本都差不多,这里设置TXT记录(x.x.x.x为你的IP),值为:
v=spf1 ip4:x.x.x.x -all
设置好后,可以通过 nslookup 进行检查:
nslookup -type=txt example.com
5、DKIM设置
首先执行以下命令:
amavisd-new showkeys
复制结果,可以通过以下地址进行自动整理:
http://www.ewomail.com/list-20.html
整理好后,设置一个TXT记录,键是固定的,为 dkim._domainkey,值就是整理后的内容。
一样的,可以通过 nslookup 来查询。
nslookup -type=txt dkim._domainkey.example.com
4、Gophish安装
1、下载gophish
wget https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip
这里我们下载到opt下的gophish文件夹。
2、解压gophish
下载完后 gophish 目录会有一个 gophish 的 zip 文件。解压即可。
unzip gophish-x.x.x.x-linux-64bit.zip
3、修改配置文件config.json
"listen_url":"127.0.0.1:3333"改为"0.0.0.0:3333",方便互联网上访问。
"listen_url":"0.0.0.0:80"改为"0.0.0.0:81",这里的默认80端口被iredmail程序占用了,所以要进行修改。
4、修改gophish文件权限
gophish 文件权限较低,无法运行,需要提升权限来运行 gophish。
chmod +x gophish
5、运行gophish
直接运行命令如下:
./gophish
后台运行命令如下:
nohup gophish &
登录账号密码会在启动日志中,后台运行的日志会存在当前目录下的 nohup.out 文件中。
运行后可以通过以下命令查看gophish运行端口情况。
netstat -tano
如果后台运行关闭时可以先查看gophish的进程号然后kill掉即可。
ps -aux
kill xxx
5、配置Gophish
先用账号密码登录 gophish,登录成功后会让你修改密码。
如果无法访问,请查看服务器防火墙是否关闭,如果安装iredmail时使用了默认的nftables,则关闭命令如下。
临时性关闭防火墙(重启后会自动开启):
systemctl stop nftables.service
永久性关闭防火墙(重启后不会自动开启):
systemctl disable nftables.service
1、Sending Profiles
Sending Profiles为配置 SMTP 服务器,默认为25端口,这里服务器地址填写127.0.0.1即可。
这里可以添加 X-Mailer 邮箱头,代表发件人的客户端是什么,gophish默认该头值为gophish,修改后可防止邮件网关检查,例如改为Outlook:
2、Landing Pages
Landing Pages为钓鱼页面,常规情况下我们是配置该页面,完事邮件中的钓鱼链接点击后显示的就是该页面,输入相关信息就会被捕获。
3、 Email Templates
Email Templates为邮件模板,也就是打开邮件后具体显示的邮件内容,需要注意以下几点。
1, Add Tracking Image,如果勾选的话,邮件内容中会自动插入一个 Tracker 标签,GPT 对标签说明如下:{{.Tracker}} 标签在 Gophish
邮件模板中用于插入一个隐藏的 1x1 像素图片。当收件人打开邮件时,此图片将尝试从 Gophish 服务器加载,从而触发一个 "EmailOpened"(已打开邮件)事件。这有助于你了解目标用户是否打开了钓鱼邮件。
2,如果目标邮箱无法访问外部网络,则可以尝试二维码形式,邮件中的二维码不能通过 img 远程加载,否则也会加载不出来,方法就是先将url转为二维码图片,然后将图片转换为 base64,插入到网页中。
URL转换二维码地址:https://cli.im/url
二维码转换为 BASE64地址:https://tool.chinaz.com/tools/imgtobase
转换为 BASE64 后格式为:data:image/png;base64,xxxxxxxxxx==
然后邮件以 HTML 格式编辑,贴到一个IMG 标签中即可:
4、User导入乱码
给多个目标用户发送时,可能会涉及到导入文件操作,Gophish 导入目标用户时,支持 CSV格式 ,已经搜集好了目标的姓名和邮箱,如果是EXCEL,转成CSV 再导入的话,中文名会乱码,原因在于 CSV 用 WPS 或者 OFFICE 类的软件打开过,CSV本质上是文本,用 EXCEL默认打开的话,再保存就不兼容了。
解决办法:把 CSV 后缀改成 TXT,然后再改回 CSV 即可。
5、Campaigns
Campaigns用来发起一次任务,各个选项选择自己刚才配置的即可,需要注意以下几点。
1,URL为Gophish监听的地址,上面配置的是0.0.0.0:81,这里就填写自己VPS的地址加81端口,Gophish之所以能检测目标用户邮件的打开和点击情况,就是目标通过该端口来告诉Gophish的。
2,发送时间设置,目标邮件网关可能会对频率做限制,避免一次性发太多邮件导致失败,可以设置分批发送。
发送后如下图。
后续的打开和点击操作这里就不演示了。
钓鱼得分问题
为防止钓鱼邮件进入垃圾邮箱,可以针对性做一些措施,例如设置SPF、DKIM、rDNS。Gophish中的X-Mail头设置等等,具体详细规则可以参考如下地址。
https://www.mail-tester.com/
总结
愿大家健康开心。
原文始发于微信公众号(AlertSec):安全攻防之邮件钓鱼
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论