实验整理(一)——钓鱼邮件攻击实验_qq邮箱结合gophish-程序员宅基地

技术标签: linux  网络安全  

声明

        本文仅限于技术讨论和分享,是之前所做的一个课程设计整理,严禁用于非法途径。如果利用本文所提供的信息造成了不良结果,与本文作者无关。

一.实验介绍简介

        本次课程实验中主要是通过发送qq邮件来进行的一个钓鱼邮件实验。我是通过在kali上部署好的gophish工具向自己的一个QQ邮箱发送一个简单的电子邮件来模拟操作这次实验,并且还可以通过gophish来监测收到钓鱼邮件的收件人的状态。

        本次实验中使用的时kali-Linux-2021.2 -vnware-amd64,以及Windows 10 还有用到了QQ邮箱。还有部署在kali下的gophish钓鱼工具。

二.gophish的安装

1.下载地址:https://github.com/gophish/gophish/releases

2.在网站中找到下载界面,下载64位的最新版本的安装包到桌面。

 3.打开kali虚拟机,把gophish安装包传到kali的根目录下,解压安装包。

unzip gophish-v0.11.0-linux-64bit.zip -d gophish

4.网盘下载

链接:链接:https://pan.baidu.com/s/1MmecGcD0rSBomSvjg-vGRw 
提取码:uozs

三:gophish的部署

1.修改配置文件

        在kali中,在cd gophish/的目录下,vim config.json.如果需要远程访问后台管理界面,将Listen_url修改为0.0.0.0:3333,端口可以自定义。(这项主要是针对于部署在服务器上,因为一般的Linux服务器都不会安装可视化桌面,因此需要本地远程访问部署在服务器上的gophish后台)。如果是通过本机访问的话,保持127.0.0.1:3333就可以。在本次测试中,因为需要远程控制,所以要将listen_url:改为0.0.0.0:3333。

2.修改运行脚本权限以及运行脚本

        由于权限不够,无法执行脚本。在kali中,用命令chmod 744 ./gophish命令修改脚本权限,然后再输入命令./gophish就可以执行脚本了。(注意:最新版的密码是在首次启动gophish时会随机生成一个初始密码并将其打印在终端里。然后执行./gophish就可以看到出是账号和密码了。)

3.访问后台的管理界面

        在浏览器中访问https://ip:3333。(注意一定要使用https协议,这里的地址是kali 的地址,可以在kali中输入ifconfig来查看自己的kali地址)。第一次访问时会提示说网站不安全。这时候就选高级,然后继续访问。这时候就可以看到gophish的登录页面了。

这里的账号密码是上一步中执行./gophish脚本时显示账号和密码。提示修改密码后可以自行修改密码。

4.访问钓鱼页面

        在浏览器中输入http://ip:80。

 因为还没有配置钓鱼页面,所以显示404是正确的。

到现在为止,在kali下的gophish的安装和部署已经完成了。

 四:对实验结果的部署测试

1.对于gophish后台的功能测试

        在后台中,有Dashboard仪表板;Compaigns钓鱼事件;Group用户和组;Email Templates邮件模板;landing Pages钓鱼页面;Sending Profiles发件策略六大功能模块。

2.在gophish中进行发件邮箱与收件的配置

(1)使用一个QQ邮箱,并开启远程邮件收发功能。在本次实验中,需要用到两个邮箱号,一个是开启远程邮件收发功能之后来发送邮件的,一个是用来接受邮件的。如果要开启远程邮件收发功能的话,在网页版的QQ邮箱里,设置-账号-里面,开启SMTP服务。然后会获得一个授权码。

(2)配置一个发件邮箱。在左侧功能里选取Sending Profiles,打开,点击New Profile,新建一个策略,然后再填写每个信息。Name字段是为了新建的发送策略进行命名,这个命名不会影响到钓鱼实验的实施,所以我取了个qq.com。Interface Ty是默认为SMTP的,这个不用修改。From表示的是钓鱼邮件所显示的发件人。Host是SMTP的服务器的地址,所以QQ邮箱的格式应该为stmp.qq.com。Username是SMTP服务认证的用户名,因为是QQ邮箱,所以就是自己的QQ邮箱Password就是开启SMTP服务时获得的授权码。将这些信息全部填好之后,就可以发送邮件了。填好的信息显示效果是这样的。             

 

点击sent Tset Email后会弹出一个信息框询问将信息邮件发送给谁,这个我填上了自己的邮箱号。然后点击发送。就可以收到来自小号发送的一个邮件。

