前言

在渗透测试过程中,必不可少的操作就是使用BurpSuite、Fildder等抓包工具对应用程序的数据包进行拦截、观察和篡改。那么问题来了——对于使用HTTPS协议的站点,在BurpSuite中拦截到的数据包为何也是“明文传输”?如下图所示。

从大神那里获得解答:

(1) BurpSuite能抓到HTTPS协议的“明文数据”是因为BurpSuite在本地浏览器安装了自己的证书,作为中间人的它分别建立起了“客户端->代理服务器”、“代理服务器->服务端”两段HTTPS通道,BurpSuite获得Client消息后先解密后再重新加密,然后代替客户端发给服务端,这个过程中BurpSuite自然能获得明文。

(2) 但是如果使用WireShare来单纯监听、嗅探HTTPS协议的数据包的话,我们就会看到TCP携带的Data都是密文,是无法拿到明文数据的。

WireShark抓包

接下来当然是使用WireShare监听数据并观察分析下,先简单说下WireShare的基本使用。

首先开启WireShark并配置受监听的网卡:

选择正在使用的网卡,双击WLAN开始监听:

电脑中开启浏览器或其他应用的时候都会有流量产生,有流量产生就会被WireShark捕捉到。上图为刚刚开启WireShark后的捕捉状态,会抓到大量各种各样的流量,稍后我们会进行过滤操作。

HTTP站点

使用合天网安实验室的登陆页面作为观察对象。

在CMD中Ping域名,获得站点IP地址58.20.54.226:

在WireShark中设置过滤规则“ip.dst==58.20.54.226”,发现登录请求传输的账号密码信息:

也可以选择资源为POST /sessions HTTP/1.1的流量然后鼠标右键选择追踪流->TCP流,可以看到用户名和密码等敏感信息可以被嗅探:

查看前端代码,可发现该HTTP站点确实对账户密码做了前端加密后再进行传输:

HTTPS站点

看完上面HTTP站点的数据在WireShark中“裸奔”,接下来看看HTTPS站点是不是也如此。

选用站点“墨者学院”作为观察对象:

在WireShark中设置过滤规则“ip.dst==113.200.16.234”,可发现HTTP站点的流量均给出了具体的请求资源地址(如上面的POST /sessions HTTP/1.1),而HTTPS站点传输的时候只提示为“Application Data”:

继续选择任意协议为TLSv1的流量后右击选择追踪流->TCP流,发现数据均经过加密,根本看不懂:

解密HTTPS数据

HTTPS协议使用了对称加密,客户端拥有并存储了对称加密的会话密钥,浏览器在接收到服务端发送回来的密文数据之后,会使用存储在本地的秘钥对数据进行解密。那么我们通过WireShark监听到的HTTPS站点的密文能否依靠此密钥进行自动解密?答案是——可以。

接下来我们来实际操作并验证下:

1、以windows系统+Chrome浏览器为例,首先要导出浏览器存储的密钥,通过计算机属性——高级系统设置——环境变量,新建一个变量名“SSLKEYLOGFILE”的变量,变量值是导出的密钥具体文件地址。2、设置后可以通过重启Chrome浏览器打开任意一个HTTPS网址,此时查看变量值对应路径,密钥成功导出到本地啦,已经生成sslkey.log文件:

3、现在可以将密钥导入到Wireshark了,具体路径如下:菜单栏—>编辑—>首选项—>Protocols—>TLS/SSL(选择SSL还是TLS请根据实际情况):

4、配置完成,来看下最终的实际效果(此处同样使用上文中“墨者学院”HTTPS站点作为测试对象,其初始的加密数据包状态可翻看前文):

5、对比一下文章开头BurpSuite拦截到的数据包:

【总结】至此,我们可以得知BurpSuite拦截HTTPS站点可获得明文数据包,并非因为HTTPS站点跟HTTP站点一样进行“裸奔”,而是BurpSuite代理服务器作为中间人,对HTTPS站点的数据包进行了解密。

监听局域网流量

既然HTTP协议和HTTPS协议的明文数据我们都有办法通过WireShark进行获取,那么问题来了——WireShark能否轻易获得局域网内部其他主机的数据包呢?(如果可以………我那存有两毛钱巨款的账户的信息安全该咋办?)

问题的答案是——Windows 10系统可以在一块真实无线网卡基础上再虚拟出一块无线网卡,支持网络共享,让电脑变身WIFI热点,我们把接网卡共享后设置其IP为192.168.XXX.XXX,让这个网卡做网关,别的电脑连上WIFI后都通过这个网卡上网,然后你就可以轻易的在这个网卡上捕获别的电脑的数据包。

什么?你不信?那接下来进行实操来验证下吧。

1、要通过Win10系统自带的移动热点进行WIFI共享,首先确保WLAN网卡开启,WLAN网卡连接到其它无线WLAN网络上:

2、移动热点即变为可开启状态,并点击编辑按钮进行SSID无线名称及连接密码进行设置即可:

3、在网络连接设置页面上找到刚刚开启的虚拟AP网卡信息:

4、在CMD窗口中使用ipconfig命令查询当前主机的IP,结果为:

5、设置虚拟网卡的IP地址、子网掩码、DNS服务器地址如下,点击确认:

6、选择WLAN 右键属性—>共享设置,选择共享并选择刚刚开启的无线AP热点,点击确认:

7、通过手机或者其他支持WIFI上网的设备搜索该信号即可进行连接并上网,此处选择手机:

8、查看手机连上电脑热点后分配到的IP地址:

