【小白文|原理解析】现在还可以嗅探到帐号密码吗?

admin 2022年7月6日08:28:01评论20 views字数 3777阅读12分35秒阅读模式

欢迎回来,我的新手黑客!


一直想写一篇通俗易懂的文章,让阅读的人通过几分钟的阅读,了解一件事情的原理,所以就有了今天的文章


这篇文章分享的是关于账号密码嗅探的原理解析以及为什么现在中间人攻击越来越难以生效




早期互联网刚刚兴起,没有那么多的安全加密机制,人们 只要能上网就可以了,也没有那么多的安全意识,所以早期的很多web服务都只通过HTTP对外提供服务


通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其它信息


但是,在方便用户浏览的同时,HTTP也给用户带来了严重的危害,其中最严重的危害就是HTTP协议缺少认证机制和使用明文传送数据,所以容易被窃听,我们来看一张图

【小白文|原理解析】现在还可以嗅探到帐号密码吗?

根据上图可以看到在数据传输的过程中,这么多环节都可能发生窃听,而只要有一个环节对该数据包进行嗅探,那么传输的数据就不安全,我们使用Wireshark也可以轻易的嗅探数据

【小白文|原理解析】现在还可以嗅探到帐号密码吗?

我们来看一个案例,使用Wireshark来嗅探用户账号密码

打开Wireshark,选定需要进行抓包的网卡,过了一会儿我们就发现受到了许许多多的数据包,我们需要对数据包进行筛选,让其只显示我们需要的部分数据包

【小白文|原理解析】现在还可以嗅探到帐号密码吗?

使用语句进行过滤数据包

http.request.method == "POST"

【小白文|原理解析】现在还可以嗅探到帐号密码吗?

接着我们查看该数据包,抓到POST提交数据的地方

【小白文|原理解析】现在还可以嗅探到帐号密码吗?


接着我们右键->追踪流->HTTP流

【小白文|原理解析】现在还可以嗅探到帐号密码吗?


仔细观察图中框出来的地方,我们就看到刚才输入的账号密码,验证了使用HTTP协议导致可以嗅探用户的账号密码




所以随着互联网的发展,单纯实现用户上网已经不能满足用户的需求了,于是乎机智的人们就想到了对HTTP协议进行加密传输以保证传输数据的安全性




这几年开始很多网站开始通过HTTPS(默认端口443)对外提供Web服务了,那HTTPS和HTTP之间有什么关系呢?

HTTPS:常称为HTTP over TLS、HTTP over SSL或HTTP Secure是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性


从上述一段话中,我们可以提取出两个关键内容

  1. HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包

  2. HTTPS开发的主要目的,是提供对网站服务器的身份认证


那么HTTPS通过加密层(SSL/TLS)能够有效地提供认证和高强度的加密,严格地讲,HTTPS并不是一个单独的协议,而是对工作在一加密连接(TLS或SSL)上的常规HTTP协议的称呼


其次,HTTPS怎么提供身份认证的呢?因为SSL不仅提供加密功能,还提供证书,那么怎么确保证书的安全性呢?说到证书的安全性就必须提到一个机构CA,该证书是由公认的值得信赖的机构颁布的,其他机构不能颁布证书,由证书颁发机构签发的证书有免费的,也有每年收费数美元到数千美元不等的,默认CA是值得信赖的,所以其颁布的证书也一样是值得信赖的,访问是安全的


对于身份认证还分为,单向认证和双向认证


单向认证指的是客户端即用户认证服务器证书的真实性,其中认证过程分为以下几步骤


  1. 首先服务端,即Web服务器在搭建的时候向CA申请证书

  2. 当客户端去访问Web服务的时候,客户端向Web服务器请求证书

  3. 接着客户端向CA验证该证书是不是颁布给该网站的,如果是的话,证书有效,如果不是的话,则证书无效

【小白文|原理解析】现在还可以嗅探到帐号密码吗?

双向认证则为客户端和服务器相互验证证书的有效性

  1. 首先服务端,即Web服务器在搭建的时候向CA申请证书

  2. 当客户端去访问Web服务的时候,客户端向Web服务器请求证书

  3. 接着客户端向CA验证该证书是不是颁布给该网站的

  4. 客户端向服务端发送证书

  5. 服务端验证客户端发送的证书是否有效

【小白文|原理解析】现在还可以嗅探到帐号密码吗?

说了这么多,那么你肯定想问HTTPS协议就是安全的吗?


不一定,我只能说正确配置的HTTPS是安全的,我们接着再来看一个案例


说一个日常生活中的习惯,我们平时在访问网页的时候在搜索栏输入网址,比如www.xxx.com,但是我们要注意到我们平时输入的www.xxx.com只是域名,并不是完整的URL,完整的URL应该为https:://www.xxx.com,但是我们依然可以使用HTTPS去访问网页,这是为什么呢?这就要多亏浏览器和服务器帮我们做了额外的工作


【小白文|原理解析】现在还可以嗅探到帐号密码吗?


