钓鱼攻击

定义:钓鱼攻击是一种常见的网络攻击手段,攻击者通过伪装成合法的网站、邮件或信息,诱骗用户提供敏感信息,如用户名、密码、银行卡号等,从而达到非法获取用户数据或进行欺诈的目的。

网络钓鱼(phishing)由钓鱼(fishing)一词演变而来。在网络钓鱼过程中,攻击者使用诱饵(如电子邮件、手机短信、QQ链接等)将攻击代码发送给大量用户,期待少数安全意识弱的用户“上钩”,进而达到“钓鱼”(如窃取用户的隐私信息)的目的。

原理

攻击原理:钓鱼攻击的核心是通过伪装成可信的实体(如银行、社交平台、公司内部系统等),诱骗用户泄露敏感信息。

克隆网站钓鱼

原理

复制目标网站的前端页面,伪造相似域名,诱导用户点击输入敏感信息,收集敏感信息。

pikachu靶场中有一个xss后台,里面可以实现钓鱼功能。主要是pikachu中/xfish中的三个文件实现了钓鱼功能。

  1. fish.php

    请求用户输入用户名和密码。如果用户输入正确的用户名和密码,它会将用户名和密码发送到一个指定的后台地址。用来窃取用户的认证信息。

  2. xfish

    捕获并存储从 URL 中提交的用户登录信息(用户名、密码)以及用户的来源页面地址。它通过 GET 请求接收数据,并将这些数据插入到数据库中的 fish 表。

  3. pkxss_fish_result

    显示被钓鱼攻击窃取的用户数据,包括用户名和密码,并允许通过点击链接删除某条记录。过 SQL 查询获取这些数据并在管理页面中展示。

工具

pikachu

操作过程

1.首先打开pikachu文件pxss下的xfish找到fish.php。将里面的管理后台的IP 地址改为自己管理后台的地址

  1. 打开pikachu,选择xss漏洞里的存储型,运行以下代码

3. 之后会出现弹屏,在弹屏上随便输入用户名,密码。此时以及被钓鱼了,去最下面的XSS后台登录查看钓鱼结果

与XSS的区别

很明显的感觉到克隆网站钓鱼和XSS很相似,都是利用漏洞欺骗用户以获得敏感信息,但是他们有如下不同:

  1. 攻击方式:攻击者通过插入恶意代码,窃取用户的Cookie、会话信息,或者将数据发送到攻击者控制的服务器。克隆网站钓鱼是指攻击者制作一个与真实网站几乎完全相同的假冒网站,诱使用户访问并输入个人敏感信息。
  2. 攻击目标:XSS攻击的目标是利用用户与真实网站互动时的行为,通过注入恶意脚本获取敏感信息。克隆网站钓鱼的目标是通过假冒网站直接诱导用户输入个人信息。
  3. 技术实现:XSS依赖于网站存在的漏洞,攻击者通过注入恶意脚本(如JS代码)来执行攻击。这个过程通常需要通过网站输入框、URL参数等漏洞位置来插入脚本。克隆网站钓鱼依赖于攻击者精确复制真实网站的外观与功能,制作一个与目标网站高度相似的伪造页面,通常需要克隆网站的HTML、CSS、JavaScript等内容。

电子邮件钓鱼

钓鱼邮件的特征

1.伪造发件人地址