到这里为止,发送邮箱的配置已经完成了。但是,在实际的钓鱼实验过程中,大家都不会使用自己的QQ邮箱去发送钓鱼邮件。一方面是容易暴露身份,而且现在人们的安全意识已经有了显著的提高,大家都不认可这种邮件的真实性;另一方面是QQ邮箱这类第三方邮箱对每个用户每日发送数存在限制。所以,如果需要大批量的去发送钓鱼邮件,最好的方式就是使用自己的服务器,申请和正规网址的近似域名,搭建邮件服务器来发送邮件。

4.配置钓鱼页面

         在Landing Pages->这个功能中,点击New Pages,然后新建一个钓鱼页面。Name我取的是钓鱼页面。在HTML中,写了一段html代码。想做一个简单点的实验,所以没写那么复杂。点击Source可以在HTML代码和显示页面切换。写好代码后,勾选Capture Submitted Data,和Capture Passwords来获取提交的数据,在本次测试中,也就是账号和密码。Redirct to:页面url。填好之后Save Page。  

HTML代码如下:

<html>
    <head>
        <title></title>
    </head>
    <body>
        <h3>
            请输入学号&amp;密码,验证后系统将自动跳转到密码修改页面
        </h3>
        <form action="" method="post" name="input" id="input">
            学号: <input name="user" type="text"><br>
            密码: <input name="password" type="password"><br>
            <input type="submit" value="提交">&nbsp;
        </form>
    </body>
</html>

 5.配置钓鱼邮件模板

         在mail Templates这个功能中,新建一个新的邮件正文模板。Name中我取了一个名字是转钓鱼页面,然后点击import Email。gophish为编辑邮件内容提供了import Email这种方式。用户可以先在自己的邮箱里放送一份设计好的邮件,打开并选择导出eml文件或者显示邮件原文,然后把内容复制到import Email里。在本次实验中,我选择了显示邮件原文,将邮件原文复制到了import Email里。写完之后,勾选上add tracking image。然后可以点击save template就能保存了。

6.配置收件人

        点击左侧Users&Groups用户和组这个功能模块,新建一个收件人组。当我们完成以上三个功能的内容编辑后,钓鱼准备工作就完成了一大半了。在gophish中,Users$Groups的作用就是将钓鱼的目标邮箱导入gophish中准备发送。点击New Group后新建一个钓鱼的目标用户组。在Name里,取名users。看到Bulk Import Users后,Bulk Import Users是批量导入用户邮箱,它通过上传符合特定模板的CSV文件来批量导入目标用户邮箱。写入收件人组又两种方法。一种是上传符合特定模板的CSV文件,另一种是直接add添加收件人组。如果要上传CSV文件的话,需要在Bulk Import Users旁边的有一行小字可以用来下载特定的CSV模板文件。下载到主机桌面上后,可以用Excel表打开,然后可以向表里填数据。其中除了表里的Email是必须要填的,剩下的其余项可以填也可以不填。填好保存后上传到Bulk Import Users里。测试实验时,我使用的时add直接增加。Add这种方法时一种单个邮箱的导入方法。这对于开始钓鱼前,钓鱼组内部测试十分方便,不需要繁琐的文件上传,直接填写Email就可以。跟Bulk Import Users一样,除了Email其它项可填可不填。由于这次实验没有大面积的发送邮件,所以Users组里只写了一个邮箱号来做的测试。做完这些后点击save changes保存就可以了。

 7.发起钓鱼攻击

         Compaigns是钓鱼事件。做到这一步时,当我们完成以上四个功能的内容编辑后,钓鱼准备工具就基本完成了。现在就是一种“撒网捞鱼,等待鱼上钩”的状态。为了让实验能尽量快速的顺利进行,我把自己的一个QQ邮箱当作那条“鱼”,发送钓鱼邮件。然后访问。点开左侧的Users & Groups用户和组,再点击New Group新建一个钓鱼攻击。Name就是当前新建用户组的命名,在Email Template:选择转钓鱼页面。在Landing Page:选择钓鱼页面。URL 是用来替换选定钓鱼邮件模板中超链接的值,该值指向部署了选定钓鱼页面的url网址。简单来说,这里的URL需要填写当前运行gophish脚本主机的ip。因为启动gophish后,gophish默认监听了3333和80端口,其中3333端口是后台管理系统,而80端口就是用来部署钓鱼页面的。。当URL填写了http://主机IP/,并成功创建了当前的钓鱼事件后。gophish会在主机的80端口部署当前钓鱼事件所选定的钓鱼页面,并在发送的钓鱼邮件里,将其中所有的超链接都替换成部署在80端口的钓鱼页面的url所以,这里的URL填写我本地当前运行gophish主机的IP对应的url。实际上,URL为钓鱼页面的访问地址,如果想要访问效果更好一点,可以搭建自己的邮件服务器,并注册一个与目标相似的域名Launch Date不用动,Sending Profile:选择qq邮箱,Groups 选择users。然后点击“Launch campaign”就可以发起一次钓鱼邮件攻击 。