根据上图我们可以得知,当我们在搜索框中输入域名时,浏览器帮我们自动加入HTTP,使用HTTP访问,服务端在收到该请求时,发现该协议不安全,帮我们重定向请求为HTTPS发送给浏览器,让浏览器重新请求,接着浏览器重新请求,此时我们的浏览器搜索框中就出现了HTTPS的字段,这就是为什么我们在搜索框中只输入域名也可以去访问目标网站


这样子一个流程下来,还不错,挺好的,没有发现什么问题啊,我们再来看一下整个流程,对,你是不是发现了其中有一次的HTTP请求,如果该请求被攻击者拦截,就可以进行中间人攻击


【小白文|原理解析】现在还可以嗅探到帐号密码吗?


从图片中,我们可以发现攻击者对该请求做了一个重定向到了一钓鱼网站,钓鱼网站将响应发送给攻击者,攻击者将响应发送给用户浏览器,整个过程中,没有机会去和真实网站建立HTTPS连接,而浏览器以为目标网站就是使用HTTP对外开放Web服务,也不会对该链接提示不安全,所以归根到底,攻击者还是对HTTP协议下手,达到攻击目的


那这么看,HTTPS协议也没有那么安全啊?那要怎么办啊


这个时候机智的人们就想使用HTTPS攻击者一样可以对HTTP作为突破口进行嗅探,那要怎么做才可以去掉这一次的HTTP重定向,如果可以去掉的话,那就可以保证HTTPS的安全性




于是这个机智的人们就想能不能把这个一次的HTTP请求去掉呢?

显然如果用户只在搜索框中输入域名,而不是完整的URL进行请求的话,第一次的HTTP请求是不能去掉的,换一个思路,如果不将HTTP的请求发送给服务端,而是发送给自己呢?发送给自己?那就是要浏览器自动帮我们从原本的HTTP请求换成HTTPS请求


于是就有了这个流程

【小白文|原理解析】现在还可以嗅探到帐号密码吗?

既然是让浏览器自动帮我们将HTTP的请求换成HTTPS请求,如果访问的网站是使用HTTPS对外开放Web服务的,那这个过程很好,没有问题,如果访问的网站是使用HTTP对外开放服务的呢?那这个时候如果浏览器还是使用HTTPS对其进行请求,那么就无法访问到该网站


这个时候要怎么办呢?这个时候就要提到另一个安全机制HTST

HTTP严格传输安全(英语:HTTP Strict Transport Security,缩写:HSTS)是一套由互联网工程任务组发布的互联网安全策略机制。网站可以选择使用HSTS策略,来让浏览器强制使用HTTPS与网站进行通信,以减少会话劫持风险

HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。服务器开启HSTS的方法是,当客户端通过HTTPS发出请求时,在服务器返回的超文本传输协议(HTTP)响应头中包含Strict-Transport-Security字段。非加密传输时设置的HSTS字段无效

比如,https://xxx.com/ 的响应头含有

Strict-Transport-Security: max-age=31536000; includeSubDomains


这意味着两点:


1、在接下来的31536000秒(即一年)中,浏览器向xxx.com或其子域名发送HTTP请求时,必须采用HTTPS来发起连接。比如,用户点击超链接或在地址栏输入 http://www.xxx.com/ ,浏览器应当自动将 HTTP 转写成 HTTPS,然后直接向 https://www.xxx.com/ 发送请求。

2、在接下来的一年中,如果 xxx.com 服务器发送的TLS证书无效,用户不能忽略浏览器警告继续访问网站

说了上面一大堆,还是没有解释刚才的问题怎么解决的啊,不着急,先铺垫一下HTST,再来说一下怎么解决上面留下的问题

只要用户有访问过目标网站,那么目标网站部署了HTST策略,以后的全部访问都会基于HTST保护进行访问


但是用户首次访问某网站是不受HSTS保护的。这是因为首次访问时,浏览器还未收到HSTS,所以仍有可能通过明文HTTP来访问,解决这个不足当前有两种方案

一是浏览器预置HSTS域名列表,Google Chrome、Firefox、Internet Explorer和Microsoft Edge实现了这一方案

二是将HSTS信息加入到域名系统记录中。但这需要保证DNS的安全性,也就是需要部署域名系统安全扩展,截至2016年这一方案没有大规模部署

通过上述的两种方式就可以解决用户第一次访问目标网站到底是使用HTTP访问还是HTTPS访问目标网站



正是通过HTST的保护访问防止了数据嗅探,所幸的是,现在很多的站点都支持HTST,让大家使用的网络更加安全,用的更加放心


最后再来个图比较一下HTTPS与HTST保护机制的异同

【小白文|原理解析】现在还可以嗅探到帐号密码吗?

看到这里,教程接近尾声,那你看懂了吗?


上述如果解释错的地方,欢迎指正

【小白文|原理解析】现在还可以嗅探到帐号密码吗?

原创不易,帮我点点右下角的“在看”吧


原文始发于微信公众号(Kali渗透测试教程):【小白文|原理解析】现在还可以嗅探到帐号密码吗?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月6日08:28:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【小白文|原理解析】现在还可以嗅探到帐号密码吗?http://cn-sec.com/archives/971881.html

发表评论

匿名网友 填写信息