原计划是学java的,但写这篇文章的前一天,看了一部叫whoami黑客电影,感觉顶级黑客都是社工大佬,有很多经典台词:

“只要敢做就能赢”,

“黑客技术就像魔术,处处充满了欺骗”,

“每个人都只看到他愿意看到的”,

“外面的世界有太多的不确定,但是人可以成为自己想要成为的人,成为任何人”,

“人类才是系统中最大的漏洞。”

不知不觉中,让我萌生了社工的想法。

加之今天又是愚人节,是个搞事情的好日子🤭

而且更有意思的是今天凌晨我的室友居然收到了钓鱼邮件,还是他认识的人发的,于是请教了一下用的什么来做的钓鱼,便去学了学

Gophish搭建

Gophish 是一个功能强大的开源网络钓🐟框架。

1.下载

1
wget https://github.com/gophish/gophish/releases/download/v0.11.0/gophish-v0.11.0-linux-64bit.zip

2.修改配置文件config.json

要注意:

  • admin_server 把 127.0.0.1 改为 0.0.0.0,然后最好不要使用默 认3333 端口,亲测这个端口可能因为某种人为因素不通,改为 443 是最稳的。
  • listen_url 也要是 0.0.0.0,如果 80 端口被占用了可以改为其他端口比如 81。
  • contact_address 不是一定要加上的,可以加一个。

image-20220401105632720

3.运行

./gophish 运行(如果不行就加个sudo)

image-20220401114347207

这里注意一下:

最新版本的gophsih(v0.11.0)删除了默认密码“ gophish”。取而代之的是,在首次启动Gophish时会随机生成一个初始密码并将其打印在终端中

初始随机密码:f24c2b1a758b565b

4.后台登录

这里需要注意,要用https,不然访问不了。https://xxx.xxx.xxx.xxx:443

image-20220401112046516

使用账号密码 admin f24c2b1a758b565b 来 login

登入后需要修改,改为f24c2b1a758b565b9

购买近似域名

我这里因为没钱就没买近似域名,就用之前买的域名,QAQ

image-20220401122417093

邮件服务器搭建

其实 QQ 邮箱也有域名邮箱的功能,但是 QQ 邮箱对钓鱼有检测、会被封的,所以我们还是自己搭。

我们 Ubuntu 还是使用 Postfix+mailutils

参考:https://blog.csdn.net/sd4015700/article/details/21454729

在搭建 gophish 的同一台 VPS 上开始搭建邮件服务器

1.安装Postfix

1
apt-get install postfix

↑↓键来选择,→键会到’ok’

image-20220401121512674

image-20220401121551682

image-20220401125019264

2.安装mailx软件包

1
apt-get install mailutils

3.增加测试用户 fmaster

1
2
3
4
5
6
7
用户一:
useradd -m -s /bin/bash fmaster
passwd fmaster

用户二
useradd -m -s /bin/bash CET报名官方客服
passwd "CET报名官方客服"

测试

注意这里腾讯云的VPS需要对25端口解封,不然使用telnet来检测时会一直不通

image-20220401141808606

test1

image-20220401142728262

test2

image-20220401143142162

去QQ邮箱查看,真的收到邮件了!!!

image-20220401143222900

然后QQ回复一封,看看我们的邮件服务器能不能收到

image-20220401143428358

服务端也确实能收到回信

image-20220401143657633

Gophish 活动建立

Sending Profiles

image-20220401204550857

Landing Pages(钓鱼网址)

image-20220401204724588

若是import导入乱码,可以用google插件Singlefile来对网页前端进行爬取

重点

Capture Submitted Data:
通常,进行钓鱼的目的往往是捕获受害用户的用户名及密码,因此,在点击Save Page之前,记得一定要勾选Capture Submitted Data
当勾选了Capture Submitted Data后,页面会多出一个Capture Passwords的选项,显然是捕获密码。通常,可以选择勾选上以验证账号的可用性。如果仅仅是测试并统计受害用户是否提交数据而不泄露账号隐私,则可以不用勾选
另外,当勾选了Capture Submitted Data后,页面还会多出一个Redirect to,其作用是当受害用户点击提交表单后,将页面重定向到指定的URL。可以填写被伪造网站的URL,营造出一种受害用户第一次填写账号密码填错的感觉
(一般来说,当一个登录页面提交的表单数据与数据库中不一致时,登录页面的URL会被添加上一个出错参数,以提示用户账号或密码出错,所以在Redirect to中,最好填写带出错参数的URL)

踩坑汇总

1
2
3
4
5
6
7
8
9
(必看)经验之谈 · 注意事项
在导入真实网站来作为钓鱼页面时,绝大多数情况下并非仅通过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标签需要被包含在<form>中,还需满足该<input>存在name属性。例如<input name="username">,否则会因为没有字段名而导致value被忽略
【密码被加密】针对https页面的import,通常密码会进行加密处理,这时需要通过审计导入的前端代码,找到加密的JavaScript函数(多数情况存在于单独的js文件中,通过src引入),将其在gophish的HTML编辑框中删除,阻止表单数据被加密
以上5点是在实践中总结出来的宝贵经验,或许还有其他许多坑未填,但所有的坑通常都围绕在<form><input /></form>结构中,所以如果遇到新坑,先将该结构排查一遍,还是不行,再另辟蹊径

Email Templates

image-20220401204838592

{{.URL}}这里会自动对应钓鱼网址(Loading Page)

gophish为编辑邮件内容提供了两种方式,第一种就是Import Email

用户可以先在自己的邮箱系统中设计好钓鱼邮件,然后发送给自己或其他伙伴,收到设计好的邮件后,打开并选择导出为eml文件或者显示邮件原文,然后将内容复制到gophish的Import Email中,即可将设计好的钓鱼邮件导入

内容编辑框是编写邮件内容的第二种模式

Users & Groups

导入发送目标

image-20220401205008996

Campaigns

制作Campaigns来发送邮箱并监测

image-20220401212100345

这里没想到居然逮到两个倒霉蛋输入了自己的真实密码(笑死我了🤣),今天的愚人节圆满了

image-20220401212251916

受害者视角

image-20220401212547713

输入用户名密码后提交,我的Gophish就会接收到

image-20220401212628866

image-20220401212956468

总结

历时一天,终于时初次体验了一把社工的乐趣,虽然只是简单的🎣。不得不说,人才是最大的bug,大家一定要有网络安全意识,连接不要随便点,看清网址是什么!

在网络信息的世界里,重要的是有一双会发现的大👀

参考

gophish+自己搭建邮件服务器

钓鱼工具gophish史上最详细教程

Gophish钓鱼平台和邮件服务器搭建

钓鱼工具-gophish使用