记一次使用gophish开展的钓鱼演练

news2024/12/27 13:16:15

这周接到客户要求,组织一次钓鱼演练,要求是发送钓鱼邮件钓取用户账号及个人信息。用户提交后,跳转至警告界面,以此来提高客户单位针对钓鱼邮件的防范意识。

与客户沟通后得知他们企业内部是由邮箱网关的,那么就意味着大批量将钓鱼邮件发送至目标邮箱中是难以做到的,但沟通后客户同意将我报备的IP和域名添加进白名单,这样能解决邮件能否成功接收这一大难题了。因此这里使用gophish进行钓鱼邮件演练,使用该工具的好处在于:

  1. 可以快速部署一次钓鱼行动

  2. 获取到的数据信息很直观,UI交互合理

此外还需要我们做好如下两个准备。

前期准备:

1.域名申请

这里使用的是godaddy来申请的域名。域名选择上尽量选择与客户域名相似。例如Think.com可以考虑使用Thlnk.com、Th1nk.com来掩人耳目,或者使用IDN伪造域名手段。

IDN伪造域名手段

这里浅析一下该手段:

早期的DNS(Domain Name System)是只支持英文域名解析。在IDNs(国际化域名Internationalized Domain Names)推出以后,为了保证兼容以前的DNS,所以,对IDNs进行punycode转码,转码后的punycode就由26个字母+10个数字,还有“-”组成。

其实就是将unicode编码转化成Punycode,而转换后的Punycode在浏览器中显示的是unicode编码后的字符。

如我们想有个тhink.com域名,可以申请xn--hink-p6d.com

这里推荐使用网站直接转换:https://www.cha127.com/cndm/?decoded=&encode=Encode+>>

图片

但不同浏览器在针对IDN域名伪造这个手段上,有不同的防护策略。火狐中并未对IDN伪造进行防护,因此如https://www.xn--80ak6aa92e.com/这个域名,就显示的是https://www.аррӏе.com/

图片

而谷歌会先弹出访问警告,忽略警告后访问后仍显示的是https://www.xn--80ak6aa92e.com/

图片

edge同谷歌一样,虽然不警告,但最后显示的也是https://www.xn--80ak6aa92e.com/

但如果仅想为邮箱服务器搞个域名,可以直接使用申请 тhink.com。这种类似字符可以在wiki中找到:https://zh.wikipedia.org/wiki/Unicode字符列表

2.服务器

服务器选择上需要注意以下3点

  1. 配置 如果同时部署上邮箱服务器和gophish,且邮箱服务部署的若是ewomail,则推荐2核4g,最低2核2g,不然会很卡

  2. 购买途径 购买途径方面根据客户需求择定,考虑数据安全则使用国内的,使用国外的vps好处就是域名解析不需要备案。如果短期需要备上案,尽量选择国外vps

  3. 25端口是否放开 不少服务器的25端口默认是不放开的,只有向官方申请工单才行。如果为了避免麻烦,可以先搜索下每家服务器的端口默认限制情况。我用过的腾讯云和国外的justhost都是可以默认放开25端口的

ewomail部署

以上两个步骤完成后,就可以优先部署上邮箱服务了。这里选用的ewomail,官方推荐使用centos进行安装,所以我选择的vps也是centos的。

安装过程全程参考官方文档即可:

http://doc.ewomail.com/docs/ewomail/install

部署好后需要添加邮箱用户或是直接使用admin用户进行后续邮件发送也可以。

下图为官方提供的域名dns解析记录

图片

设置完解析,邮件能成功发送后,即可进入下一步了。

gophish部署

邮箱服务搭建好后,就需要部署gophish了。以下是gophish搭建命令,还是相当快捷的。如果是centos安装,可能会报centos /lib64/libc.so.6: version GLIBC_2.28' not found的错误。此处参考链接进行解决即可:https://www.cnblogs.com/FengZeng666/p/15989106.html

wget https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip
mkdir gophish
unzip gophish-v0.12.1-linux-64bit.zip -d ./gophish
cd gophish/
vim config.json 
chmod +x gophish
nohup ./gophish &

此处的的配置文件根据实际需求进行填写,无特殊要求仅需要更改注释内容即可。