提交之后,发送钓鱼邮件。收件人收到了钓鱼邮件。此时,可以通过compaigns查看钓鱼邮件的统计信息。因为只是发送了还没有打开钓鱼邮件。所以只统计了一个数据信息。

 8.打开钓鱼邮件

        收件人收到了钓鱼邮件并且打开邮件,然后点击邮件里的链接,出现设置界面,点击设计界面中的提交跳转界面到伪页面。当收件人在这个伪造的恶意网站上输入自己的用户名和密码等信息,这些信息就会反馈到攻击者手上。

此时,我们再看Campaign的后台,可以实时查看钓鱼邮件的统计信息 。

 到此为止,这次实验就已经全部结束了。在这次实验中,成功完成了钓鱼测试并且获得了钓鱼邮件的数据信息。

 四:防范建议

        在做了这次钓鱼测试实验之后,我意识到了防范意识的重要性。我做的只是学号密码的盗取,而真正的钓鱼邮件是指利用伪装的电子邮件,欺骗受骗人将账号、口令等信息回复给指定的接收者,做一些以假乱真的网站迷惑人,会引导受骗人信以为真,输入银行卡或者银行卡号码、账号名称等,造成财产的损失。

  1. 技术层面,部署专业邮件安全网关,实时识别和拦截骗术套话、恶意链接、病毒附件,结合威胁情报,将攻击IP、恶意邮箱加入黑名单。边界技术防护是企业的第一道防线。
  2. 管理层面,加强安全意识培训,多开展内部演练,提升员工对钓鱼邮件的甄别和防范能力:不要将企业邮箱用于第三方平台注册,减少暴露面;不要轻信邮件内容,提供敏感信息时要先电话确认;不要点击可疑链接,不要去扫邮件中的二维码;不要轻易打开运行附件,电脑要安装杀毒软件等。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_57882885/article/details/125430861

智能推荐

XPath详解_如何定义xpath-程序员宅基地

文章浏览阅读935次。XPath简介XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航什么是 XPath?XPath 使用路径表达式在 XML 文档中进行导航XPath 包含一个标准函数库XPath 是 XSLT 中的主要元素XPath 是一个 W3C 标准XPath 路径表达式XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。XPath 标准函数XPath 含有超过 _如何定义xpath

pppoe远程计算机错误,PPPoE宽带拨号连接常见错误代码是什么意思-程序员宅基地

文章浏览阅读828次。原标题:"PPPoE宽带拨号连接常见错误代码的解决办法 错误769的处理方法"的相关路由器设置教程资料分享。- 来源:191路由网。当我们家的网络出现问题时,网络管理员一般会问你电脑的宽带连接错误代码是什么。其实我们自己也可以通过这些错误代码,自行解决问题。下边我说下怎么看错误代码和解决办法。家里有接路由器的,请把WAN口的线拔出,插到任意LAN口上,然后宽带连接。注意,测试完毕后,记得恢复原状。..._pppoe不能建立到远程计算机的连接,因此用于此链接的端口已关闭

单元测试之Mockito+Junit使用和总结(完整)_junit mockito-程序员宅基地

文章浏览阅读1.1w次,点赞10次,收藏90次。一、什么是MOCK测试Mock 测试就是在测试过程中,对于某些不容易构造(如 HttpServletRequest 必须在Servlet 容器中才能构造出来)或者不容易获取比较复杂的对象(如 JDBC 中的ResultSet 对象),用一个虚拟的对象(Mock 对象)来创建以便测试的测试方法。Mock 最大的功能是帮你把单元测试的耦合分解开,如果你的代码对另一个类或者接口有依赖,它能够帮你模拟这些依赖,并帮你验证所调用的依赖的行为。mock中的必知概念:打桩(存根):模拟要调用的函数(打桩对象),_junit mockito

集合 List、Set、Map 的区别和实现原理_容器map和set,list和set 对比和底层实现-程序员宅基地

