精华内容
下载资源
问答
  • 2021-09-07 15:49:04

    中间人攻击(通常缩写为MitM或MiM)是一种会话劫持网络攻击。黑客拦截数字共享的信息,通常是作为窃听者或冒充他人。这种类型的攻击非常危险,因为它可能会导致一些风险,如信息被盗或虚假通信,通常很难检测到这些危险,因为情况对合法用户来说似乎完全正常。

    本文将涵盖您需要了解的关于中间人攻击的点,包括:

    什么是中间人攻击?

    中间人攻击是怎样的?

    中间人攻击有哪些不同的攻击类型?

    中间人攻击的潜在风险是什么?

    中间人攻击是如何演变的?

    现实生活遭受中间人攻击的例子

    如何防范中间人攻击?

    什么是中间人攻击?

    中间人攻击发生在第三方不知道合法参与者的情况下拦截数字对话时。此对话可以发生在两个人类用户、一个人类用户和一个计算机系统或两个计算机系统之间。

    在任何这些情况下,攻击者都可能只是简单地窃听对话以获取信息(考虑登录凭据、私人账户信息等)。或者他们可能会模拟其他用户来操纵对话。在后一种情况下,攻击者可能会发送错误信息或共享恶意链接,这可能会导致系统崩溃,或为其他网络攻击打开大门。通常情况下,合法用户不会意识到他们实际上正在与非法第三方通信,直到发生损害以后才意识到。

    中间人攻击的一个例子是会话劫持。其他类型的会话劫持攻击包括站点脚本、会话侧劫持、会话固定和暴力攻击。

    中间人攻击是怎样的?

    执行中间人攻击需要黑客访问用户的连接。最常见的方法之一是创建一个公共的wifi热点,附近的任何人都可以加入,不需要密码。一旦用户加入这个网络,黑客就可以访问他们所有的数字通信,甚至记录基建,充当中间人。

    公共wifi的例子是发动中间人攻击最常见和最简单的方法,但这并不是唯一的方法。其他常见方法包括:

    将用户引导到假网站:黑客可以通过IP或DNS进行欺骗,将用户引导到假网站,而不是他们的预期的网站。当黑客更改IP地址中的数据包头时,就会发生IP欺骗,而当黑客访问DNS服务器并更改网站的DNS记录时,就会发生DNS欺骗。在哪种情况下,用户最后都会访问到黑客设置的假网站(在那里他们可以捕获所有信息),尽管它看起来非常真实。

    变更数据传输路径:黑客可以通过进行ARP欺骗来重新路由通信的目的地。当黑客将其MAC地址连接到属于参与通信的合法用户之一的IP地址时,就会发生这种情况。一旦他们建立连接,黑客就可以接收合法用户IP地址的任何数据。

    在某些情况下,通信数据可能会被泄露,但在数据加密的情况下,中间人攻击需要另一个步骤,才能读取这些信息。黑客可以尝试通过以下方法来解密任何加密的信息:

    SSL劫持:黑客伪造身份验证密钥来建立一个看似合法、安全的会话。然而,由于黑客拥有这些密钥,他们实际上可以控制整个对话。

    SSL BEAST:黑客针对SSL中的一个漏洞,在用户的设备上安装恶意软件,该恶意软件可以拦截保持数字通信隐私和安全的加密Cookie。

    SSL剥离:黑客可以将更安全的HTTPS连接转换为不太安全的HTTP连接,进而从Web会话中删除加密,并公开在会话期间的所有通信。

    中间人攻击的不同类型

    中间人攻击有不同的种类:每一种对受害者可能产生不同的后果。中间人攻击的常见类型包括:

    监听获取信息

    黑客可以在任何一段时间内窥探对话,以捕获他们以后需要用到的信息。他们不一定需要以任何方式改变通信,但如果他们能够访问共享的详细信息,他们就可以随时了解到机密信息或获得随时使用的登录凭据。

    改变通信

    黑客可以使用像SSL劫持这样的技术,通过假装是另一个用户来改变通信。例如:假设Alice和认为他们是在互相交流。在这种情况下,黑客可能会坐在对话的中间,改变彼此发送的信息。这种方法可用于发送虚假信息,共享恶意链接,甚至拦截重要的细节,如用户发送他们的银行账户和路由号码存款。

    将用户引导到一个假网站

    黑客可以将用户引导到一个假网站(一个常见的例子是通过网络钓鱼尝试),看起来与用户的预期目的网站完全相同。此设置允许他们获取任何用户给合法网站提交的信息,如登录凭据或账户详细信息。反过来,黑客可以利用这些信息冒充实际网站上的用户,访问财务信息,更改信息,甚至发送虚假信息。

    中间人攻击的潜在风险是什么?

    中间人攻击可能导致各种负面影响。事实上,中间人攻击往往是黑客发动更大更有影响力的攻击的垫脚石。考虑到这一点,中间人攻击最大的潜在风险包括:

    欺诈性交易

    中间人攻击可能导致欺诈性交易,通过窃听收集登录和账户信息,或重新路由转移。通常情况下,这适用于银行或信用卡直接支付的金融交易。

    盗窃机密信息

    捕获用户的登录凭证,将其发送到虚假网站,甚至只是窃听电子邮件,都会导致机密信息被盗。对于那些保护知识产权或收集客户健康记录或社会安全号码等敏感数据的大型组织来说,这一后果令人担忧。随着越来越多的隐私立法的出现,要求各种企业保护他们处理有关客户的信息,这也是一个担忧。

    访问其他系统

    通过中间人攻击窃取用户的登录凭证也可以让黑客访问任何数量的额外系统。这意味着,即使只有一个系统容易受到攻击,它也可能使其他更安全的系统更容易受到攻击。总的来说,这种情况需要组织的安全团队确保没有薄弱环节,无论任何给定的连接点看起来多么简单。

    通过恶意软件进行广泛攻击

    黑客可以利用中间人攻击与用户共享恶意软件。反过来,这种恶意软件可能会导致广泛的攻击,例如摧毁整个系统,或提供对信息或系统的持续访问,以执行长期攻击。

    中间人攻击是如何演变的?

    两种趋势引起了中间人攻击的演变,并因此增加了组织的风险。

    首先是移动和分布式工作环境的兴起,这最终意味着更多人通过公共wifi网络进行连接(供个人和商业使用)。这种情况越常见,它为黑客通过这些不安全连接获得访问的机会就越多。

    其次,也是未来组织更关注的,是物联网(IoT)设备和机器身份的增加。物联网设备不仅需要不同类型的安全措施而且还可以创建更多需要身份验证的连接点和认证。如果没有适当的保护,这些机器会为黑客创建各种访问点,其中许多似乎是无辜的(即HVAC单元)。无论它们看起来多么微不足道,所有这些机器都需要强大的安全性,例如通过加密和定期更新,以确保它们遵守最新的安全协议,以避免使它们容易受到中间人攻击。

    现实生活中一个人处于中间人攻击的例子是什么?

    不幸的是,中间人攻击很常见。这种攻击的一些最著名的例子包括:

    欧洲的企业银行账户盗窃案

    2015年,欧洲当局逮捕了49名嫌疑人,他们在欧洲各地使用中间人攻击实施了一系列银行账户盗窃案。该组织通过访问企业电子邮件账户,监控通信来查看付款交易,然后将这些交易转移到自己的账户,从欧洲公司窃取了大约600万美元。这次攻击包括网络钓鱼的尝试,以及建立起来旨在看起来真实的假网站。

    移动银行应用程序的错误证书使用情况

    2017年,研究人员发现了包括汇丰银行、NatWest银行、Co-op、桑坦德银行和爱尔兰联合银行等主要银行在移动应用中使用的认证技术的一个缺陷。该缺陷意味着,与合法用户在同一网络上的黑客可以通过未正确验证应用程序的主机名来访问登录用户名、密码和Pin等登录凭据。

    有了这种访问,黑客可以让中间人攻击者查看和收集信息,假冒合法用户采取行动,甚至启动应用内网络钓鱼攻击。有趣的是,在这种情况下提供访问权限的弱点源于处理证书的过程管理不当,这些过程实际上是为了提高安全性。

    Equaxl域安全故障

    2017年,美国最大的信用报告机构之一Equifax成为无安全域名连接中间人攻击的受害者,导致超过1亿消费者的个人信用信息被盗。该攻击始于Equifax未能修复其使用的开发框架中的一个漏洞,该漏洞允许黑客将恶意代码插入到HTTP请求中。从那里,黑客能够访问内部系统,并窃听用户会话,收集各种信息长达数月。

    如何保护防范中间人攻击?

    中间人攻击仍然频繁出现,因此对用户和组织安全构成严重威胁。尽管这些攻击的威胁很大,但您的组织的安全团队和用户都可以采取以下几个步骤来防范这些风险。最佳的保护措施包括:

    1)注意连接点

    黑客获得执行中间人攻击最常见的方式之一是通过不安全的连接点,比如公共wifi。因此,用户小心连接点是非常重要的。应该避免使用公共wifi(如果系统连接到公共网络,当然不会登录到任何系统),并使用VPN对网络连接进行加密。

    2)对用户开展关于网络钓鱼攻击知识的宣传

    网络钓鱼攻击是中间人攻击的另一个常见入口,最好的网络钓鱼攻击可能令人非常信服。教育用户关于这些攻击以及它们是如何发展的,可以帮助他们发现网络钓鱼攻击,避免成为受害者。

    3)通过输入URL和单击一个链接来导航到网站

    通过输入URL而不是点击链接导航到网站是帮助防止钓鱼攻击成功的最佳做法,因为黑客的常用策略是通过将用户引导到虚假网站或嵌入恶意软件来启动中间人攻击。这样做可以避免黑客发送一个稍微修改过的链接,从而打开攻击的大门。

    4)始终通过使用HTTPS来验证站点的合法性和安全性

    当用户输入一个网站的URL地址时,他们还应该包括HTTPS,并确保他们访问的任何网站都具有这种级别的安全性。检查HTTPS协议可能看起来很简单,但在共享敏感信息之前,它可以帮助验证站点的合法性和安全性。

    5)教育用户了解正常登录过程

    最近几次中间人攻击要求用户通过某些步骤登录一个实际上非正常登录过程的网站,尽管他们看起来完全合法。教育用户关于正常的登录过程所做的和不需要的事情,可以帮助他们更容易地识别出不寻常的情况。

    6)了解用户的正常登录习惯

    在安全团队方面,了解用户的正常登录习惯可以帮助更容易地标记任何异常的模式。例如,如果大多数用户倾向于在工作日登录,但突然之间在周末的活动激增,这可能令人担忧,需要进一步的调查。

    7)尽可能使用多因素身份验证

    要求用户使用多因素身份验证登录可以提供另一层保护,防止中间人攻击,即使黑客设法获得用户名/密码组合,没有其他的验证,他们也无法登录账户。(比如通过短信发送的信息。)

    这种方法并不是无懈可击的,因为最近一些处于中间人攻击已经破解了这种方法,但它确实提供了明显的保护。

    8)完成后退出安全会话

    强制用户在完成安全会话后就退出是一个重要的做法,因为关闭会话将结束从合法和非法来源对它的任何访问。换句话说,一个会话持续的时间越长,黑客能够以任何方式访问它的风险就越大。

    9)优先考虑PKI,特别是对于越来越多的机器身份

    最后,一个强大的PKI程序对于验证用户(包括人类和机器)之间的连接和加密他们的通信是至关重要的。PKI的最佳实践方法需要一个高度敏捷的系统,能够跟上快速增加的身份数量,一致应用安全标准,并定期更新加密密钥,以避免密钥泄露等风险。

    更多相关内容
  • 本文在模拟网络攻击实验环境中,使用Python的scapy模块构造ARP数据包发送给目标机进行ARP欺骗,成功实施了中间人攻击,然后嗅探局域网内部网络流量,截取HTTP协议数据包进行解析,初步实现了在被攻击者浏览网页点击...
  • 实施中间人攻击的步骤是首先利用IKEv1的离线口令穷举获取预共享密钥,获得预共享密钥后,把Diffie-Hellman(DH)中间人攻击原理应用于IKEv1的激进模式,实现对IKEv1的中间人攻击。通过分析该模式的中间人攻击原理,得出了...
  • HTTPS及HTTPS中间人攻击

    2021-02-01 12:08:46
    HTTPS及HTTPS中间人攻击,全站HTTPS正在称为潮流趋势,国内实现全站https的有淘宝和百度两家。 CIA:机密性,完整性,可用性(可用性是合法用户可以访问自己有权限访问的资源) 解决的是信息传输中数据被篡改、窃取 ...
  • 中间人攻击之Cookie

    2019-03-24 19:54:28
    某培训机构网课,平平淡淡,入门级别的东西
  • 实现一个ssl的客户端和服务端,作为中间人攻击,截取ssl通讯中的密文数据,并进行解密,使用时用把所有的报文都转向给程序所在的机器。
  • 安卓wifi破解、中间人攻击、安卓wifi嗅探,断开连接等
  • 中间人攻击

    千次阅读 2022-02-09 13:22:12
    中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”) 是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方 直接对话,但事实上整个会话都被...

    中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)

    是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方 直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。中间人攻击是一个(缺乏)相互认证的攻击。大多数的加密协议都专门加入了一些特殊的认证方法以阻止中间人攻击。例如,SSL协议可以验证参与通讯的一方或双方使用的证书是否是由权威的受信 任的数字证书认证机构颁发,并且能执行双向身份认证。
    在这里插入图片描述虚拟机做实验
    搭建局域网需要用到交换机,但是我们可以利用VMware虚拟机来模拟搭建局域网,因为VMware中自己就配置了虚拟交换机,图中VMnet1-VMnet19都是交换机,比如我们开了三台虚拟机,将这三台虚拟机的网络适配器中全部设置成自定义特定虚拟网络中的VMnet1,那么这三台虚拟机则处在了同一局域网中。
    注意:VMnet0是真实网络中的交换机(路由器),将虚拟机的网络模式更改为VMnet0时,此台虚拟机则将连接真实网络,和原主机处于同一网段中。
    在这里插入图片描述
    ARP协议
    ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。其作用是在以太网环境中,数据的传输所依懒的是MAC地址而非IP地址(交换机只能认识MAC地址),而将已知IP地址转换为MAC地址的工作是由ARP协议来完成的。

    在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

    ARP转发模式
    在这里插入图片描述当主机A向主机B中发送IP数据报时,会现在ARP缓存表中查看是否有主机B的ip地址,若有,就在ARP高速缓存中查出对应的MAC地址,将MAC地址写入MAC帧,然后通过局域网将MAC帧发往硬件地址。
    如果查询不到主机B的IP地址,具体会做以下几件事:
    1、ARP进程在本局域网广播一个ARP请求分组
    2、本局域网的所有主机上方陨星的ARP进程都会收到此ARP请求分组
    3、主机B的ip地址与ARP请求的一致,就收下这个ARP请求,并向主机A发送ARP相应分组,并在这个相应分组中写入自己的硬件地址。其他主机会丢弃这个ARP请求
    4、主机A收到主机B的ARP响应后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。

    ARP协议漏洞点

    当A发送ARP广播请求后,B黑客和C小白都可以做出应答,B使用ARP攻击工具发送冒充C的应答,此时ARP缓存表会以谁的数据报后到达则存储谁的MAC地址,B会一直发送数据报从而欺骗APR缓存表,使得A发送给C的报文会从B流过。
    也就是攻击人通过发送虚假的ARP应答实现ARP投毒!而受害人没有办法进行身份(真伪)验证。

    实验

    准备环境:虚拟机要一台Kali,一台Windows7客户机,一台Windows2003服务器。将三台虚拟机全部配置在同一个网段上
    配置:在windows2003搭建IIS平台,并配置asp靶场
    源码可以用这个:https://down.chinaz.com/soft/25923.htm

    1.在Windows2003中的管理工具里打开IIS管理器
    在这里插入图片描述先将IIS中的默认网站停止(右击有显示停止)在这里插入图片描述
    再右击网站文件夹,点击新建网站
    在这里插入图片描述
    下一步
    在这里插入图片描述
    添加个名称,例如test,下一步

    在这里插入图片描述
    分配IP地址,下一步
    在这里插入图片描述
    将网站源码解压好保存在自己设定的目录中,点击浏览选择源码目录,下一步
    在这里插入图片描述
    将图中打勾的都选上,下一步
    在这里插入图片描述
    完成
    在这里插入图片描述
    此时还打不开网站,需要将网站的首页设置好,也就是Index.asp文件设置好
    右击test(之间的描述名称),点击属性
    在这里插入图片描述
    进入属性后,找到“文档”,点击添加源码中的首页文件
    在这里插入图片描述
    到这里只能访问首页,还无法访问该网站其他页面,所以我们继续在属性中点击主目录,点击下面的配置
    在这里插入图片描述
    点击配置后弹出的窗口点击“选项”,勾选“启用父路径”,确定即可

    在这里插入图片描述最后还需要去“Web服务扩展”中将“Active Server Pages”设置成“允许”
    在这里插入图片描述

    这是去Windows7中浏览器访问Windows2003的局域网内IP地址192.168.0.105,网站可以正常访问
    在这里插入图片描述通过源码中的安装说明可以看到后台管理员登录地址,账号,密码,认证码等信息
    在这里插入图片描述
    访问后台登录地址,到这里网站环境搭建好了。
    在这里插入图片描述
    再去配置好Windows2003的FTP环境,同样是在IIS管理器中,打开FTP站点文件夹
    在这里插入图片描述

    右击默认FTP站点,进入属性
    在这里插入图片描述
    这里有个关键知识点,就是IIS中FTP的站点目录位置是在“C:\intpub\ftproot”中,经常会有面试官问到该问题
    在这里插入图片描述
    我们在计算机中去找到该文件夹,并在其中创建任意文件
    在这里插入图片描述
    在windows7中用FTP去访问Windows2003中刚创建的文件,可以访问成功
    在这里插入图片描述
    如果将Window2003FTP属性中的“安全账户”的“允许匿名连接”前的勾去掉,那么就需要该服务器的账户密码去连接FTP了
    在这里插入图片描述
    这里额外学习一个黑客必备命令窗口指令:
    “net user” 查看此计算机的用户名
    “net user 用户名 密码 /add” 添加一个用户 如“net user Hades 123456 /add”就是添加一个Hades用户,密码为123456
    在这里插入图片描述

    现在再从windows7使用FTP访问Windows2003则需要输入账号密码了
    在这里插入图片描述
    到这里所有环境已经搭建完成,可以打开Kali Linux了
    在Kali中搜索“Ettercap”这款工具
    在这里插入图片描述
    打开是这个样子在这里插入图片描述
    默认设置了eth0网卡监听,直接点击上方的“√”,开始监听
    在这里插入图片描述分别点击左上方圈出的两个键,搜集处网段中的主机Host
    在这里插入图片描述
    将目标主机windows7设置为Target1
    在这里插入图片描述
    Windows2003设置为Target2
    在这里插入图片描述
    点击右上方的MITM按钮,设置arp poisoning…,开始arp欺骗

    在这里插入图片描述
    在这里插入图片描述
    在Windows7中,打开cmd输入“arp -a”指令打开arp缓存表,发现有两个相同MAC地址的IP,说明已经欺骗成功
    在这里插入图片描述
    在Windows7中ftp访问Windows2003
    在这里插入图片描述
    登录FTP的账号密码已经被劫持
    在这里插入图片描述
    同样登录http也被劫持
    在这里插入图片描述在这里插入图片描述

    复现完成!

    展开全文
  • Lanmitm — Android中间人攻击测试工具 #####下载说明:安装文件请直接进入download目录下载,开发版请自行导入eclipse中运行 更新历史 ####v1.2.1版本说明 (2014-12-15) 1、修复bug ####v1.2版本说明 (2014-12-12) ...
  • 信息安全-中间人攻击的技术构成,以及Kali Linux的双工具.
  • 用Golang实现的中间人攻击( ),解析,监测,篡改HTTP / HTTPS流量。 特色 HTTPS证书相关逻辑参考且与之兼容,根证书也保存在~/.mitmproxy文件夹中,如果之前用过mitmproxy且根证书已经安装信任,则此go-mitmproxy...
  • Lanmitm, Android中间人攻击测试工具
  • 基于SSL协议中间人攻击的实现与防范措施 ,周珅珅,温巧燕,本文介绍了目前互联网上广泛应用的安全协议SSL的体系架构并分析了其存在的安全漏洞;重点根据协议中基于证书实现身份认证的安全缺
  • 合肥工业大学密码学实验,改进的DH密钥协商(抗中间人攻击),含源码和报告,使用语言为Python,得分92.
  • 可信网络连接协议作为可信计算框架中的核心技术,存在中间人攻击的安全威胁。为了解决中间人攻击问题,优化了Diffie-Hellman密钥交换协议,提出了基于数字签名及签名验证的端到端协议。与现有协议相比,提出的方案...
  • 移动应用APP中间人攻击的分析与测试.pdf
  • ARP中间人攻击步骤及个人小心得
  • HWSNs固有的特性使得密钥管理研究面临许多新挑战,提出了一种基于椭圆曲线加密(ECC)与对称密码体制的混合密钥管理方案NHKM,通过使用证书和不重数签名实现对节点公钥的认证,较好地避免了中间人攻击。仿真结果表明...
  • 二、什么是中间人攻击 三、https 是绝对安全的吗 四、中间人攻击的初步了解 五、中间人攻击的深入了解 六、https 是如何防止中间人攻击的 SSL-Pinning 七、浏览器是如何确保CA证书的合法性? (1)证书包含...

    目录

    一、写在前面

    二、什么是中间人攻击

    三、https 是绝对安全的吗

    四、中间人攻击的初步了解

    五、中间人攻击的深入了解 

    六、https 是如何防止中间人攻击的

            SSL-Pinning

    七、浏览器是如何确保CA证书的合法性?

    (1)证书包含什么信息?

    (2)证书的合法性依据是什么?

    (3)浏览器如何验证证书的合法性?

    八、https 可以抓包吗

    九、预置证书/公钥更新问题


    一、写在前面

            首先,当个位读者在看到这篇文章时,我默认大家已经对HTTPS协议有一定的了解,包括但不仅限于了解HTTSP和HTTP的区别以及HTTPS建立连接的过程,如果你不懂这些,希望你能花一些时间先去了解我说的这些。

    二、什么是中间人攻击

            中间人攻击是指攻击者通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。

    HTTPS 使用了 SSL 加密协议,是一种非常安全的机制,目前并没有方法直接对这个协议进行攻击,一般都是在建立 SSL 连接时,拦截客户端的请求,利用中间人获取到 CA证书、非对称加密的公钥、对称加密的密钥;有了这些条件,就可以对请求和响应进行拦截和篡改。

    三、https 是绝对安全的吗

            不是绝对安全的,可以通过中间人攻击。

    四、中间人攻击的初步了解

    过程原理:

    1. 本地请求被劫持(如DNS劫持等),所有请求均发送到中间人的服务器
    2. 中间人服务器返回中间人自己的证书
    3. 客户端创建随机数,通过中间人证书的公钥对随机数加密后传送给中间人,然后凭随机数构造对称加密对传输内容进行加密传输
    4. 中间人因为拥有客户端的随机数,可以通过对称加密算法进行内容解密
    5. 中间人以客户端的请求内容再向官方网站发起请求
    6. 因为中间人与服务器的通信过程是合法的,官方网站通过建立的安全通道返回加密后的数据
    7. 中间人凭借与官方网站建立的对称加密算法对内容进行解密
    8. 中间人通过与客户端建立的对称加密算法对官方内容返回的数据进行加密传输
    9. 客户端通过与中间人建立的对称加密算法对返回结果数据进行解密

            由于缺少对证书的验证,所以客户端虽然发起的是 HTTPS 请求,但客户端完全不知道自己的网络已被拦截,传输内容被中间人全部窃取。

    五、中间人攻击的深入了解 

            首先,在客户端和服务端建立HTTPS连接的初期,客户端和服务端双方发生了经历的以下过程

            而中间人在这个过程中可以做什么事情呢?我们还以Fiddler举例。Fiddler的工作是介于客户端和服务器中间的,它会先于客户端接收到服务器返回的加密数据,然后它也可以使用操作系统内置的CA公钥对这段数据解密,从而得到服务器的公钥,并先将这个公钥保存起来。

            接下来,Fiddler会将解密出来的数据进行调包,将其中服务器返回的公钥替换成自己的一个公钥,然后使用自己的非对称加密的私钥对数据重新加密,并将这段重新加密后的数据返回给客户端。示意图如下:

            但是我们知道,用Fiddler自己的私钥加密后的数据,客户端肯定解密不出来呀,因为Fiddler的公钥并没有内置到客户端操作系统当中,所以我们一定要在手机上安装一个Fiddler提供的证书才行,只是为了让客户端能够解密出Fiddler调包之后的数据。如下图所示:

            这样客户端仍然获得了一个公钥,并且还以为这个公钥是服务器返回的,实际上这是一个被Fiddler调包之后的公钥。而服务器返回的真实公钥则被Fiddler保存了起来。

            到这里为止,获取服务器公钥的流程就结束了,目前各部分的状态如下:

            接下来是客户端与服务器商定对称加密密钥的过程。

            客户端可以利用随机算法在本地生成一个对称加密密钥,并用服务器返回的公钥进行加密,然后发送给服务器。由于公钥加密的数据只能用私钥解密,因此没有任何人能破解出客户端生成的对称加密密钥到底是什么。

            然后服务器这边使用自己的私钥将客户端发来的数据进行解密,这样客户端和服务器就都知道对称加密的密钥是什么了,并且绝对没有第三个人能知道,这样双方之后都使用对称加密来进行通讯即可,从而保证了数据传输的安全。示意图如下:

            然而现在有了Fiddler,一切就都不一样了。

            客户端这边拿到的其实根本就不是服务器的公钥,而是由Fiddler调包后的公钥。所以,客户端这边生成一个对称加密密钥后,使用的也是Fiddler调包后的公钥来进行加密的,这样这段加密后的数据只有用Fiddler自己的私钥才能解开。

            那么很显然,Fiddler当然是有自己的私钥的,因此它能够解密出这段数据,这样Fiddler就知道客户端生成的对称加密密钥是什么了。

            接下来不要忘记,Fiddler还在之前就保存了服务器返回的真实公钥,那么现在Fiddler可以用真实的服务器公钥再次加密这段数据,然后将加密后的数据发送给服务器。

            对于服务器而言,它并不知道客户端这边发生了什么事,也不知道Fiddler的存在。它只知道,用自己的私钥是可以解密出客户端发来的数据,并能从中获得对称加密的密钥。示意图如下:

            到这里,对称加密密钥的商定过程也就结束了,目前各部分的状态如下:

            你会发现,现在客户端、服务器、Fiddler,这三者都知道对称加密的密钥是什么。

            之后客户端与服务器之间的所有通讯都会使用这个密钥加密后再进行传输,不知道密钥的人自然是无法解密出传输的内容的,但是Fiddler却知道密钥是什么,因此它可以完美监听客户端与服务器之间的通讯内容,也就实现了对https协议抓包的功能。

            以上就是https协议抓包的实现原理,虽然从最后的结果看上去,Fiddler在其中各种调包替换数据,干了很多不安全的操作。但Fiddler之所以有权限这么干,前提因为我们在一开始的时候手动安装了Fiddler的证书,否则后面的流程都是走不通的。

    六、https 是如何防止中间人攻击的

            https 无法防止中间人攻击,只有做证书固定ssl-pinning 或者 apk中预置证书做自签名验证可以防中间人攻击。具体的可以看这一篇文章。

            SSL-Pinning

    • 证书锁定(Certificate Pinning)
      在客户端代码内置仅接受指定域名的证书,而不接受操作系统或浏览器内置的CA根证书对应的任何证书。(缺陷:证书有效期问题)
    • 公钥锁定(Public Key Pinning)
      提取证书中的公钥并内置到客户端中,通过与服务器对比公钥值来验证连接的正确性

    七、浏览器是如何确保CA证书的合法性?

    (1)证书包含什么信息?

            颁发机构信息、公钥、公司信息、域名、有效期、指纹......

    (2)证书的合法性依据是什么?

            首先,权威机构是要有认证的,不是随便一个机构都有资格颁发证书,不然也不叫做权威机构。另外,证书的可信性基于信任制,权威机构需要对其颁发的证书进行信用背书,只要是权威机构生成的证书,我们就认为是合法的。所以权威机构会对申请者的信息进行审核,不同等级的权威机构对审核的要求也不一样,于是证书也分为免费的、便宜的和贵的。

    (3)浏览器如何验证证书的合法性?

            浏览器发起HTTPS请求时,服务器会返回网站的SSL证书,浏览器需要对证书做以下验证:

    1. 验证域名、有效期等信息是否正确。证书上都有包含这些信息,比较容易完成验证;
    2. 判断证书来源是否合法。每份签发证书都可以根据验证链查找到对应的根证书,操作系统、浏览器会在本地存储权威机构的根证书,利用本地根证书可以对对应机构签发证书完成来源验证;
    3. 判断证书是否被篡改。需要与CA服务器进行校验;
    4. 判断证书是否已吊销。通过CRL(Certificate Revocation List 证书注销列表)和 OCSP(Online Certificate Status Protocol 在线证书状态协议)实现,其中 OCSP 可用于第3步中以减少与CA服务器的交互,提高验证效率。

            以上任意一步都满足的情况下浏览器才认为证书是合法的。

    八、https 可以抓包吗

            HTTPS 的数据是加密的,常规下抓包工具代理请求后抓到的包内容是加密状态,无法直接查看。

            但是,我们可以通过抓包工具来抓包。它的原理其实是模拟一个中间人。通常 HTTPS 抓包工具的使用方法是会生成一个证书,用户需要手动把证书安装到客户端中,然后终端发起的所有请求通过该证书完成与抓包工具的交互,然后抓包工具再转发请求到服务器,最后把服务器返回的结果在控制台输出后再返回给终端,从而完成整个请求的闭环。

            有人可能会问了,既然 HTTPS 不能防抓包,那 HTTPS 有什么意义?

            HTTPS 可以防止用户在不知情的情况下通信链路被监听,对于主动授信的抓包操作是不提供防护的,因为这个场景用户是已经对风险知情。要防止被抓包,需要采用应用级的安全防护,例如采用私有的对称加密,同时做好移动端的防反编译加固,防止本地算法被pojie。

    九、预置证书/公钥更新问题

            这样做虽然解决了抓包问题,但是也带来了另外一个问题:我们购买的证书都是有有效期的,到期前需要对证书进行更新。主要有两种方式:

    1. 提供预置证书更新接口。在当前证书快过期时,APP请求获取新的预置证书,这过渡时期,两个证书同时有效,直到安全完成证书切换。这种方式有一定的维护成本,且不易测试。
    2. 在APP中只预埋公钥,这样只要私钥不变,即使证书更新也不用更新该公钥。但是,这样不太符合周期性更新私钥的安全审计需求。一个折中的方法是,一次性预置多个公钥,只要任意一个公钥验证通过即可。考虑到我们的证书一般购买周期是3-5年,那么3个公钥,可以使用9-15年,同时,我们在此期间还可以发布新版本废弃老公钥,添加新公钥,这样可以使公钥一直更新下去。
    展开全文
  • HTTPS连接过程中的中间人攻击

    千次阅读 2022-02-08 21:05:01
    这里写目录标题HTTPS连接过程中间人劫持攻击 HTTPS连接过程 https协议就是http+ssl协议,如下图所示为其连接过程: HTTPS连接的整个工程如下: https请求:客户端向服务端发送https请求; 生成公钥和私钥:服务端...

    HTTPS连接过程

    https协议就是http+ssl/tls协议,如下图所示为其连接过程:
    在这里插入图片描述

    HTTPS连接的整个工程如下:

    1. https请求:客户端向服务端发送https请求;
    2. 生成公钥和私钥:服务端收到请求之后,生成公钥和私钥。公钥相当于是锁,私钥相当于是钥匙,只有私钥才能够打开公钥锁住的内容;
    3. 返回公钥:服务端将公钥(证书)返回给客户端,公钥里面包含有很多信息,比如证书的颁发机构、过期时间等等;
    4. 客户端验证公钥:客户端收到公钥之后,首先会验证其是否有效,如颁发机构或者过期时间等,如果发现有问题就会抛出异常,提示证书存在问题。如果没有问题,那么就生成一个随机值,作为客户端的密钥,然后用服务端的公钥加密;
    5. 发送客户端密钥:客户端用服务端的公钥加密密钥,然后发送给服务端。
    6. 服务端收取密钥,对称加密内容:服务端收到经过加密的密钥,然后用私钥将其解密,得到客户端的密钥,然后服务端把要传输的内容和客户端的密钥进行对称加密,这样除非知道密钥,否则无法知道传输的内容。
    7. 加密传输:服务端将经过加密的内容传输给客户端。
    8. 获取加密内容并解密:客户端获取加密内容后,用之前生成的密钥对其进行解密,获取到内容。

    中间人劫持攻击

    https也不是绝对安全的,中间人可以获取到客户端与服务器之间所有的通信内容,如下图所示为中间人劫持攻击:
    在这里插入图片描述

    中间人攻击流程如下:

    1. A向B请求公钥,但是却被C截获。
    2. C向B发送公钥请求。
    3. B将公钥发给C。
    4. C截获了B的公钥,然后替换成自己的公钥发给A。
    5. A将C的公钥当成了B的公钥,并用其加密信息,发给B。
    6. C截获了加密信息,用自己的私钥解密,获得明文。同时伪造新的信息,再用B的公钥加密,发给B。
    7. B获得加密信息,用自己的私钥解密。

    只靠公钥本身是无法防御中间人攻击的。这时候,我们就需要一个第三方的可信任的机构来解决这个公钥传递的问题,那就是证书

    展开全文
  • 简述HTTPS中间人攻击

    2022-03-22 16:45:22
    中间人攻击过程如下: 服务器向客户端发送公钥。 攻击者截获公钥,保留在自己手上。 然后攻击者自己生成一个【伪造的】公钥,发给客户端。 客户端收到伪造的公钥后,生成加密hash值发给服务器。 ...
  • kali中间人攻击

    千次阅读 2022-01-14 23:36:22
    1. 了解如何为kali配置IP地址。 2. 了解如何应用kali中的ettercap工具能进行ARP投毒。 3. 理解ARP原理、ARP攻击原理、ARP欺骗原理。
  • 为应用程序提供一种快速简便的方法,以在没有root特权的情况下在给定的电话上执行中间人攻击。 这段代码展示了恶意应用程序如何在没有 root 权限的情况下对您的手机执行 mitm 攻击。 这个想法是改变设备的主DNS...
  • SSH基础:中间人攻击防范

    千次阅读 2019-12-08 11:22:53
    中间人攻击有很多方式,比如常见的ARP或者DNS欺骗,在SSH连接时也有可能碰到类似的情况,所以ssh在know_hosts的管理中加入了对于已知服务器的信任列表的管理,多多少少可以确认一些可能的风险。
  • 中间人攻击,Man-in-the-middle attack,缩写:MITM,是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者...
  • SSL-CCS注入漏洞分析与中间人攻击实现。有不对的地方欢迎指正
  • 文章介绍了2G/3G以及3G-WLAN两种异构互连网络的中间人攻击,分析了攻击的可行性,并各自讨论了相应的防御机制,最后对异构无线网络的安全做出了总结和展望。
  • Riddle漏洞存在于DBMS Oracle MySQL中,攻击者可以利用漏洞和中间人身份窃取用户名和密码。下面小编给大家带来了MySQL曝中间人攻击Riddle漏洞可致用户名密码泄露的处理方法,需要的朋友参考下吧

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 70,378
精华内容 28,151
关键字:

中间人攻击