感谢大佬Gryph0n授权发布
Windows下安装GoPhish
0x02运行GoPhish:
双击目录下的gophish.exe启动gophish,这里需要保持小黑框不被关闭,关闭则脚本终止。
访问后台管理系统:
本地浏览器访问:https://127.0.0.1:3333 或 https://远程ip:3333 (注意使用https协议)
输入默认账密进行登录:admin/gophish
注:最新版本的gophsih(v0.11.0)删除了默认密码“ gophish”。取而代之的是,在首次启动Gophish时会随机生成一个初始密码并将其打印在终端中。
详情见:https://github.com/gophish/gophish/releases/tag/v0.11.0
访问钓鱼界面:
本地打开浏览器,访问http://127.0.0.1:80/ 或 http://远程ip:80/ 。
进入后台后,左边的栏目即代表各个功能,分别是Dashboard仪表板 、Campaigns钓鱼事件 、Users & Groups用户和组 、Email Templates邮件模板 、Landing Pages钓鱼页面 、Sending Profiles发件策略六大功能。
由于实际使用中并不是按照该顺序来配置各个功能,因此下面通过实际使用顺序来详细介绍各功能的使用方法。
点击New Profile新建一个策略,依次来填写各个字段。
Name:
Name字段是为新建的发件策略进行命名,不会影响到钓鱼的实施,建议以发件邮箱为名字,例如如果使用outlook邮箱来发送钓鱼邮件,则Name字段可以写[email protected] 。
Interface Type:
Interface Type 是接口类型,默认为SMTP类型且不可修改,因此需要发件邮箱开启SMTP服务。
From:
From 是发件人,即钓鱼邮件所显示的发件人。(在实际使用中,一般需要进行近似域名伪造)这里为了容易理解,就暂时以outlook邮箱为例,所以From字段可以写:test
Host:
Host 是smtp服务器的地址,格式是smtp.example.com:25,例如outlook邮箱的smtp服务器地址为smtp.outlook.com 。
Username:
Username 是smtp服务认证的用户名,如果是outlook邮箱,Username则是自己的outlook邮箱号[email protected] 。
Password:
Password 是smtp服务认证的密码,例如outlook邮箱,需要在登录outlook邮箱后,点击 设置 - 账户 - 开启SMPT服务 生成授权码,Password的值则可以填收到的授权码。
(可选)Email Headers:
Email Headers 是自定义邮件头字段,例如邮件头的X-Mailer字段,若不修改此字段的值,通过gophish发出的邮件,其邮件头的X-Mailer的值默认为gophish。
设置好以上字段,可以点击Send Test Email来发送测试邮件,以检测smtp服务器是否认证通过。
成功收到测试邮件:
至此,发件邮箱的配置已经完成。当然,在实际钓鱼中,不可能使用自己的outlook邮箱去发送钓鱼邮件。一是暴露自身身份,且邮件真实性低,二是outlook邮箱这类第三方邮箱对每个用户每日发件数存在限制。
因此,如果需要大批量去发送钓鱼邮件,最好的方式是使用自己的服务器,申请近似域名,搭建邮件服务器来发件。
Landing Pages 钓鱼页面
完成钓鱼邮件的编写后,下一步则需要设计由邮件中超链接指向的钓鱼网页,点击New Page新建页面 。
Name:
Name 是用于为当前新建的钓鱼页面命名,可以简单命名为钓鱼页面1
Import Site:
与钓鱼邮件模板的编辑一样,gophish为钓鱼页面的设计也提供了两种方式,第一种则是Import Site点击Import Site后,填写被伪造网站的URL,再点击Import,即可通过互联网自动抓取被伪造网站的前端代码
这里以伪造疫情期间个人所得税申报界面为例,在Import Site中填写https://www.XXX.gov.cn/ loginpage,并点击import
内容编辑框:
内容编辑框是编辑钓鱼页面的第二种方法,但是绝大多数情况下,它更偏向于用来辅助第一种方法,即对导入的页面进行源码修改以及预览。
由于编码的不同,通常直接通过Import Site导入的网站,其中文部分多少存在乱码现象,这时候就需要查看源码并手动修改过来。
(重点)Capture Submitted Data:
通常,进行钓鱼的目的往往是捕获受害用户的用户名及密码,因此,在点击Save Page之前,记得一定要勾选Capture Submitted Data 。
当勾选了Capture Submitted Data后,页面会多出一个Capture Passwords的选项,显然是捕获密码。通常,可以选择勾选上以验证账号的可用性。如果仅仅是测试并统计受害用户是否提交数据而不泄露账号隐私,则可以不用勾选。
另外,当勾选了Capture Submitted Data后,页面还会多出一个Redirect to,其作用是当受害用户点击提交表单后,将页面重定向到指定的URL。可以填写被伪造网站的URL,营造出一种受害用户第一次填写账号密码填错的感觉。
(一般来说,当一个登录页面提交的表单数据与数据库中不一致时,登录页面的URL会被添加上一个出错参数,以提示用户账号或密码出错,所以在Redirect to中,最好填写带出错参数的URL)
因此,令此处的Redirect to的值为https://www.XXX.gov.cn/ loginpagerrtype=1 。
0x03踩坑汇总
在导入真实网站来作为钓鱼页面时,绝大多数情况下并非仅通过Import就能够达到理想下的克隆,通过多次实践,总结出以下几点注意事项 。
【捕获不到提交的数据】导入后要在HTML编辑框的非Source模式下观察源码解析情况,如果明显发现存在许多地方未加载,则有可能导入的源码并非页面完全加载后的前端代码,而是一个半成品,需要通过浏览器二次解析,渲染未加载的DOM。这种情况下,除非能够直接爬取页面完全加载后的前端代码,否则无法利用gophish进行钓鱼,造成的原因是不满足第2点。
【捕获不到提交的数据】导入的前端源码,必须存在严格存在<form method="post" ···><input name="aaa" ··· /> ··· <input type="submit" ··· /></form>结构,即表单(POST方式)— Input标签(具有name属性)Input标签(submit类型)— 表单闭合的结构,如果不满足则无法捕获到提交的数据 。
【捕获不到提交的数据】在满足第2点的结构的情况下,还需要求<form method="post" ···>在浏览器解析渲染后(即预览情况下)不能包含action属性,或者action属性的值为空。
否则将会把表单数据提交给action指定的页面,而导致无法被捕获到 。
【捕获数据不齐全】对于需要被捕获的表单数据,除了input标签需要被包含在中,还需满足该存在name属性。例如<input name="username">,否则会因为没有字段名而导致value被忽略 。
【密码被加密】针对https页面的import,通常密码会进行加密处理,这时需要通过审计导入的前端代码,找到加密的JavaScript函数(多数情况存在于单独的js文件中,通过src引入),将其在gophish的HTML编辑框中删除,阻止表单数据被加密 。
以上5点是在实践中总结出来的宝贵经验,或许还有其他许多坑未填,但所有的坑通常都围绕在<form><input /></form>结构中,所以如果遇到新坑,先将该结构排查一遍,还是不行,再另辟蹊径。
Email Templates 钓鱼邮件模板
完成了邮箱配置之后,就可以使用gophish发送邮件了。所以,接下来需要去编写钓鱼邮件的内容 。
点击New Template新建钓鱼邮件模板,依次介绍填写各个字段 。
Name
同样的,这个字段是对当前新建的钓鱼邮件模板进行命名。
需要注意,在点击Import之前需要勾选上Change Links to Point to Landing Page,该功能实现了当创建钓鱼事件后,会将邮件中的超链接自动转变为钓鱼网站的URL 。
Subject
Subject 是邮件的主题,通常为了提高邮件的真实性,需要自己去编造一个吸引人的主题。这里简单填写成“疫情期间个税申报通知” 。
其中HTML模式下的预览功能比较常用到,在编辑好内容后,点击预览,就可以清晰看到邮件呈现的具体内容以及格式 。
当完成上面三个功能的内容编辑,钓鱼准备工作就已经完成了80%,Users & Groups 的作用是将钓鱼的目标邮箱导入gophish中准备发送 。
除了批量导入目标用户的邮箱,gophish也提供了单个邮箱的导入方法,这对于开始钓鱼前,钓鱼组内部测试十分方便,不需要繁琐的文件上传,直接填写Email即可,同样其余的Frist Name 、Last Name、Position可选填 。
在Campaigns中,可以新建钓鱼事件,并选择编辑好的钓鱼邮件模板,钓鱼页面,通过配置好的发件邮箱,将钓鱼邮件发送给目标用户组内的所有用户。
因为启动gophish后,gophish默认监听了3333和80端口,其中3333端口是后台管理系统,而80端口就是用来部署钓鱼页面的。
当URL填写了http://主机IP/,并成功创建了当前的钓鱼事件后。gophish会在主机的80端口部署当前钓鱼事件所选定的钓鱼页面,并在发送的钓鱼邮件里,将其中所有的超链接都替换成部署在80端口的钓鱼页面的url 。
那么经过以上设定,从9:00到9:04共有5个发件点,这5个发件点被50封邮件平分,即每个发件点将发送10封,也就是每分钟仅发送10封。
当创建了钓鱼事件后,Dashboard 会自动开始统计数据。统计的数据项包括邮件发送成功的数量及比率,邮件被打开的数量及比率,钓鱼链接被点击的数量及比率,账密数据被提交的数量和比率,以及收到电子邮件报告的数量和比率。另外,还有时间轴记录了每个行为发生的时间点。
https://docs.getgophish.com/user-guide/documentation/email-reporting
0x04第一次钓鱼:
至此,一次在gophish发起的钓鱼事件所需实施步骤就已经全部完成,接下来就等着鱼儿上钩。
熟悉了上面的各项功能,虽然可以进行简单的钓鱼,但对于仿真度、可信度要求较高的网络钓鱼还是不够的。但凡具有一定网络安全意识的人一般情况下都不会上钩,所以下面采用一个实际的案例来看看一个常规的钓鱼还需要额外做哪些工作。
配置完成后,创建钓鱼事件,因为发送量较大,需要设定Send Emails By 来限制每分钟的发信量,我们设定了10封/分钟的速度来发送,避免被识别成垃圾邮件。
完成所有字段填写后启动钓鱼事件,就开始缓缓地发送钓鱼邮件了···
原文始发于微信公众号(网安杂谈):钓鱼邮件Gophish系统实战指南
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论