{
        "admin_server": {
                "listen_url": "0.0.0.0:3333", //管理后台放行ip
                "use_tls": true,
                "cert_path": "gophish_admin.crt",
                "key_path": "gophish_admin.key",
                "trusted_origins": []
        },
        "phish_server": {
                "listen_url": "0.0.0.0:88",  //伪造界面放行ip
                "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": ""
        }
}

运行成功后查看nohup.out文件,gophish首次使用会随机生成密码,登录后台后可更改密码

gophish官方文档[1]

项目中 常用到的功能模块为DashboardCampaignsuers & GroupsEmail TemplatesLanding PagesSending Profiles

Sending Profiles(配置邮件发送凭证)

图片

添加配置如上,例如申请的域名为abc.com,则成功搭建个人邮箱服务器后,依次填入[anything]<[anything]mail.abc.com>,smtp.mail.abc.com:25,用户账号密码,邮件头部分可根据需要进行添加。

user&group(添加目标邮箱)

图片

添加需要发送的目标邮箱,支持csv导入。仅需填入Email即可

Landing Pages(伪造页面)

添加需要伪造的界面

图片

伪造页面是钓鱼的一个核心内容,页面的仿真程度将决定鱼儿是否上钩,下面是客户要求伪造的邮箱网站

图片

网站伪造根据需求进行选择不同方案,一般项目在一周甚至是2-3天左右,单纯手写前端的话时间投入和收益不成正比。直接ctrl+s保存的网站大部分效果不好,因为很多界面都是通过渲染得到。这次项目中使用了以下三种方案供参考:

方案一:

直接在landing pages页面导入界面,gophish会自行仿造目标网站。此处碰到两个问题点,1.网站项目缺失,显示如下

图片

静态资源加载问题获取不到是相对好解决的,可以考虑将前端需要的js、背景图放置在vps上再去获取即可。放置路径可以是gophish下的static/endpoint,此时前端引用时的路径应为http[s]://ip or domain/static/filename

但在获取密码环节出了问题,gophish抓取密码的原理是寻找form表单,获取到其中的input字段。因此很多时候,明明伪造的网站,受害者提交了信息,但却未收到数据,很大可能是因为前端没有构造出符合规定的form表单。此处的原因则是登录使用的是iframe调用的外部资源。

图片

方案二:

使用谷歌插件:Save Page WeSingleFile拷贝目标页面。此方法的优势在于伪造的静态页面表现优异,其原理类似于将网站部分静态图片或资源直接base64加密后保存在单个html中。

图片

缺点显而易见,直接用插件保存下来网站会“失真”,不能很好的配合gophish抓取密码。因此这次项目中该方案就不能很好的实现form表单,虽然有尝试在上图源码中进行修改,但未能奏效,绝大部分html文件连编辑器也无法格式化,大量杂乱的内容改起来也更加费时费力。也是因为该系统使用了iframe的关系,这次拷贝下来的html内容比之前拷贝到的文件内容要更乱更杂。

以往项目案例中,使用插件能很好的更改

例如如下网页中自带了form表单,此时使用插件能很好的仿造并改过。

图片

修改表单,添加重要字段以便gophish识别。很多前端拷贝下来的提交按钮均是button,这种情况是需要更改为input标签的submit类型。

图片

修改后,能成功获取到用户输入内容

图片

方案三:

一半自动+一半人工的方式

使用了https://github.com/Threezh1/SiteCopy,本质跟crtl+s保存网站一致,但更加方便。保存后的网站效果跟方案一类似,再对拷贝下来的前端代码进行修改(不可避免),对照着原网站的css进行抄袭,基本上能模拟出原网站界面。

切记需要有如下几个关键标签

<form action="" method="post" name="form">
    <input name="username" type="text"/><br/>
    <input name="password" type="password"/><br/>
    <input id="login" name="login" type="submit" value="Login"/> 
</form>

ps:写文章时发现可能在方法一的基础上进行手动添加修改可能更加便利

Email Templates(编辑邮件内容)

添加邮件发送模板

图片

可支持导入邮件,如果需要制作一份比较完美的钓鱼邮件可自行先设计好后,保存为eml文件,再进行导入。

Add tracking image是在钓鱼邮件末添加一个跟踪图像,用来跟踪受害用户是否打开了收到的钓鱼邮件。

客户需求是将链接放置在邮件中,调取受害者输入信息,因此这里crtl+k添加了链接,URL添加{{.URL}}即可。

图片

