MITM攻击(中间人攻击)
中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。
总体来讲,中间人攻击可分为如下五种不同的类型:
1、WiFi欺骗:攻击者可以创建与本地免费WiFi同名的虚假WiFi接入点。比如,在咖啡馆中,攻击者会模仿创建一个和墙上贴着WiFi信息同名的WiFi。一旦您连接上去,您的一切在线网络行为,将尽在攻击者的监控和掌握之中。
2、HTTPS欺骗:攻击者通过欺骗您的浏览器,使您认为自己访问的是可信任站点。当您输入与该站点相关的登录凭据时,您的流量将被重定向到攻击者自建的非安全站点处。
3、SSL劫持:通常,当您尝试连接或访问不安全的http://站点时,您的浏览器会自己将您重定向到安全的https://处。此时,攻击者则可以劫持该重定向的过程,将指向其自建服务器的链接植入其中,进而窃取您的敏感数据、以及输入的所有信任凭据。
4、DNS欺骗:为了准确地浏览到目标网站,域名系统会将地址栏中的URL,从人类易于识别的文本格式,转换为计算机易于识别的IP地址。然而,DNS欺骗则会迫使您的浏览器,在攻击者的控制下,发生转换异常,而去访问那些被伪造的地址。
5、电子邮件劫持:如果攻击者获得了受信任机构的邮箱、甚至是邮件服务器的访问权限,那么他们就能够拦截包含敏感信息的客户电子邮件,甚至以该机构的身份发送各种电子邮件。
以上所介绍的只是5种典型的中间人攻击方式,在现实情况中,此类攻击还会有许多变种与组合。
安全科普:什么是中间人攻击
中间人攻击,英文全称:Man-in-the-MiddleAttack,简称MITM攻击,是一种间接的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为中间人。
中间人攻击是一种由来已久的网络入侵手段,并且当今仍然有着广泛的发展空间,比如:SMB会话劫持、DNS欺骗等都是典型的MITM攻击。简而言之,所谓的MITM攻击就是通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情。
在当下,MITM攻击越来越多样化。最初,攻击者只要将网卡设为混杂模式,伪装成代理服务器监听特定的流量就可以实现攻击,这是因为很多通信协议都是以明文来进行传输的,如HTTP、FTP、Telnet等。后来,随着交换机代替集线器,简单的嗅探攻击已经不能成功,必须先进行ARP欺骗才行。如今,越来越多的服务商开始采用加密通信,SSL是一种广泛使用的技术,HTTPS、FTSP等都是建立在其基础上的。
中间人攻击很早就成为了黑客常用的一种古老的攻击手段,并且一直到如今还具有极大的扩展空间。在网络安全方面,MITM攻击的使用是很广泛的,曾经猖獗一时的SMB会话劫持、DNS欺骗等技术都是典型的MITM攻击手段。在黑客技术越来越多的运用于以获取经济利益为目标的情况下,MITM攻击成为对网银、网游、网上交易等最有威胁并且最具破坏性的一种攻击方法。
Charles抓取https数据的原理,如何防止中间人攻击
阅读原文
Charles 作为一个“中间人代理”,当浏览器和服务器通信时, Charles 接收服务器的证书,但动态生成一张证书发送给浏览器,也就是说 Charles 作为中间代理在浏览器和服务器之间通信,所以通信的数据可以被 Charles 拦截并解密。由于 Charles 更改了证书,浏览器校验不通过会给出安全警告,必须安装 Charles 的证书后才能进行正常访问。
下面来看具体的流程:
这就是我们执行【在电脑上安装Charles根证书】或【移动端安装Charles根证书】的理由了。 CA证书 认证链的终点是根证书,如果能证明该证书的颁发机构的根位于系统根证书列表内,则说明该证书就是有效的。
其实即使我们不在客户端安装 Charles 根证书,仅仅执行【指定需要解析的Https请求】这一步也是可以抓取 Https 数据的。
但此时客户端会发出警告信息,选择忽视警告继续访问就可以了。
这种情况也有例外,如果服务端Https使用 HSTS 规则的话,当证书不被系统信任时,连接是不会创建成功的。
参考检测代理方法
以上设置,会校验请求的时候不仅仅校验域名,会将证书中的公钥及其他信息也进行校验,中间人伪造的证书就无法通过验证,无法进行抓包。
以上资料结合自己理解和资料,供参考,谢谢!
参考资料
浅谈Charles抓取HTTPS原理
iOS 如何防止https抓包
HTTPS中间人攻击
前言
之前为信安系统导论展示准备的实验被之前的小组“捷足先登”了,无奈只能又找别的实验,看了各个小组的题目,发现已经涵盖了大部分常见易操作的攻击方式,很难找到一个完全独立于其他人攻击方式的新实验,毕竟攻击思路都有共通之处,常用工具也就那些。
翻论坛找到一个有关中间人攻击的实验,觉得可以作为这次的展示,遂决定以此为题。
背景知识
原理介绍
1.HTTPS和HTTP
HTTPS是在HTTP应用层基础上使用SSL(完全套接层)作为子层,SSL使用数据加密技术确保数据在网络上传输而不会被截取及窃听。
2.中间人攻击
①SSLStrip (降级攻击)的工作原理及步骤
(1) 先进行中间人攻击来拦截 HTTP 流量。
(2) 将出现的 HTTPS 链接全部替换为 HTTP,同时记下所有改变的链接。
(3) 使用 HTTP 与受害者机器连接。
(4) 同时与合法的服务器建立 HTTPS。
(5) 受害者与合法服务器之间的全部通信经过了代理转发。
(6) 其中,出现的图标被替换成为用户熟悉的“小黄锁”图标,以建立信任。
(7) 这样,中间人攻击就成功骗取了密码、账号等信息,而受害者一无所知。
总而言之,SSLStrip是一种降级攻击。
②sslsplit(解密攻击)工作原理
工具的主要原理是以中间人的身份将证书插入到客户端和服务器中间,从而截断客户端和服务器之间的数据。
之前我们大多数做的都是针对于80端口的欺骗(http),也就是说,只要是超越了80端口我们就会有点棘手:比如常用的443端口(https),比如465(smtps)和587端口,这些都是通过SSL加密进行数据传输的,简单的80端口监听肯定是什么都拿不到的。这个时候,就体现出SSL证书劫持的作用了。
总而言之,SSLSplit是一种伪造证书攻击。
3.端口转发
数据包都是有原地址和目标地址的,NAT(network address translation,网络地址转换)就是要对数据包的原地址或者目标地址(也可以修改端口的)进行修改的技术。为什么我们要修改ip地址呢?是这样的互联网中只能传送公网地址的数据包,私有地址的数据包是无法传送的。这样你想下,你每天在wifi环境下看视频浏览网站的时候你的ip是什么(私有地址,你手机、pad、电脑发出来的所有数据包原地址都是私有地址。怎么在互联网上传送)。为了能让你的数据包在能在互联网上传送,必须给你一个公网ip才行。所以当你上互联网的时候,路由器会帮你把所有的数据包的原地址转换成它的wlan口的ip地址(这个就是公网ip,一般就是ADSL拨号获取的ip)。这个转换的技术就是NAT。当你所访问的服务器给你回应数据包时,路由器会把所有数据包目标地址,由它的wlan口的ip地址,改回你内网的ip地址。这样你才能上互联网。所以你每天都在使用NAT技术。
4..数据重定向的方法
如何重定向到攻击者电脑上成为靶机和服务器的中间人,其实有很多种方式。
比如:
(1)arp攻击(伪装网关)
(2)DNS劫持(伪装服务器)
(3)wifi钓鱼(之前pxy他们组做的实验就可以利用起来)
(4)修改hosts文件(把舍友暴打一顿,然后把他的电脑里的hosts文件改掉)
(5)修改默认网关(把舍友暴打一顿,然后把他的电脑里的默认网关改成自己的ip)
攻击过程
1.sslstrip攻击
①将设备设置为转发模式,这样我们的设备就可以转发目标不是我们设备的数据包。若不这样,则目标主机会出现断网的情况,arp欺骗就成了arp断网攻击。
防范方式
我们可以看到,无论是哪种攻击手段,利用的都是局域网的中间人攻击。因此一些防范方式有:
①不随意连接公共wifi
②对于arp表中的ip和MAC地址进行静态固定
③开启一些安全软件的arp防火墙
④及时更新浏览器版本或换用其他安全性高的浏览器
一些感想
找一种比较有特点的攻击方式不是那么容易,实现更不容易,这过程中遇到了各种问题,一些问题网上也找不到确切的解决方法,一度卡住后想要放弃换实验,但还是做了下来。尽管还是没能完全实现,但展示出自己的问题和疑惑也未尝不可。展示的过程中主要还是展示原理和实操过程,而对于实验的准备、中途遇到的问题以及其他实验过程,则没有时间也不必要作为展示,但这一过程其实才是实验对于我们小组成员来说最重要的。
小组成员也都很努力,也都按照自己的能力分担了不同的工作,不像操作系统的小组有人完全划水...总体来说实验还是比较成功的(强行自我鼓励),希望以后再有类似的展示能做的更完善吧。
iOS相关知识(七)--https 中间人攻击(是怎样攻击的)为何https还能被抓包
HTTPS 中间人攻击。也就是通讯双方中插入一个中间人,通讯双方的对方已经变成中间人了,而不是原本的对方。
HTTPS 协议之所以是安全的是因为 HTTPS 协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。但其实,HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。
HTTPS的整体过程分为证书验证和数据传输阶段
① 证书验证阶段
② 数据传输阶段
为什么数据传输是用对称加密?
首先,非对称加密的加解密效率是非常低的,而 http 的应用场景中通常端与端之间存在大量的交互,非对称加密的效率是无法接受的;另外,在 HTTPS 的场景中只有服务端保存了私钥,一对公私钥只能实现单向的加解密,所以 HTTPS 中内容传输加密采取的是对称加密,而不是非对称加密。
为什么需要 CA 认证机构颁发证书?
HTTP 协议被认为不安全是因为传输过程容易被监听者勾线监听、伪造服务器,而 HTTPS 协议主要解决的便是网络传输的安全性问题。首先我们假设不存在认证机构,任何人都可以制作证书,这带来的安全风险便是经典的“中间人攻击”问题。“中间人攻击”的具体过程如下:
过程原理:
1、客户端请求被劫持(如DNS劫持等),所有请求均发送到中间人的服务器
2、中间人服务器返回中间人自己的证书
3、客户端创建随机数,通过中间人证书的公钥对随机数加密后传送给中间人,然后凭随机数构造对称加密对传输内容进行加密传输
4、中间人因为拥有客户端的随机数,可以通过对称加密算法进行内容解密
5、中间人以客户端的请求内容再向正规网站发起请求
6、因为中间人与服务器的通信过程是合法的,正规网站通过建立的安全通道返回加密后的数据
7、中间人凭借与正规网站建立的对称加密算法对内容进行解密
8、中间人通过与客户端建立的对称加密算法对正规内容返回的数据进行加密传输
9、客户端通过与中间人建立的对称加密算法对返回结果数据进行解密
由于缺少对证书的验证,所以客户端虽然发起的是 HTTPS 请求,但客户端完全不知道自己的网络已被拦截,传输内容被中间人全部窃取。
Q: HTTPS 为什么安全?
A: 因为 HTTPS 保证了传输安全,防止传输过程被监听、防止数据被窃取,可以确认网站的真实性。
Q: HTTPS 的传输过程是怎样的?
A: 客户端发起 HTTPS 请求,服务端返回证书,客户端对证书进行验证,验证通过后本地生成用于改造对称加密算法的随机数,通过证书中的公钥对随机数进行加密传输到服务端,服务端接收后通过私钥解密得到随机数,之后的数据交互通过对称加密算法进行加解密。
Q: 为什么需要证书?
A: 防止”中间人“攻击,同时可以为网站提供身份证明。
Q: 使用 HTTPS 会被抓包吗?
A: 会被抓包,HTTPS 只防止用户在不知情的情况下通信被监听,如果用户主动授信,是可以构建“中间人”网络,代理软件可以对传输内容进行解密。
参考文章地址
中间人攻击的代理服务器
不再可靠的代理服务器
代理服务器(ProxyServer)的存在已经是很长久的事实了,而且由最初的几个基于TCP/IP协议的代理软件如HTTP、SMTP、POP3和FTP等发展到SSL、SOCK4/5以及其他未知的代理类型,可谓给一些特殊用途者提供了极大的方便。例如,通过代理跨过某些服务器的IP屏蔽,从而浏览到本来不能看到的信息;或者害怕自己IP暴露被对方入侵而寻找层层代理把自己包裹起来;还有些是因为系统不支持Internet共享而被迫采用代理软件来让内部网络的计算机能正常连接Internet……此外还有许多原因,让各种代理服务器经久不衰。
代理服务器相当于一个透明的数据通道,它根据客户发来的“要求连接某计算机”的请求数据,进而用自己本身作为原客户机器去连接目标计算机,在目标计算机返回数据后,再发送给原客户,这时目标计算机获取到的是代理服务器的IP,而不是原客户IP,从而实现突破IP屏蔽或者让对方无法获取你的真实IP。
简单举个HTTP代理服务器工作的原理:IE发送一个包含目标URL的HTTP请求,代理服务器接收并析出HTTP报文里的目标URL和相关参数,然后把这个URL作为一次标准的HTTP连接过程与目标网站连接,获取目标网站返回的数据后缓冲到代理服务器的硬盘上,再把这些数据返回给客户端。
请求连接目标URL------连接目标服务器-------
客户端-------------------------代理服务器------------------------目标服务器
-----返回数据----(缓冲)-------------返回数据
其它协议的代理工作模式也都差不多,代理服务器充当了一个数据转向的工作站,相当于一个专门负责数据转发的“勤劳工人”。
代理服务器的工作模式,正是典型的“中间人攻击”模型。代理服务器在其中充当了一个“中间人”的角色,通讯双方计算机的数据都要通过它。因此,“代理服务器进行的‘中间人攻击’”逐步成为现实,相对于其他“中间人攻击”方法,这种利用代理服务器暗渡陈仓的做法简直天衣无缝,攻击者可以自己写一个带有数据记录功能的代理服务程序,放到任意一台稳定的肉鸡甚至直接在自己机器上,然后通过一些社会工程学手段让受害者使用这个做了手脚的“代理服务器”,便可守株待兔了。这种方法最让人不设防,因为它利用的是人们对代理的无条件信任和贪便宜的想法,使得一个又一个“兔子”自动撞了上来,在享受这顿似乎美味的“胡萝卜”的同时却不知道安全正在逐渐远离自己。
如果制作这个代理服务器的攻击者仅限于窥探数据,那么受害者的损失可能还能估量,但是如果攻击者在目标服务器返回的数据里加入一个带有木马程序的数据呢。例如在HTTP代理返回的HTML报文里加入一个MIME攻击漏洞代码,而受害者的计算机恰好没有打相应补丁,那么由此带来的损失就难以估量了,而且计算机技术不高的受害者也难以查出木马究竟是从哪里来的,因为很少有人怀疑代理服务器自身会有问题。
0条大神的评论