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

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

与客户沟通后得知他们企业内部是由邮箱网关的,那么就意味着大批量将钓鱼邮件发送至目标邮箱中是难以做到的,但沟通后客户同意将我报备的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/      

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

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

相关文章

正点原子--STM32基本定时器学习笔记(1)

目录 1. 定时器概述 1.1 软件定时原理 1.2 定时器定时原理 1.3 定时器分类 1.4 定时器特性表 1.5 基本、通用、高级定时器的功能整体区别 2. 基本定时器简介 3. 基本定时器框图 时钟树分析 这部分是笔者对基本定时器的理论知识进行学习与总结&#xff01;主要记录学习…

UsernamePasswordAutheticationFilter源码解读和实践

UsernamePasswordAuthenticationFilter的目录 一、概述&#xff08;重点&#xff09;二、标红小步骤解读2.1 步骤1&#xff08;标红1&#xff09;2.1.1 AbstractAuthenticationProcessingFilter2.1.2 UsernamePasswordAuthenticationFilter 2.3 步骤2 和 步骤3&#xff08;标红…

【SpringBoot篇】解决Redis分布式锁的 误删问题 和 原子性问题

文章目录 &#x1f354;Redis的分布式锁&#x1f6f8;误删问题&#x1f388;解决方法&#x1f50e;代码实现 &#x1f6f8;原子性问题&#x1f339;Lua脚本 ⭐利用Java代码调用Lua脚本改造分布式锁&#x1f50e;代码实现 &#x1f354;Redis的分布式锁 Redis的分布式锁是通过利…

synchronized 浅读解析 一

引言 在学习synchronized前&#xff0c;我们实际上是需要先了解Java对象在jvm中的储存结构&#xff0c;在了解了它的实际储存方式后&#xff0c;再对后边的锁学习会有一个更好更深入的理解。 一、对象结构 我们为什么要知道什么是对象头 在学习synchronized的时候&#xff0c…

破除Github API接口的访问次数限制

破除Github API接口的访问次数限制 1、Github介绍2、Github API接口2.1 介绍2.2 使用方法 3、Github API访问限制3.1 访问限制原因3.2 访问限制类别 4、Github API访问限制破除4.1 限制破除原理4.2 限制破除示例 1、Github介绍 Github&#xff0c;是一个面向开源及私有软件项目…

提升你的PHP开发效率:探索JetBrains PhpStorm 2022的全新特性

在当今快速发展的软件开发领域&#xff0c;选择一个强大且高效的开发工具对于提升开发效率、保证代码质量至关重要。对于PHP开发者来说&#xff0c;JetBrains PhpStorm一直是市场上最受欢迎的IDE之一。随着JetBrains PhpStorm 2022的发布&#xff0c;这款工具带来了一系列创新功…

MybatisPlus快速入门及常见设置

目录 一、快速入门 1.1 准备数据 1.2 创建SpringBoot工程 1.3 使用MP 1.4 获取Mapper进行测试 二、常用设置 2.1 设置表映射规则 2.1.1 单独设置 2.1.2 全局设置 2.2 设置主键生成策略 2.2.1 为什么会有雪花算法&#xff1f; 2.2.2 垂直分表 2.2.3 水平分表 2.…

JavaScript流程控制详解之顺序结构和选择结构

流程控制 流程控制&#xff0c;指的是控制程序按照怎样的顺序执行 在JavaScript中&#xff0c;共有3种流程控制方式 顺序结构选择结构循环结构 顺序结构 在JavaScript中&#xff0c;顺序结构是最基本的结构&#xff0c;所谓的顺序结构&#xff0c;指的是代码按照从上到下、…

上海亚商投顾:沪指涨超3% 深成指和创指双双飙涨超6%

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 今日A股三大指数一改近期低迷状态&#xff0c;早盘小幅低开后一路高歌猛进集体大涨&#xff0c;沪指涨超3%&am…

锁(二)队列同步器AQS

一、队列同步器AQS 1、定义 用来构建锁或者其他同步组件的基础框架&#xff0c;它使用了一个int成员变量表示同步状态&#xff0c;通过内置的FIFO队列来完成资源获取线程的排队工作。是实现锁的关键。 2、实现 同步器的设计是基于模板方法模式的&#xff0c;也就是说&#…