Campaigns(任务部署)

图片

任务部署的URL填写当前VPS ip(或解析的域名)和gophish部署端口。

Launch Date和Send Emails By用来控制邮件发送时间,gophish会根据两个时间间隔长度,来调控邮件发送的速率,间隔越长相对的发送速率就越慢。

这里推荐将Send Emails By的值设置在一个合理的时间范围内。将邮件速率控制在一分钟5-10封,速率过快的话非常有可能出现邮件发送失败,到达不了用户邮箱的情况。

Dashboard(成果面板)

部署完后就是静候佳音,等待鱼儿上钩了。最后在Dashboard中可以很直观的看到用户打开邮件、点击链接、提交数据等行为的对应数量。

可以看到成果还是颇丰的,也算是圆满完成了一次钓鱼演练。

图片

参考资料

[1]

gophish官方文档: https://docs.getgophish.com/      

 

加下方wx,拉你一起进群学习

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/820706.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

类的实例化

类的实例化 class Date { public:void Init(int year, int month, int day){_year year;_month month;_day day;}private:int _year;int _month;int _day; //这只是函数的一个声明并没有定义 };上面是一个类&#xff0c;我们可以把有花括号括起来的叫做一个域&#xff…

python scrapy框架实现某品牌数据采集

某品牌数据采集 采集需求 地址&#xff1a;http://www.winshangdata.com/brandList 需求&#xff1a;用scrapy框架采集本站数据&#xff0c;至少抓取5个分类&#xff0c;数据量要求5000以上 采集字段&#xff1a;标题、创建时间、开店方式、合作期限、面积要求 网页分析 …

HawkEye设备智能维保平台:助力制药行业设备管理实现数字化转型

随着科技的不断进步和市场竞争的日益激烈&#xff0c;制药行业的设备管理的数字化转型已经成为一个不可逆转的趋势。尤其是在疫情时代&#xff0c;制药企业肩负着重大的社会责任&#xff0c;致使其设备管理的数字化转型之路迫在眉睫。 设备管理的数字化不仅可以提高企业的生产效…

Java实战之网上书店管理系统的实现

目录 1.效果展示2.需求功能3.系统总体设计及部分代码 3.1登录模块设计3.2新用户的注册3.3图书添加模块3.4图书添加事件3.5买家信息维护3.6订单管理模块4.数据库设计 4.1系统数据库设计4.2系统E-R图设计5.JDBC连接数据库 1.效果展示 2.需求功能 用户可以进行注册登陆系统&…

文心大模型企业应用私享会·上海站:共话大模型前沿技术与产业应用创新

当前&#xff0c;人工智能已经成为新一轮科技革命和产业变革的重要驱动力量&#xff0c;基于强算法、大算力和大数据的大模型成为人工智能发展的主流方向。 7月28日下午&#xff0c;“文心大模型企业应用私享会-上海站”于百度飞桨&#xff08;张江&#xff09;人工智能产业赋能…

如何压缩图片大小?最新图片压缩技巧分享

现在很多平台对于上传的图片大小都有限制&#xff0c;比如不能超过20k&#xff0c;当图片大小超出该值时就需要进行压缩&#xff0c;下面就针对这个问题给大家分享几个简单实用的图片压缩方法&#xff0c;需要的朋友一起来Get吧~ 一、画图工具 画图是Windows系统自带的工具&am…

BugKu CTF(杂项篇MISC)—善用工具

BugKu CTF(杂项篇MISC)—善用工具 描 述: webp。 下载压缩包。解压得到以后3个文件。 一、工具 十六进制编辑工具 010 editor Free_File_Camouflage图片隐写工具 二、解题思路 1.先看看hint.png&#xff0c;发现打不开&#xff0c;用010 editor编辑器打开是乱码。属性也没…

ipad手写笔有必要买苹果原装吗?平价电容笔推荐

目前&#xff0c;市场上的电容笔品牌越来越多&#xff0c;我们在挑选的时候&#xff0c;很容易就会被坑&#xff0c;比如说&#xff0c;我们买到的那些书写时经常会写字断触&#xff0c;或是防误触功能失效。因此我们在购买时一定要擦亮眼睛。至于那些把ipad当成学习工具的人&a…

展销系统springboot vue展会新闻场地管理java源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 展销系统springboot vue 系统有3权限&#xff1a;管理…

【Java练习题汇总】《第一行代码JAVA》综合测试三,汇总Java练习题

Java练习题 综合测试三 1️⃣ 综合测试三 1️⃣ 综合测试三 线程的启动方法是( )。 A. run() B. start() C. begin() D. accept() Thread 类提供表示线程优先级的静态常量&#xff0c;代表普通优先级的静态常量是( )。 A. MAX_PRIORITY B. MIN_PRIORITY C. NORMAL_PRIORITY D…

亚马逊怎么样下单风控最低

在下单过程中&#xff0c;亚马逊会使用风控措施以保护用户和平台的安全。这些风控措施可能会随着时间和情况的变化而调整&#xff0c;因此最低风控标准也可能会随之改变。 要确保顺利下单&#xff0c;你可以尝试遵循以下几点建议&#xff1a; 1、使用真实有效的个人信息&#…

限流式保护器在古建筑电气火灾中的应用

安科瑞 华楠 【摘要】针对文物古建筑本身火灾危险性大&#xff0c;并且其内部电气问题较多&#xff0c;增加了火灾危险性的特点&#xff0c;提出了预防电气火灾的措施。 【关键词】古建筑&#xff1b;电气防火&#xff1b;限流式保护器&#xff1b; 文物古建筑是中华民族历史文…

Spring的@Scheduled

Spring的Scheduled的默认线程池数量为1&#xff0c;也就是说定时任务是单线程执行的。这意味着最多同时只有一个任务在执行。当一个任务还在执行时&#xff0c;其他任务会等待其完成&#xff0c;然后按照其预定的执行策略依次执行。 测试代码&#xff1a; 启动类上加注解Enab…

ffmpeg + nginx 实现rtsp视频流转m3u8视频流,转码推流(linux)

FFmpeg即是一款音视频编解码工具&#xff0c;同时也是一组音视频编码开发套件&#xff0c;作为编码开发套件&#xff0c;它为开发者提供了丰富的音视频处理的调用接口。 FFmpeg提供了多种媒体格式的封装和解封装&#xff0c;包括多种音视频编码、多种协议的流媒体、多种多彩格式…

【Spring框架】SpringMVC

目录 什么是Spring MVC实现客户端和程序之间的“连接”1.1 RequestMapping1.2GetMapping1.3PostMapping 获取参数2.1.1 获取单个参数2.1.2 获取多个参数2.1.3 获取对象2.2 后端参数重命名2.3 RequestBody 接收JSON对象2.4 获取URL中参数PathVariable2.5 上传⽂件RequestPart2.6…

机器学习深度学习——数值稳定性和模型化参数(详细数学推导)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——Dropout &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习 希望文章对你们有所帮助 这一部…

Leetcode每日一题:141. 环形链表、142. 环形链表 II、143. 重排链表(2023.7.29、30、31 C++)

目录 141. 环形链表 问题描述&#xff1a; 实现代码与解析&#xff1a; 快慢指针&#xff1a; 原理思路&#xff1a; 142. 环形链表 II 问题描述&#xff1a; 实现代码与解析&#xff1a; 快慢指针 原理思路&#xff1a; 143. 重排链表 题目描述&#xff1a; 实现…

Flask简介与基础入门

一、了解框架 Flask作为Web框架&#xff0c;它的作用主要是为了开发Web应用程序。那么我们首先来了解下Web应用程序。Web应用程序 (World Wide Web)诞生最初的目的&#xff0c;是为了利用互联网交流工作文档。 1、一切从客户端发起请求开始。 所有Flask程序都必须创建一个程序…

HW2: LibriSpeech phoneme classification

任务描述 音位分类预测&#xff08;Phoneme classification&#xff09;&#xff0c;通过语音数据&#xff0c;预测音位。音位&#xff08;phoneme&#xff09;&#xff0c;是人类某一种语言中能够区别意义的最小语音单位&#xff0c;是音位学分析的基础概念。每种语言都有一套…

【CesiumJS材质】(2)图片横向移动

效果示例 要素说明&#xff1a; 代码 /** Date: 2023-07-19 11:15:22* LastEditors: ReBeX 420659880qq.com* LastEditTime: 2023-07-28 12:08:58* FilePath: \cesium-tyro-blog\src\utils\Material\FlowPictureMaterialProperty.js* Description: 流动纹理/图片材质*/ imp…