9、在电脑打开WireShark,监听刚才开启的虚拟无线网卡:

10、可以看到,成功监听到手机的数据包流量:

11、进一步验证一下!!手机浏览器打开“合天网安实验室”站点的登录页面,并进行登录:

12、在WireShark输入过滤规则“ip.src==192.168.137.251 and ip.dst==58.20.54.226”并查看登录请求包,成功监听到明文账号和密码信息(已做前端加密):

至此,我们可以看到,手机平时在公众场合连接未知的WIFI后进行系统登录、转账业务等敏感操作将是多么危险!!!!一不小心账号和密码就被监听了!

由HTTPS抓包引发的一系列思考(HTTPS解密)相关推荐

  1. Https/Tcp抓包工具Charles、fiddler,ping (网络诊断工具),Android平台HTTPS抓包解决方案及问题分析HttpCanary

    市面上已经有一些弱网络模拟工具,比如微软的Network Emulator for Windows Toolkit(NEWT),Facebook的Augmented Traffic Control(A ...

  2. fiddler教程:抓包带锁的怎么办?HTTPS抓包介绍。

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 介绍Fiddler的HTTPS抓包功能." 这里首先回答下标题中的疑问,fiddler抓包带锁的原因是HTTPS流量抓包功能开启, ...

  3. Charles 4.2.1 HTTPS抓包

    Charles 4.2.1 HTTPS抓包 Charles iPhone抓包 Mac必须与iPhone连接同一WiFi Proxy -> SSL Proxying Settings ->  ...

  4. 移动端https抓包那些事--进阶篇

    上一次和大家介绍了手机端https抓包的初级篇,即在手机未root或者未越狱的情况下如何抓取https流量,但是当时分析应用时会发现,好多应用的https的流量还是无法抓取到,这是为什么呢? 主要原因 ...

  5. 移动端https抓包那些事--初级篇

    对于刚刚进入移动安全领域的安全研究人员或者安全爱好者,在对手机APP进行渗透测试的时候会发现一个很大的问题,就是无法抓取https的流量数据包,导致渗透测试无法继续进行下去. 这次给大家介绍一些手机端 ...

  6. fiddler设置https抓包

    代理端口设置:127.0.0.1:8888 https抓包设置 模拟post请求: http://xxx.xxxx.com/portal/login.htm Cookie: xxxx account= ...

  7. http抓包实战 pdf_实战 Wireshark https 抓包 2, 再抓 Moka 蹭 OurATS 的小尾巴

    在昨天的文章 实战 Wireshark https 抓包,抓住 Moka 蹭 OurATS 的小尾巴 里,我们通过 chromium-browser 的 SSLKEYLOGFILE 环境变量特性,实现 ...

  8. IOS https抓包及10.3.3版本证书不生效问题解决

    Charles安装 HTTP抓包 HTTPS抓包 1. Charles安装 官网下载安装Charles: https://www.charlesproxy.com/download/ 2. HTTP抓 ...

  9. https抓包_浅谈HTTPS抓包原理,为什么Charles能够抓取HTTPS报文?

    Charles作用其实相当于拦截器,当客户端和服务器通信时,Charles其实会先接收到服务器的证书,但是它会自己生成一个证书发送给客户端(不管是Web端或App应用),也就是说它不仅仅是拦截,甚至还 ...

最新文章

  1. 【RocketMQ工作原理】消息的消费
  2. 住房要注意用电安全-记录一下失火
  3. synchronized的基本语法
  4. jvm(11)-晚期(运行期)优化
  5. 计算机c语言二级试题及答案,计算机c语言二级考试试题及其答案.doc
  6. Delphi中动态调用DLL的方法
  7. sql server tcp 信号灯超时时间已到_「图文详解」TCP为啥要3次握手和4次挥手?3次挥手不行吗?...
  8. 【C】揭秘rand()函数;
  9. NOIP2015运输计划
  10. java(jdk) 8u45 正式版_缺氧正式版,草图分享(克莱)
  11. Java和JavaScript中使用Json方法大全
  12. 啊哈C语言——让计算机多彩的开口说话
  13. win10怎么一键释放运行内存
  14. java垃圾回收的优点和原理_Java垃圾回收器的方法和原理总结
  15. 解决thinkpad或者其他笔记本电脑无线网络不可用问题
  16. docker安装torna1.16.2
  17. Arduino ESP32 WIFI 蓝牙模式触控按键切换
  18. Linux部署springboot项目(从安装java开始)
  19. 新电脑自带的office密钥在哪里?
  20. xp计算机能装win系统吗,自己用的电脑要装系统,XP, Win7, Win10到底选哪个?解救小白篇...

热门文章

  1. 画个火山图,标记下基因的名字
  2. 中山大学附属第一医院精准医学研究院 消化系统肿瘤研究于君课题组招聘启事...
  3. 高颜值网易云音乐第三方播放器 YesPlayMusic Mac中文版 支持m1
  4. 中小学python、人工智能书籍(2022.02.02)
  5. 【ES11(2020)】Dynamic Import 动态引入
  6. linq 查出一条最大的记录_洛龙是最大的湾鳄吗?当然不是,比它更大的至少还有6条...
  7. asp.core api 通过socket和服务器通信发送udp_读懂Java中的Socket编程
  8. 前端工作笔记-element ui弹窗嵌套并获取输入
  9. Spring Boot中配置嵌入式Servlet容器修改配置
  10. C++与QML信号交互(非Q_PROPERTY法)