gophish钓鱼
参考1
参考2
参考3
Gophish官网并下载适用于Linux的版本
环境介绍
Ubuntu22图形化/16G/4U/120G
172.16.186.137/24
安装
rambo@test1:~$ mkdir gophish && cd gophish
rambo@test1:~/gophish$ wget https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip
rambo@test1:~/gophish$ tar -zxvf gophish-v0.12.1-linux-64bit.zip
rambo@test1:~/gophish$
rambo@test1:~/gophish$ vim config.json
{
"admin_server": {
"listen_url": "172.16.186.137:3333", # 把这里修改成本机的IP+3333端口
"use_tls": true,
"cert_path": "gophish_admin.crt",
"key_path": "gophish_admin.key",
"trusted_origins": []
},
"phish_server": {
"listen_url": "0.0.0.0:80",
"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
rambo@test1:~/gophish$ sudo ./gophish
time="2024-06-12T20:38:18+08:00" level=warning msg="No contact address has been configured."
time="2024-06-12T20:38:18+08:00" level=warning msg="Please consider adding a contact_address entry in your config.json"
goose: no migrations to run. current version: 20220321133237
# 这里会显示有登录的用户名和密码,只有第一次登录会显示这个,后面会要求更改!!!!!!
time="2024-06-12T20:38:18+08:00" level=info msg="Please login with the username admin and the password af4d2985df814f73"
time="2024-06-12T20:38:18+08:00" level=info msg="Starting admin server at https://172.16.186.137:3333"
time="2024-06-12T20:38:18+08:00" level=info msg="Starting phishing server at http://0.0.0.0:80"
time="2024-06-12T20:38:18+08:00" level=info msg="Background Worker Started Successfully - Waiting for Campaigns"
time="2024-06-12T20:38:18+08:00" level=info msg="Starting IMAP monitor manager"
time="2024-06-12T20:38:18+08:00" level=info msg="Starting new IMAP monitor for user admin"
2024/06/12 20:38:36 http: TLS handshake error from 172.16.186.1:55994: read tcp 172.16.186.137:3333->172.16.186.1:55994: i/o timeout
2024/06/12 20:38:43 http: TLS handshake error from 172.16.186.1:46270: remote error: tls: unknown certificate
2024/06/12 20:38:43 http: TLS handshake error from 172.16.186.1:46278: remote error: tls: unknown certificate
2024/06/12 20:38:49 http: TLS handshake error from 172.16.186.1:37186: remote error: tls: unknown certificate
2024/06/12 20:38:49 http: TLS handshake error from 172.16.186.1:37192: remote error: tls: unknown certificate
time="2024-06-12T20:38:49+08:00" level=info msg="172.16.186.1 - - [12/Jun/2024:20:38:49 +0800] \"GET / HTTP/2.0\" 307 51 \"\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36\""
time="2024-06-12T20:38:49+08:00" level=info msg="172.16.186.1 - - [12/Jun/2024:20:38:49 +0800] \"GET /login?next=%2F HTTP/2.0\" 200 1037 \"\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36\""
.....
....
里面主要使用的有如下几个模块:
Dashboard 仪表盘,展示已发动的攻击情况和受害者信息
Campaigns 在此配置每次要发起的攻击
Users& Groups 在此设置目标受害者的邮箱
EmailTemplates 在此设置钓鱼邮件的模板
LandingPages 要在此设置钓鱼页面模板
SendingProfiles 在此配置发送钓鱼邮件的邮箱
1、设置发件人的邮箱
- 使用SendingProfiles模块来将用来发送钓鱼邮件的邮箱配置到gophish。
点击New Profiles添加新的邮箱,测试可以使用QQ或者163邮箱(需要设置开启“SMTP服务”),但是实际攻击中,这会很容易被认出来,降低钓鱼攻击的成功率。可以注册与受害者邮箱域名类似的域名
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。
选择显示邮件原文可以看到;
- 修改前为gophish:
修改后为 QQMail 2.X:
**上面填好后点击Send Test Email来给自己发送测试邮件
之后可以在自己邮箱收到这样的测试邮件
注:使用阿里云的服务器时,可能会发送超时,并出现报错:Max connection attempts exceeded - dial tcp 14.18.175.202:25: i/o timeout,这是由于阿里云服务器关闭了25号端口,这个25号端口正是SMTP需要的端口。
2、编辑钓鱼邮件模板
编辑钓鱼邮件模板使用的模块为EmailTemplates ,该模块提供了两种方法编辑邮件内容,第一种是使用Import Email直接导入,另一种是手动编辑。点击New Template创建新的邮件模板
Import Email:
这种方法支持用户直接导入现有邮件的格式,打开并选择导出为eml文件或者显示邮件原文,然后将内容复制到gophish的Import Email中,即可将设计好的钓鱼邮件导入
勾选了ChangeLinks to Point to LandingPage之后,邮件模板中的链接会被替换为钓鱼网站的链接,当目标点击邮件中的链接后,会跳转到后续在LandingPages里配置的钓鱼页面里。
内容编辑器:
内容编辑器可以让你手动编辑钓鱼邮件,不过它更偏向于用来辅助第一种方法:对导入的邮件进行源码修改和预览
Add Files:
Add Files 是在发送的邮件中添加附件,一是可以添加相关文件提高邮件真实性,二是可以配合免杀木马诱导受害用户下载并打开。
3、制作钓鱼页面
钓鱼页面是配合钓鱼邮件使用的,钓鱼邮件的最终目的,通常是通过钓鱼邮件来使受害者点击链接进入精心构造的钓鱼页面,通过钓鱼页面来诱导用户输入敏感信息,如密码等;或者通过钓鱼邮件诱导用户点击下载邮件附件,以此来向受害用户主机植入病毒或木马等。
一般情况下,钓鱼页面都是类似于修改密码或者登录之类的页面,并且要和钓鱼页面所模仿的页面做到尽可能的一样。
和制作钓鱼邮件类似,制作钓鱼页面也有相应的两种方法:
import site:
通过输入url的方式来导入网站,这种方法可通过互联网自动抓取被伪造网站的前端代码。但是也会遇到各种各样的问题,如导入不全,或者中文出现乱码等情况。
内容编辑框:
和制作钓鱼邮件时一样,这里也可以直接编写或修改源码
正常情况下在导入页面后,会使用这个内容编辑框对源码进行修改微调。当然也能在这里直接现场写一个,因为导入再修改之类的太麻烦了,这里直接随便写了一个简单的html表单,方便演示。
<form method="post" action="" method="get">
<table>
<tr>
<td>用户名:</td>
<td>
<input type="text" name="user" value=""/>
</td>
<td>密码:</td>
<td>
<input type="password" name="passwd" value=""/>
</td>
<td>
<input type="submit" name="按钮名字" valer="值"/>
</td>
</tr>
</table>
</form>
Capture Submitted Data:
这个选项是获取提交的数据,毕竟钓鱼页面就是干这个的,一般都会勾上。这个选项勾上之后,又会多出几个选项,Capture Passwords是捕获密码,一般也一起勾上,有的时候搞钓鱼邮件应急演练,客户不让你获取他们的密码,只统计受害的人,那就不勾这个了。Redirect to表示用户做完提交操作后,页面跳转的地址,可以指向真正的官网登录页面,这样能减少受害者发现自身被钓鱼的可能性。
点击save page,钓鱼页面就制作完成了。这个页面实际上就在自己IP的80端口,只有你有公网IP其他人才能访问的到,搭建在自己主机里的话只有自己能访问的到。
4、设置目标用户
使用Users & Groups模块来设置钓鱼邮件的目标
可以单个导入,其中Email选项为必填,其他都可以不要
- 也可以批量导入:
- 先点击Download CSV Template下载gophish的导入模板
之后将邮件信息填入表格,再点击Bulk import Users来将表格里的信息批量导入。
5、创建钓鱼事件
在一切都准备好之后,就可以发送钓鱼邮件了,使用Campaigns模块,创建一个新的钓鱼活动
在这里面将之前配置的几个模块都填进去,选择钓鱼邮件模板、钓鱼页面、使用的邮箱、发送的目标组
URL:
url里面填写钓鱼邮件里面的超链接的URL,也就是受害者点击邮件模板里的链接后跳转到的页面。要是想让用户点击钓鱼邮件的链接之后跳转到自己设置的landing page里的钓鱼页面中,就要填写gophish所在服务器的IP,格式:http://主机IP,要是在自己本机部署的gophish,则可以直接填http://127.0.0.1。
点开钓鱼邮件的模板,查看源码也能看到,这里替换的是源码里的{{.URL}}字段。
Launch Date && Send Emails By
Launch Date顾名思义是设置发送邮件的时间,可以选择在什么时间发送。
另一个可选项 Send Emails By是配合Launch Date使用的,Send Emails By代表开始发送时间,Launch Date代表结束发送时间,所有邮件都会在这个时间段按分钟平均发送。假设这个时间段有10分钟,那么100封邮件就分成10份,每一分钟发10份。这样的发件策略可以防止因短时间大量邮件抵达目标邮箱而导致的垃圾邮件检测,甚至发件邮箱服务器IP被目标邮箱服务器封禁。
6、查看结果
点开Dashboard可以查看所有钓鱼活动(Campaigns)的数据统计。
在下方可以选择查看某一次活动的数据。
在这里可以看到有谁点开了邮件、有谁点击了邮件的、有谁往里面提交了数据等。
点击受害者栏的左边的小箭头,可以看到受害者提交的数据,还有操作系统的版本和浏览器版本信息。