关于怎么攻击https的网站的信息

hacker|
179

如何屏蔽一个https网页?

可以使用WFilter free等第三方软件(百度搜索WFilter free下载)。WFilter的系列产品(WFilter和WFilter Free)都可以支持对HTTPS站点设置“黑白名单”来禁止HTTPS站点。

2

首先启用网站黑白名单。

如图所示,启用网站黑白名单,并且勾选“对HTTPS站点生效”,即可禁止黑白名单中的站点。不管是HTTP还是HTTPS站点都将被禁止掉。

Https协议 + “中间人攻击”原理概述

引导问题

1.为什么使用Https是安全的?

2.Https的底层原理如何实现?

3.使用Https是绝对安全的吗?

证书验证阶段

1.浏览器发起Https请求;

2.服务器端返回Https证书;

3.浏览器客户端验证证书是否合法,若不合法则提示警告

数据传输阶段

4.当证书验证合法后,在客户端本地生成随机数;

5.通过公钥加密随机数,并将加密后的随机数传输到服务端;

6.服务端通过私钥对接收到的加密随机数进行解密操作;

7.服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密操作后再进行内容传输。

首先,非对称加密的加密效率是非常低的,而http的应用场景通常存在着端与端之间的大量数据交互,从效率来说是无法接受的;

其次,在Https场景中只有服务端保存了私钥,而一对公私钥只能实现单向的加解密(即服务端无法使用私钥对传回浏览器客户端的数据进行加密,只能用于解密),所以Https中内容传输加密采取的是对称加密,而不是非对称加密(此处随机数则是对称加密的介体,即客户端和服务器端所拥有的随机数都是一致的,能够进行双向加解密)。

Http协议被认为不安全是因为传输过程容易被监听者勾线监听、伪造服务器,而Https协议主要就是解决网络传输的安全性问题。

首先,我们假设不存在认证机构,任何人都可以制作证书,这存在的风险便是经典的“中间人攻击”问题。具体过程如下:

1.客户端请求被劫持(如DNS劫持等),所有的客户端请求均被转发至中间人的服务器;

2.中间人服务器返回中间人伪造的“伪证书”(包含伪公钥);

3.客户端创建随机数,通过中间人证书的伪公钥对随机数进行加密后传输给中间人,然后凭随机数构造对称加密算法对要进行传输的数据内容进行对称加密后传输;

4.中间人因为拥有客户端生成的随机数,从而能够通过对称加密算法进行数据内容解密;

5.中间人再以“伪客户端”的身份向正规的服务端发起请求;

6.因为中间人与服务器之间的通信过程是合法的,正规服务端通过建立的安全通道返回加密后的数据内容;

7.中间人凭借与正规服务器建立的对称加密算法进行数据内容解密;

8.中间人再通过与客户端建立的对称加密算法对正规服务器返回的数据内容进行加密传输;

9.客户端通过中间人建立的对称加密算法对返回的数据内容进行解密;

由于缺少对证书的真伪性验证,所有客户端即使发起了Https请求,但客户端完全不知道自己发送的请求已经被第三方拦截,导致其中传输的数据内容被中间人窃取。

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

如果需要浏览器不提示安全风险,那只能通过认证机构签发的证书。但浏览器通常只是会提示安全风险,并不会限制网站的访问,所有从技术上来说,谁都可以生产证书,只要有证书就能够完成网站的https传输。

其实https并不包含对随机数的安全保证,https保证的只是数据传输过程安全,而随机数存储于本地,本地的安全属于另一安全范畴,应对的措施有安装杀毒软件、反木马、浏览器升级修复漏洞等。(这也反映了Https协议并不是绝对的安全的)

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

但是,浏览器只会提示安全风险,如果用户授权仍然继续访问网站,完成请求。那么,只有客户端是我们自己的终端,我们授权的情况下,便能够建立中间人网络,而抓包工具作为中间人的代理。

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

即是,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防火墙

④及时更新浏览器版本或换用其他安全性高的浏览器

一些感想

找一种比较有特点的攻击方式不是那么容易,实现更不容易,这过程中遇到了各种问题,一些问题网上也找不到确切的解决方法,一度卡住后想要放弃换实验,但还是做了下来。尽管还是没能完全实现,但展示出自己的问题和疑惑也未尝不可。展示的过程中主要还是展示原理和实操过程,而对于实验的准备、中途遇到的问题以及其他实验过程,则没有时间也不必要作为展示,但这一过程其实才是实验对于我们小组成员来说最重要的。

小组成员也都很努力,也都按照自己的能力分担了不同的工作,不像操作系统的小组有人完全划水...总体来说实验还是比较成功的(强行自我鼓励),希望以后再有类似的展示能做的更完善吧。

0条大神的评论

发表评论