概念
Gophish项目地址:https://github.com/gophish/gophish
Gophish官网地址:https://getgophish.com/
Gophish是为企业和渗透测试人员设计的开源网络钓鱼工具包。 它提供了快速,轻松地设置和执行网络钓鱼攻击以及安全意识培训的能力。
安装
wget //下载压缩包 mkdir gophish //创建文件夹 unzip gophish-v0.10.1-linux-64bit.zip -d ./gophish //解压 vi config.json //修改配置文件
{ //后台管理配置 "admin_server": { "listen_url": "0.0.0.0:3333", // 远程访问后台管理 "use_tls": true, "cert_path": "gophish_admin.crt", "key_path": "gophish_admin.key" }, "phish_server": { "listen_url": "0.0.0.0:81", //部署钓鱼页面 "use_tls": false, "cert_path": "example.crt", "key_path": "example.key" }, "db_name": "sqlite3", "db_path": "gophish.db", "migrations_prefix": "db/db_", "contact_address": "", "logging": { "filename": "", "level": "" } }
./gophish //运行脚本
访问
浏览器访问https://ip:3333
输入默认账密进行登录:admin/gophish
功能介绍
进入后台后,左边的栏目即代表各个功能,分别是Dashboard仪表板 、Campaigns钓鱼事件 、Users & Groups用户和组 、Email Templates邮件模板 Landing Pages钓鱼页面 、Sending Profiles发件策略六大功能 由于实际使用中并不是按照该顺序来配置各个功能,因此下面通过实际使用顺序来详细介绍各功能的使用方法
Sending Profiles 发件策略
Name:
Name字段是为新建的发件策略进行命名,不会影响到钓鱼的实施,建议以发件邮箱为名字,例如如果使用qq邮箱来发送钓鱼邮件,则Name字段可以写xxxxxx@qq.com
From:
From 是发件人,即钓鱼邮件所显示的发件人。(在实际使用中,一般需要进行近似域名伪造)这里为了容易理解,就暂时以qq邮箱为例,所以From字段可以写:test<xxxxxx@qq.com
Host:
Host 是smtp服务器的地址,格式是smtp.example.com:25,例如qq邮箱的smtp服务器地址为smtp.qq.com
//有的服务器25端口关闭,这里可用465端口发送,如smtp.qq.com:465
Username:
Username 是smtp服务认证的用户名,如果是qq邮箱,Username则是自己的qq邮箱号xxxx@qq.com
Password:
Password 是smtp服务认证的密码,例如qq邮箱,需要在登录qq邮箱后,点击 设置
- 账户
- 开启SMPT服务
生成授权码
,Password的值则可以填收到的授权码
Email Headers:
Email Headers 是自定义邮件头字段,例如邮件头的X-Mailer
字段,若不修改此字段的值,通过gophish发出的邮件,其邮件头的X-Mailer的值默认为gophish
配置好如下图
设置好以上字段,可以点击Send Test Email
来发送测试邮件,以检测smtp服务器是否认证通过
Landing Pages 钓鱼页面
完成钓鱼邮件的编写后,下一步则需要设计由邮件中超链接指向的钓鱼网页,点击New Page
新建页面
Name:
Name 是用于为当前新建的钓鱼页面命名
Import Site:
与钓鱼邮件模板的编辑一样,gophish为钓鱼页面的设计也提供了两种方式,第一种则是Import Site
点击Import Site后,填写被伪造网站的URL,再点击Import,即可通过互联网自动抓取被伪造网站的前端代码
这里以伪造XX大学电子邮箱登录界面为例,在Import Site中填写https://mail.XX.edu.cn/cgi-bin/loginpage,并点击import
内容编辑框:内容编辑框是编辑钓鱼页面的第二种方法,但是绝大多数情况下,它更偏向于用来辅助第一种方法,即对导入的页面进行源码修改以及预览。
Capture Submitted Data:
捕获受害用户的用户名及密码
捕获不到数据的原因:
【捕获不到提交的数据】导入后要在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标签需要被包含在<form>中,还需满足该<input>存在name属性。例如<input name="username">,否则会因为没有字段名而导致value被忽略
【密码被加密】针对https页面的import,通常密码会进行加密处理,这时需要通过审计导入的前端代码,找到加密的JavaScript函数(多数情况存在于单独的js文件中,通过src引入),将其在gophish的HTML编辑框中删除,阻止表单数据被加密
配置好如下
Email Templates 钓鱼邮件模板
Import Email:
gophish为编辑邮件内容提供了两种方式,第一种就是Import Email
用户可以先在自己的邮箱系统中设计好钓鱼邮件,然后发送给自己或其他伙伴,收到设计好的邮件后,打开并选择导出为eml文件或者显示邮件原文,然后将内容复制到gophish的Import Email中,即可将设计好的钓鱼邮件导入
在点击Import
之前需要勾选上Change Links to Point to Landing Page
,该功能实现了当创建钓鱼事件后,会将邮件中的超链接自动转变为钓鱼网站的URL
Subject:
Subject 是邮件的主题,通常为了提高邮件的真实性,需要自己去编造一个吸引人的主题。
内容编辑框:
内容编辑框是编写邮件内容的第二种模式,内容编辑框提供了Text和HTML两种模式来编写邮件内容,使用方式与正常的编辑器无异。其中HTML模式下的预览功能比较常用到,在编辑好内容后,点击预览,就可以清晰看到邮件呈现的具体内容以及格式
Add Tracking Image:
Add Tracking Image 是在钓鱼邮件末添加一个跟踪图像
,用来跟踪受害用户是否打开了收到的钓鱼邮件。默认情况下是勾选的,如果不勾选就无法跟踪到受害用户是否打开了钓鱼邮件
配置好如下
Users & Groups 用户和组
就是导入目标用户,这里就不多赘述
Campaigns 钓鱼事件
Name:
Name 是为新建的钓鱼事件进行命名
Email Template:
Email Template 即钓鱼邮件模板,这里选择刚刚上面编辑好的钓鱼邮件模板
Landing Page:
Landing Page 即钓鱼页面,这里选择刚刚上面编辑好的名为钓鱼页面1
的XX大学邮箱登录页面的钓鱼页面
URL:
是用来替换选定钓鱼邮件模板中超链接的值,该值指向部署了选定钓鱼页面的url网址。 简单来说,这里的URL需要填写当前运行gophish脚本主机的ip。 因为启动gophish后,gophish默认监听了3333和81端口,其中3333端口是后台管理系统,而81端口就是用来部署钓鱼页面的。 当URL填写了http://主机IP/,并成功创建了当前的钓鱼事件后。gophish会在主机的81端口部署当前钓鱼事件所选定的钓鱼页面,并在发送的钓鱼邮件里,将其中所有的超链接都替换成部署在80端口的钓鱼页面的url
其他地方依次填就行
实例测试
点击链接打开,是gophish部署的钓鱼页面
当对方输入账号密码后就能收到信息
网友评论