冒充知名机构(如PayPal、Microsoft、银行),但仔细检查可发现邮箱域名拼写错误(如service@paypai.com代替

2.利用诱导性语言

诱导用户进行操作,例如:

“恭喜您中奖了,请点击连接领取”

“恭喜您获得了大额优惠券,请登录领取”

3.可疑链接或附件

链接显示文本与实际URL不符,或附件为.exe、.zip等可执行文件。

4.索要敏感信息

直接要求提供密码、验证码、身份证号等,而正规机构不会通过邮件索取此类信息。

原理

原理:钓鱼邮件攻击的核心是利用伪装的电子邮件诱骗用户点击恶意链接或下载恶意附件,从而窃取用户信息

常见形式

伪装发件人:伪造发件人地址,冒充银行、同事或供应商等可信来源

链接钓鱼:邮件中包含恶意链接,诱导用户输入敏感信息附件钓鱼:通过恶意文件(如PDF、Word文档)诱导用户执行恶意代码

二维码钓鱼:邮件中包含恶意二维码,用户扫描后可能跳转到钓鱼网站

情感操纵:利用用户的恐慌、好奇心或贪婪心理,诱导其点击链接或打开附件

工具

gophish

操作过程

钓鱼邮件的操作参照此文编写:https://geekdaxue.co/read/xuea-man@ybcd4h/9ba3f2cc-b0be-4ba1-a93c-a6edc7ccc64b#7ivll0

  1. 下载gophish

    https://github.com/gophish/gophish/releases

  2. 下载后解压运行exe文件,查看访问路径,需要保持小黑框不被关闭,关闭则脚本终止(Gophish要web访问,禁止访问选择高级设置,继续访问)

  3. 登录进入界面,老版本账号admin,密码gophish

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

    详情见:https://github.com/gophish/gophish/releases/tag/v0.11.0



    进入后台后,左边的栏目即代表各个功能,分别是Dashboard 仪表板 、Campaigns 钓鱼事件 、Users & Groups 用户和组 、Email Templates 邮件模板 、Landing Pages 钓鱼页面 、Sending Profiles 发件策略六大功能

  4. Sending Profiles 发件策略

    Sending Profiles 的主要作用是将用来发送钓鱼邮件的邮箱配置到 gophish

    点击New Profile新建一个策略,依次来填写各个字段



    Name 字段是为新建的发件策略进行命名,不会影响到钓鱼的实施,建议以发件邮箱为名字,例如如果使用 qq 邮箱来发送钓鱼邮件,则 Name 字段可以写xxxxxx@qq.com

    Interface Type 是接口类型,默认为SMTP 类型且不可修改,因此需要发件邮箱开启 SMTP 服务

    图中的from是钓鱼邮件所显示的发件人,在实际使用中,一般需要进行近似域名伪造,这里为了容易理解,就暂时以 qq 邮箱为例,所以 From 字段可以写:testxxxxxx@qq.com

    Host 是 smtp 服务器的地址,格式是 smtp.example.com:465,例如 qq 邮箱的 smtp 服务器地址为smtp.qq.com

    Username 是 smtp 服务认证的用户名,如果是 qq 邮箱,Username 则是自己的 qq 邮箱号xxxx@qq.com

    Password 是 smtp 服务认证的密码,例如 qq 邮箱,需要在登录 qq 邮箱后,点击 设置 - 账户 - 开启 SMPT 服务 生成授权码,Password 的值则可以填收到的授权码

    (可选)Email Headers 是自定义邮件头字段,例如邮件头的X-Mailer字段,若不修改此字段的值,通过 gophish 发出的邮件,其邮件头的 X-Mailer 的值默认为 gophish

填写邮件地址,发送测试邮件,成功后保存策略



但是我在此处使用近似域名伪造from后无法正常发送邮件,只有与Username一致时才会发送成功

  1. Landing Pages 钓鱼页面



    Name 是用于为当前新建的钓鱼页面命名,可以简单命名为钓鱼页面 1

    点击 Import Site 后,填写被伪造网站的 URL,再点击 Import,即可通过互联网自动抓取被伪造网站的前端代码,也可以下面编写



    通常,进行钓鱼的目的往往是捕获受害用户的用户名及密码,因此,在点击 Save Page 之前,记得一定要勾选Capture Submitted Data

    当勾选了Capture Submitted Data后,页面会多出一个Capture Passwords的选项,显然是捕获密码。通常,可以选择勾选上以验证账号的可用性。如果仅仅是测试并统计受害用户是否提交数据而不泄露账号隐私,则可以不用勾选

    另外,当勾选了Capture Submitted Data后,页面还会多出一个Redirect to,其作用是当受害用户点击提交表单后,将页面重定向到指定的 URL。可以填写被伪造网站的 URL,营造出一种受害用户第一次填写账号密码填错的感觉

    (一般来说,当一个登录页面提交的表单数据与数据库中不一致时,登录页面的 URL 会被添加上一个出错参数,以提示用户账号或密码出错,所以在Redirect to中,最好填写带出错参数的 URL)

    因此,令此处的 Redirect to 的值为https://mail.XX.edu.cn/cgi-bin/loginpage?errtype=1

  2. Email Templates 钓鱼邮件模板

    Name对当前新建的钓鱼邮件模板进行命名。可以简单的命名为:邮件模板 1

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

    需要注意,在点击Import之前需要勾选上Change Links to Point to Landing Page,该功能实现了当创建钓鱼事件后,会将邮件中的超链接自动转变为钓鱼网站的 URL

  3. Users & Groups 用户和组

    主要是group name和邮箱

  4. Campaigns 钓鱼事件

    新建钓鱼事件,并选择编辑好的钓鱼邮件模板,钓鱼页面,通过配置好的发件邮箱,将钓鱼邮件发送给目标用户组内的所有用户

    URL 是用来替换选定钓鱼邮件模板中超链接的值,该值指向部署了选定钓鱼页面的 url 网址(这里比较绕,下面具体解释一下,看完解释再来理解这句话)

简单来说,这里的 URL 需要填写当前运行 gophish 脚本主机的 ip。

因为启动 gophish 后,gophish 默认监听了3333和80端口,其中3333端口是后台管理系统,而80端口就是用来部署钓鱼页面的。

当 URL 填写了http:// 主机 IP/,并成功创建了当前的钓鱼事件后。gophish 会在主机的80端口部署当前钓鱼事件所选定的钓鱼页面,并在发送的钓鱼邮件里,将其中所有的超链接都替换成部署在80端口的钓鱼页面的 url

所以,这里的 URL 填写我本地当前运行 gophish 主机的 IP 对应的 url,即http://192.168.3.143

  1. Dashboard 仪表板

    当创建了钓鱼事件后,Dashboard 会自动开始统计数据。统计的数据项包括邮件发送成功的数量及比率,邮件被打开的数量及比率,钓鱼链接被点击的数量及比率,账密数据被提交的数量和比率,以及收到电子邮件报告的数量和比率。

钓鱼攻击(phishing)详解和实现过程的更多相关文章

  1. TOMCAT原理详解及请求过程(转载)

    转自https://www.cnblogs.com/hggen/p/6264475.html TOMCAT原理详解及请求过程 Tomcat: Tomcat是一个JSP/Servlet容器.其作为Ser ...

  2. 轻松学习Linux之详解系统引导过程

    轻松学习Linux之详解系统引导过程-1 轻松学习Linux之详解系统引导过程-2 本文出自 "李晨光原创技术博客" 博客,谢绝转载!

  3. Windows系统Git安装教程(详解Git安装过程)

    Windows系统Git安装教程(详解Git安装过程)   今天更换电脑系统,需要重新安装Git,正好做个记录,希望对第一次使用的博友能有所帮助! 获取Git安装程序   到Git官网下载,网站地址: ...

  4. ASP.NET 运行时详解 揭开请求过程神秘面纱

    对于ASP.NET开发,排在前五的话题离不开请求生命周期.像什么Cache.身份认证.Role管理.Routing映射,微软到底在请求过程中干了哪些隐秘的事,现在是时候揭晓了.抛开乌云见晴天,接下来就 ...

  5. 深度学习基础(CNN详解以及训练过程1)

    深度学习是一个框架,包含多个重要算法: Convolutional Neural Networks(CNN)卷积神经网络 AutoEncoder自动编码器 Sparse Coding稀疏编码 Rest ...

  6. CSRF(跨站请求伪造攻击)漏洞详解

    Cross-Site Request Forgery(CSRF),中文一般译作跨站点 请求伪造.经常入选owasp漏洞列表Top10,在当前web漏洞排行中,与XSS和SQL注入并列前三.与前两者相比 ...

  7. DOS攻击之详解--转载

    源地址没有找到,间接引用地址:http://wushank.blog.51cto.com/3489095/1156004 DoS到底是什么?接触PC机较早的同志会直接想到微软磁盘操作系统的DOS--D ...

  8. TOMCAT原理详解及请求过程

    Tomcat: Tomcat是一个JSP/Servlet容器.其作为Servlet容器,有三种工作模式:独立的Servlet容器.进程内的Servlet容器和进程外的Servlet容器. Tomcat ...

  9. Tomcat学习(二)------Tomcat原理详解及请求过程

    Tomcat: Tomcat是一个JSP/Servlet容器.其作为Servlet容器,有三种工作模式:独立的Servlet容器.进程内的Servlet容器和进程外的Servlet容器. Tomcat ...

  10. 详解BLE连接建立过程

    同一款手机,为什么跟某些设备可以连接成功,而跟另外一些设备又连接不成功?同一个设备,为什么跟某些手机可以建立连接,而跟另外一些手机又无法建立连接?同一个手机,同一个设备,为什么他们两者有时候连起来很快 ...

随机推荐

  1. 记一次QT的QSS多个控件设置同一个样式的问题

    文章目录 Qt样式表的格式问题 问题的引入 qss 选择器 问题所在 Reference Qt样式表的格式问题 问题的引入 最近在进行样式设计的时候,发现了一个问题,具体如下: 我是将所有样式写到.q ...

  2. Qt 给窗口绘制阴影

    文章目录 Qt 给窗口绘制阴影 前言 重载`paintEvent`法 QGraphicsDropShadowEffect方法 使用九图拼凑法 九宫格缩放阴影法 Qt 给窗口绘制阴影 前言 最近自定义一 ...

  3. vue 保留两位小数

    前言 有时候我们需要对各种数值进行保留位数,以便于更好的展示. Html部分 template中这样使用,需要处理的字段名,再加上过滤器方法 <div class="text prim ...

  4. 【Python】词频统计

    需求:一篇文章,出现了哪些词?哪些词出现得最多? 英文文本词频统计 英文文本:Hamlet 分析词频 统计英文词频分为两步: 文本去噪及归一化 使用字典表达词频 代码: #CalHamletV1.py ...

  5. 【Python】使用PyInstaller把代码打包成exe可执行文件

    使用PyInstaller打包自己写好的代码 零.需求 最近接到一个小单,需要批量修改文档内容,用Python做好后要打包成exe程序给客户的Win7电脑使用,此时需要用到PyInstaller打包自 ...

  6. panic: qtls.ConnectionState not compatible with tls.ConnectionState

    问题重现 之前一个 go-micro 1.18 的项目 执行 go run main.go 命令时出现以下报错 go run main.go panic: qtls.ConnectionState n ...

  7. VScode设置用户代码片段快捷方式

    一.创建步骤 a. b. 二.创建模板 { "生成vue模板": { "prefix": "vue", "body": ...

  8. eolinker校验规则之 Json结构定位:返回结果校验的方法和案例(父参、子参内容校验)

    如下图,订单编号的参数在data父字段内 Eolinker返参校验的写法就需要有些变化 先写Data父参,添加子字段,再写子参 预期结果不支持全局变量 可通过添加绑定,绑定前一个接口返回参数,进行匹配

  9. 代码随想录第二天 | Leecode 209. 长度最小的子数组、59. 螺旋矩阵II

    Leecode 209 长度最小的子数组 题目链接:https://leetcode.cn/problems/minimum-size-subarray-sum/ 题目描述 给定一个含有 n 个正整数 ...

  10. 【HUST】代数学|理想的分解习题

    以下内容中,背景知识部分尽数由GPT生成,生成的方式是直接对问题进行提问,存在错误的小节我已经标注,不保证不存在其他错误. 习题部分是GPT生成后,我将看不懂的地方自己重写了一遍的结果.不保证完全正确 ...