一、引言
1. 网络钓鱼介绍
网络钓鱼攻击(Phishing Attack)是一种常见的网络欺诈手段,攻击者向目标发送伪装成合法来源的恶意链接或诱饵,诱导受害者泄露个人信息、账号密码等敏感数据的攻击方式。网络钓鱼攻击通常利用受害者的好奇心、信任心理或恐慌情绪,诱导其点击恶意链接,进而感染恶意软件、窃取个人信息或进行其他非法活动。
2. 网络钓鱼测试是否必要
网络钓鱼测试可以提升员工的安全意识,帮助组织评估员工对网络钓鱼攻击的识别能力。通过模拟真实的钓鱼攻击,员工可以更加直观地感受到钓鱼攻击的特征和危害,从而提高他们的安全意识。同时模拟钓鱼攻击可以发现潜在的安全问题,通过钓鱼的结果分析,安全团队可以识别出哪些环节存在风险,并根据结果调整防护策略。
总之钓鱼攻击是提升网络安全防御能力的重要手段,不仅可以提供员工的安全意识,优化安全策略,而且在面对日益复杂的网络钓鱼威胁时,可以进行有效的防护。
二、钓鱼测试类型
1. 邮件钓鱼
邮件钓鱼在日常中比较常见,攻击者通过发送伪装成合法的邮件,诱导收件人泄漏个人信息、登录凭证和财务信息等敏感数据。
邮件钓鱼通常首先是伪装成合法邮件,例如银行、公司内部同事或者是系统通知。然后诱导收件人点击链接或者下载带病毒的附件。点击链接可能会将用户导向一个伪装的正常页面,要求用户输入账号密码或是其他敏感信息,从而获取信息。下载带病毒的附件会导致恶意软件的安装,造成更多的损失和危害。
2. 网站钓鱼
网站钓鱼通常更多的是和其他类型的钓鱼进行配合,通常出现在钓鱼邮件、短信、社交媒体消息中。攻击者通过伪装成合法页面诱骗用户输入敏感信息,然后攻击者会收集这些数据用于非法目的。
3. 社交媒体钓鱼
社交媒体钓鱼是一种利用社交媒体平台进行的网络诈骗手段。攻击者通过伪装成可信的个人或机构,发布虚假信息、链接或附件,诱骗用户点击或分享,从而窃取用户的个人信息、登录凭证或传播恶意软件。
4. 其他类型钓鱼
其他类型的钓鱼还有短信,语音钓鱼等类型。
更多钓鱼测试类型可以参考《企业钓鱼攻击演练方案设计》。
三、环境搭建
我们需要准备以下钓鱼测试中用到的东西:
-
邮件发送服务器
-
域名
-
Cloudflare
-
EwoMail邮件服务器
-
Gophish
1. 服务器准备
钓鱼首先需要一台服务器,最好是香港服务器,因为大多数国外IP会被国内的邮箱进行拦截,同时准备CentOS的系统,在后续的工具准备安装中需要确认版本,避免出错,并且需要确认服务器的25端口(SMTP服务)是开启的。
2. 域名购买
为了钓鱼的成功率,我们需要准备一个与目标网站域名比较相似的域名,比如替换网站后缀,一般比较冷门的后缀会比较便宜,几十块钱就可以购买一年。或者是替换一些相似的字母,比如将字母o替换为数字0,将字母l替换为字母i或者替换为数字1等等。实际攻击过程中,较为谨慎的攻击方法中还会利用正常网站域名的URL重定向漏洞制作钓鱼页面,这种手段的隐蔽性会更高。
笔者推荐去国外的域名购买网站www.namesilo.com进行购买,因为国内购买的域名管理比较严格,使用起来比较麻烦,流程比较复杂(需要实名认证和域名备案)。笔者购买的是相同名字,但是后缀为.top的域名。
3. Cloudflare的使用
Cloudflare是一个提供基于反向代理的内容分发网络(CDN)、网络安全、DDoS防护、DNS解析等服务的平台。Cloudflare可以给我们提供CDN和HTTPS服务,在钓鱼测试中主要用来防止国内邮箱的封禁和拦截,对钓鱼邮件做到进一步伪装,并且可以防止被溯源。
1) 添加域名和DNS解析
访问平台的地址https://dash.cloudflare.com/,注册好用户登录网站后就可以添加域名了。登录后在账户主页选择添加域,使用默认的快速扫描DNS记录,同时付费计划选择免费版本即可。
需要注意的是,添加DNS记录的时候需要选对域名解析类型,按照下图进行填写即可,其中需要将127.0.0.1替换为服务器的公网IP地址,mail后的***.***替换为域名地址。
DNS解析记录中的第一项是SPF,第二项是DKIM,这两项是和防止邮件伪造相关,实际上也可以不用填写,但增加后可以增强邮箱域名的真实性,这也是判断发件来源可靠性的方法之一。CNAME记录是为了后续邮箱系统设置时候对于SMTP、POP和IMAP协议的地址填写,MX记录则是邮件交换记录,用作指定邮件的发件服务器。
最后添加完如下图所示,添加完成之后在域名的详情页面打开开发模式。
NameServer指定了域名是由哪台服务器对域名进行解析,因为我们使用的是Cloudflare服务,因此需要记住上图的两个NS值,然后到购买域名的页面,进入域名的详情页面,将NameServer的值进行替换为这两个NS值。
2) SSL配置
在Cloudflare的左侧菜单中找到SSL/TLS这个选项,进去之后将模式选择为灵活,即域名访问者和Cloudflare之间启用加密通讯,但Cloudflare和服务器之间采用未加密的HTTP通讯。当然,也可以选择完全(严格)选项,这个选项也是Cloudflare官方建议的首选项。
3) 页面规则配置
在左侧菜单栏里选择“规则->页面规则”选择添加规则,URL填写之前买的域名,增加设置“缓存级别(Cache Level)”的规则为“绕过(Bypass)”。
该规则的目的是避免页面被Cloudflare缓存,这样后续修改后的页面可以随时更新给用户看到。
到这一步结束,Cloudflare中需要准备的东西就告一段落了,接下来就是准备邮件服务器。
4. EwoMail部署和配置
EwoMail是一个开源的邮件服务器软件,主要为了帮助用户进行网络钓鱼测试与模拟攻击演练,它提供一个可以用于发送和接收邮件的环境,特别适合在进行涉及邮件服务的渗透测试时使用。
1) 关闭SELinux
在/etc/sysconfig/selinux中进行修改,将SELINUX=enforcing 改为 SELINUX=disabled。
SELinux(Security-Enhanced Linux)是一个内核级的安全机制,它的主要作用是通过实施强制访问控制(Mandatory Access Control,MAC)策略,对系统中所有进程和资源进行细粒度的权限管理,从而提高系统安全性。但常常会与一些应用产生兼容性问题,因此这里需要检查并确认该选项为关闭状态。
2) git安装EwoMail
使用git下载EwoMail的官方安装包,并进入到安装目录。
git clone https://github.com/gyxuehu/EwoMail
cd /ewomail/install
./start.sh ***.com
3) 增加hosts配置
修改系统中的/etc/hosts文件,将下面一行添加到文件的最后,需要注意空格,将*替换为之前在Cloudflare的DNS记录中填写的几个域名,在域名解析时候优先解析到本地服务器。
127.0.0.1 mail.***.*** smtp.***.*** imap.***.***
4) 创建邮箱账号
安装完成后,使用浏览器打开http://ip:8010,EwoMail的默认账号是admin,默认密码是ewomail123,推荐登录后及时修改账号密码,避免受到弱口令攻击。
登录成功后在左侧的邮箱添加中进行添加钓鱼用的邮箱地址和密码,这里笔者用QQ邮箱进行演示,故姓名写的是QQ安全中心。
创建邮箱域名的页面中需要填写之前购买的主域名。
邮箱系统设置中按照之前DNS解析配置的内容添加对应的域名即可。
5) 登陆邮箱
邮箱添加完成就可以使用添加的邮箱登陆邮箱系统了,访问http://ip:8000进行邮箱登陆,输入刚创建的邮箱账号,并写一份测试邮件进行测试,看邮件是否可以正常发送。
5. Gophish钓鱼框架
Gophish是一款开源的网络钓鱼框架,专为企业和渗透测试人员设计,旨在帮助企业评估并提高对网络钓鱼攻击的防御能力,它提供了快速、轻松地设置和执行网络钓鱼攻击以及安全意识培训的能力。Gophish基于Go语言编写,具备低系统依赖特性,能够在多种操作系统上运行,包括Linux、Windows和Mac OS等主流系统。
1) 安装配置Gophish
前往GitHub(https://github.com/gophish/gophish/releases)进行下载,下载后解压即可。
因为我们的服务器在公网,所以需要修改应用配置让所有用户都可以访问,在目录中找到config.json,将“listen_url”修改为0.0.0.0:3333即可。
最后运行程序:
./gophish
运行成功后前往http://ip:3333进行访问登录,默认的账号密码是admin/gophish,如果无法访问可能是服务器没有开放3333端口,需要在策略中将3333端口开启。登录后第一时间修改默认账号密码,避免遭受弱口令攻击。
2) 创建邮箱账号
name:邮箱的名字
from:对方看到的邮箱名,比如你想让他看到管理员就填[email protected],注意xxx.com需要替换成自己的域名。
host:填自己的smtp.xxx.com:25(将xxx.com替换为自己的域名)
username和password:填写刚刚创建的邮箱密码。
email headers:这是邮件客户端的标识,通常用于标识邮件是由哪个邮件客户端发送的。
3) 创建钓鱼页面
在左侧菜单栏中选择landing pages,选择添加页面,这个页面即是钓鱼邮件中看到的页面。
也可以在这里选择import site,输入URL导入URL的页面,比如http://mail.qq.com。
复制完成后点击右上角图标可以查看复制页面的效果,复制完成后效果和真实页面一模一样。
4) 创建邮件模版
在Email Templates中点击添加new template,在新建邮件的页面中,可以直接导入邮件,需要将正常邮件另存为eml格式,然后通过txt将里面的值复制出来,粘贴到import email中。
这里有一个小技巧,如果你想伪装成系统管理员,但是又不知道对方公司的邮件格式和系统管理员名称(不一定所有的管理员都叫admin),比如QQ安全中心的就是accounts。
这个时候你可以注册目标任意一个系统的账号,在里面寻找添加邮箱的选项(任何可以使系统发送邮件给你的地方都可以),如果运气好的话它需要给你发送一份确认邮件,这时候你就收到了目标的邮件模版和系统通知邮箱。
四、攻击测试
首先,需要收集目标用户的邮箱,然后在Users & Groups中进行添加,新建分组,然后导入收集到的邮箱,这里笔者使用自己的邮箱进行测试。
添加完成后就可以开始钓鱼任务了。点击campagins新建任务,选择之前配置好的邮件模版,发送邮箱和钓鱼页面,时间可以选择定时发送,不修改的话就是立即发送,URL填写我们之前在Cloudfare中设置好的域名,HTTPS可以让邮件看起来更真实,而且CDN可以防止被溯源。
发送完成后就等用户收到钓鱼邮件后点击上钩了,在任务页面中可以查看钓鱼邮件发送的状态。
笔者的邮箱这个时候已经收到钓鱼邮件,点击邮件中的链接测试一下,这个时候看系统的后台数据,可以看到目标已经点击链接了,还可以看到钓鱼目标的其他详细信息。
五、总结
整个钓鱼邮件测试过程的难点在于需要用心去准备钓鱼页面和邮件模板,尽量做到每个细节都尽可能相似,这样才不会引起怀疑。邮件伪造得越好,目标用户就越容易上钩。
在日常中,识别钓鱼邮件的最好方法就是确认域名是否正确(伪造邮箱的除外)。
此外,检查邮件的发件人信息、邮件内容的格式和语言风格也非常重要。正规的邮件通常会有专业的格式和准确无误的语言表达,而钓鱼邮件往往在这些方面存在破绽。
同时,留意邮件中是否有不寻常的链接或附件,以及是否要求提供敏感信息,这些都是识别钓鱼邮件的关键点。通过这些方法,可以有效提高识别钓鱼邮件的能力,保护个人信息和账户安全。
本文只为知识和技术探讨,请勿利用网络钓鱼进行非法活动,利用本文所提供的技术信息造成的任何直接或间接损失,均由使用者本人承担,文章作者不为此承担任何责任。
原文始发于微信公众号(洞源实验室):从零构建高仿真网络钓鱼测试
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论