记一次使用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/      

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于微信小程序的校园失物招领小程序

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

C++初阶篇----新手进村

目录 一、什么是C二、C关键字三、命名空间3.1命名空间的定义3.2命名空间的使用 四、C输入和输出五、缺省参数5.1缺省参数的概念5.2缺省参数的分类 六、函数重载6.1函数重载的概念6.2函数重载的原理----名字修饰 七、引用7.1引用概念7.2引用特性7.3常引用7.4引用的使用7.5传值、…

nginx + DNS域名解析(使用自己的域名访问)

配置链接: Nginx 安装配置 | 菜鸟教程 安装完nginx后&#xff0c;访问&#xff1a; cd /usr/local/nginx/sbin/ 然后使用./nginx可使用nginx。 停止nginx服务 ./nginx -s stop 访问:http://服务器的ip地址后出现 因为访问IP地址很繁琐&#xff0c;需要记忆ip的数字地址&a…

【doghead】VS2022 win11 安装配置WSL2 以编译linux端的cmake项目并运行1

Visual Studio 2022 在Windows上编译调试WSL2 CMake Linux工程 好像是我自己的vs2022的一个插件支持rust https://github.com/kitamstudios/rust-analyzer.vs/blob/master/PREREQUISITES.md Latest rustup (Rust Toolchain Installer). Install from here. Welcome to Rust!Th…

【集合系列】HashMap 集合

HashMap 集合 1. 概述2. 方法3. 遍历方式4. 代码示例15. 代码示例26. 注意事项7. 源码分析 其他集合类 父类 Map 实现类 LinkedHashMap 集合类的遍历方式 具体信息请查看 API 帮助文档 1. 概述 HashMap 是 Java 中的一种集合类&#xff0c;它实现了 Map 接口。HashMap 使用键…

Rust 格式化输出

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、format! 宏二、fmt::Debug三、fmt::Display四、? 操作符 循环打印 前言 Rust学习系列-本文根据教程学习Rust的格式化输出&#xff0c;包括fmt::Debug&…

百卓Smart管理平台 uploadfile.php 文件上传漏洞(CVE-2024-0939)

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

(1)短距离(<10KM)

文章目录 1.1 Bluetooth 1.2 CUAV PW-Link 1.3 ESP8266 wifi telemetry 1.4 ESP32 wifi telemetry 1.5 FrSky telemetry 1.6 Yaapu双向遥测地面站 1.7 HOTT telemetry 1.8 MSP(MultiWii 串行协议)(4.1 版) 1.9 MSP (version 4.2) 1.10 SiK Radio v1 1.11 SiK Radio …

158基于matlab的用于分析弧齿锥齿轮啮合轨迹的程序

基于matlab的用于分析弧齿锥齿轮啮合轨迹的程序&#xff0c;输出齿轮啮合轨迹及传递误差。程序已调通&#xff0c;可直接运行。 158 matlab 弧齿锥齿轮啮合轨迹 传递误差 (xiaohongshu.com)

雨云宿迁云服务器测评

我本打算趁着暑假买台云服务器开mc服务器&#xff0c;但由于没有试用且直接完结导致白废20块钱。 在此提醒大家&#xff0c;买用于开mc服务器的云服务器前能试用一定要试用&#xff01;不然鬼知道它性能够不够用&#xff01; 服务器配置如下: cpu:2v gold61332.5Ghz ram:2GiB…

【C++】初识模板:函数模板和类模板

目录 一、模板函数 1、函数模板的概念 2、函数模板的格式 3、函数模板的原理 4、函数模板实例化 5、 模板参数的匹配原则 二、类模板 1 、类模板的定义格式 2 、类模板的实例化 3、模板类示例 一、模板函数 1、函数模板的概念 函数模板代表了一个函数家族&#xff0c…

【粉丝福利社】Flutter小白开发——跨平台客户端应用开发学习路线(文末送书-完结)

&#x1f3c6; 作者简介&#xff0c;愚公搬代码 &#x1f3c6;《头衔》&#xff1a;华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0c;华为产品云测专家&#xff0c;CSDN博客专家&#xff0c;CSDN商业化专家&#xff0c;阿里云专家博主&#xf…

Bee+SpringBoot稳定的Sharding、Mongodb ORM功能(同步 Maven)

Hibernate/MyBatis plus Sharding JDBC Jpa Spring data GraphQL App ORM (Android, 鸿蒙) Bee 小巧玲珑&#xff01;仅 860K, 还不到 1M, 但却是功能强大&#xff01; V2.2 (2024春节・LTS 版) 1.Javabean 实体支持继承 (配置 bee.osql.openEntityCanExtendtrue) 2. 增强批…

项目学习记录

项目开发 创建项目环境配置关联git新增模块项目启动打印地址日志使用httpclient进行idea内部控制台测试使用AOP拦截器打印日志 创建项目 创建一个空项目&#xff0c;并勾选下面选项 然后进入pom.xml中修改项目配置 根据这个链接选则&#xff0c;修改项目的支持版本 链接&#…

猫头虎分享已解决Bug || CPU过载(CPU Overload):HighCpuUsageWarning, CpuOverloadException

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

vue3 之 商城项目—一级分类

整体认识和路由配置 场景&#xff1a;点击哪个分类跳转到对应的路由页面&#xff0c;路由传对应的参数 router/index.js import { createRouter, createWebHashHistory } from vue-router import Layout from /views/Layout/index.vue import Home from /views/Home/index.vu…

linux 06 磁盘管理

01.先管理vm中的磁盘&#xff0c;添加一个磁盘 只有这种方式才可以增加/dev/sd* 中的目录 例如会增加一个sdc 第一步.vm软件&#xff0c;打开虚拟机设置&#xff0c;添加硬盘 第二步.选择推荐scsi 第三步.创建一个新的虚拟磁盘 第四步. 第五步. 02.在创建好的vm虚拟机中查…

automative

car sevice car-lib

html5+css3胶囊按钮代码

效果 代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <title></title> <style> /* 胶囊开关的样式 */ .switch { position: relative; display: inline-block; width: 6…

【leetcode热题100】最大矩形

给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵&#xff0c;找出只包含 1 的最大矩形&#xff0c;并返回其面积。 示例 1&#xff1a; 输入&#xff1a;matrix [["1","0","1","0","0"],["1",&quo…