文章浏览阅读2.3k次,点赞5次,收藏17次。集合 List、Set、Map 的区别和实现原理Java中的集合包括三大类,它们是Set、List和Map,它们都处于java.util包中,Set、List和Map都是接口,它们有各自的实现类。Set的实现类主要有HashSet和TreeSet,List的实现类主要有ArrayList,Map的实现类主要有HashMap和TreeMap。_容器map和set,list和set 对比和底层实现

英雄 (HERO) 练字钢笔_英雄钢笔359怎么换墨水-程序员宅基地

文章浏览阅读1k次。英雄 (HERO) 练字钢笔_英雄钢笔359怎么换墨水

hdu 2066 spaf算法_spaf算法 head-程序员宅基地

文章浏览阅读147次。1、用途:求最短路径,可以有负值的边;2、主要思路:建立一个队列保存节点,每次取出一个节点,并且进行一次松弛优化;松弛优化:即dis[i][j]&lt;dis[i][k]+dis[k][j]; 举个例子: 一个人的旅行Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java..._spaf算法 head

随便推点

unity3d UnityScript to C# Convertor 1.4 扩展 下载-程序员宅基地

文章浏览阅读538次。资源名称:UnityScript to C# Convertor  资源版本:1.4  资源类型:.unitypackage  资源大小:293K  更新时间:2014-01-13  资源图片: unity3d下载地址:http://www.unitymanual.com/thread-10680-1-1.html

STM32 磁场传感器HMC5883-程序员宅基地

文章浏览阅读1.7k次。一、IIC协议默认(出厂) HMC5883LL 7 位从机地址为0x3C 的写入操作,或0x3D 的读出操作。要改变测量模式到连续测量模式,在通电时间后传送三个字节:0x3C 0x02 0x00将00写入第二寄存器或模式寄存器以完成从单一模式切换到连续测量模式的设置。随着数据速率在出厂默认的15Hz更新,在查询HMC5883L数据寄存器进行新的测量之前,I2C主机允许产生一个..._hmc5883l 从机地址地址位

Leetcode刷题技巧总结篇(python版)_leetcode python刷题-程序员宅基地

文章浏览阅读1w次,点赞20次,收藏114次。持续更新……1 求字符差值python不可以直接进行字符减运算。当需要进行字符之间的减运算时,我们可以用ord()函数。ord()是python自带的函数,无需导入。2 字符串反转string='leetcode'print(string[::-1])3 数组元素计数import collectionsli=[1,2,2,4,5,5]cnt = collections.Counter(li)print(cnt)4 字典遍历cnt={1:4,2:3}# 遍历键值对for _leetcode python刷题

java8中,java.util.Date, java.sql.Date, java.time.LocalDate 的转换异常及处理_java.sql.date cannot be cast to java.time.localdat-程序员宅基地

文章浏览阅读9.1k次。java8中,java.util.Date, java.sql.Date, java.time.LocalDate 的转换异常及处理/** *PreparedStatement绑定日期参数的时候,如果传入的是 java.util.Date,则会抛出如下异常* Caused by: java.lang.ClassCastException: java.util.Date cannot ..._java.sql.date cannot be cast to java.time.localdate

使用 soffice 将 doc 转换为 docx 不起作用Error: no export filter for teste.docx found, aborting. Error: no expo_error: no export filter for /usr/布丁扫描2024-04-07-14-程序员宅基地

文章浏览阅读1.4k次。我发现它为什么不起作用。我卸载了 oppenoffice 和 libreoffice,然后再放一个。最近项目编辑器有一个小功能,需要将doc转为docx,按照下面的方法安装后使用报。我正在使用 centos7,并从 openoffice 到安装所有东西。我放置了过滤器(来自 soffice 的过滤器示例)但仍然无法正常工作。失效了搜索名称即可下载,最后按照下方教程即可解决。可能它缺少某些库或某些依赖项存在冲突。我在 .doc 文件的当前目录中。_error: no export filter for /usr/布丁扫描2024-04-07-14.45.38.doc found, abor

CRC-8/MAXIM校验算法(C语言实现)-程序员宅基地

文章浏览阅读5.5k次,点赞4次,收藏23次。  CRC,全称“Cyclic Redundancy Check,即循环冗余校验。是一种常用在常用在检测或校验数据的信道编码技术,其实通过原数据产生的简短的校验码,常用的比如CRC8,CRC8/MAXIM,CRC16/MAXIM,CRC32等。下面介绍一些常用的生成CRC校验码的C语言实现方式。CRC-8/MAXIM(笑)参数模型 NAMEx 8+x5+x4+1宽度 WIDTH8多项式 POLY0x31初始值 INIT0x00结果亦或值 XOROU0x_crc-8/maxim

推荐文章

热门文章

相关标签