如何安装x11vnc并结合cpolar实现win远程桌面Deepin

文章目录 1. 安装x11vnc2. 本地远程连接测试3. Deepin安装Cpolar4. 配置公网远程地址5. 公网远程连接Deepin桌面6. 固定连接公网地址7. 固定公网地址连接测试 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 人工智能学习网站&#xff0c; 通俗易懂&#xff…

11.0 Zookeeper watcher 事件机制原理剖析

zookeeper 的 watcher 机制&#xff0c;可以分为四个过程&#xff1a; 客户端注册 watcher。服务端处理 watcher。服务端触发 watcher 事件。客户端回调 watcher。 其中客户端注册 watcher 有三种方式&#xff0c;调用客户端 API 可以分别通过 getData、exists、getChildren …

GLSL ES 1.0

GLSL ES 概述 写在前面 程序是大小写敏感的每一个语句都应该以英文分号结束一个shader必须包含一个main函数&#xff0c;该函数不接受任何参数&#xff0c;并且返回voidvoid main() { }数据值类型 GLSL支持三种数据类型&#xff1a; 整型浮点型&#xff1a;必须包含小数点&…

python 动态显示数据。

界面显示动态的数据。 from time import sleep import serialimport tkinter as tklis[1,10,40] # 打开串行端口 ser serial.Serial(COM3, 9600) # 9600为波特率&#xff0c;根据实际情况进行调整# 创建窗口和画布 window tk.Tk() canvas tk.Canvas(window, width400, heig…

高阶滤波器

一阶后向差分&#xff1a;s&#xff08;1-z^(-1)&#xff09;/T dx/dt[x(k)-x(k-1)]/T[x(k)-x(k)z^(-1)]/Tx(k)*&#xff08;1-z^(-1)&#xff09;/T 一阶前向差分&#xff1a;s(z-1)/T dx/dt[x(k1)-x(k)]/T[z*x(k)-x(k)]/Tx(k)*(z-1)/T 双线性差分&#xff1a;s(2/T)*(1-z…

通过 docker-compose 部署 Flink

概要 通过 docker-compose 以 Session Mode 部署 flink 前置依赖 Docker、docker-composeflink 客户端docker-compose.yml version: "2.2" services:jobmanager:image: flink:1.17.2ports:- "8081:8081"command: jobmanagervolumes:- ${PWD}/checkpoin…

【大模型上下文长度扩展】FlashAttention:高效注意力计算的新纪元

FlashAttention&#xff1a;高效注意力计算的新纪元 核心思想核心操作融合&#xff0c;减少高内存读写成本分块计算&#xff08;Tiling&#xff09;&#xff0c;避免存储一次性整个矩阵块稀疏注意力&#xff0c;处理长序列时的效率问题利用快速 SRAM&#xff0c;处理内存与计算…

【大模型上下文长度扩展】LongQLoRA:单GPU(V100)环境下的语言模型优化方案

LongQLoRA 核心问题子问题1: 预定义的上下文长度限制子问题2: 训练资源的需求高子问题3: 保持模型性能分析不足 LongQLoRA方法拆解子问题1: 上下文长度限制子问题2: 高GPU内存需求子问题3: 精确量化导致的性能损失分析不足效果 论文&#xff1a;https://arxiv.org/pdf/2311.048…

docker镜像结构

# 基础镜像 FROM openjdk:11.0-jre-buster # 设定时区 ENV TZAsia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 拷贝jar包 COPY docker-demo.jar /app.jar # 入口 ENTRYPOINT ["java", "-jar"…

游泳耳机推荐性价比排行榜,四大高性价比游泳耳机推荐

随着运动健康意识的提高&#xff0c;越来越多的朋友选择在游泳馆进行锻炼。然而&#xff0c;在水中享受音乐并非易事&#xff0c;这就需要一款真正防水的耳机。尽管市面上有许多声称具备防水功能的耳机产品&#xff0c;但实际使用中往往难以达到理想的防水效果。为了帮助大家找…