【Azure 环境】从网络包中分析出TLS加密套件信息

news/2025/2/25 7:46:04/文章来源:https://www.cnblogs.com/lulight/p/18565636

问题描述

在抓取到网络包之后,如何来获取TLS信息呢?比如使用的是是么加密套件呢?

因为在应用层面,获取的错误信息非常简单:

An TLS 1.2 connection request was received from a remote client application, but non of the cipher suites supported by the client application are supported by the server. The connection request has failed.

从远程客户端应用程序收到 TLS 1.2 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。连接请求失败。

所以,我们如何从客户端抓取的网络包中分析出 TLS 所所以用的 Cipher Suites信息呢?

 

问题解答

通过咨询M365 Copilot,得到了想要的答案:

在Wireshark中分析SSL相关信息(例如使用的加密套件)可以通过以下步骤进行:

1. 启动Wireshark并抓包:首先,启动Wireshark并开始抓取网络流量。确保你正在捕获包含SSL/TLS流量的网络接口。
2. 过滤SSL/TLS流量:在Wireshark的过滤器栏中输入ssl或tls,以便只显示SSL/TLS流量。这将帮助你更容易找到相关的数据包。
3. 找到SSL握手包:在过滤后的流量中,找到SSL握手包。通常,这些包包括Client Hello和Server Hello消息。你可以通过查看协议列中的Client Hello和Server Hello来识别这些包。
4. 查看加密套件:

  •  Client Hello:双击Client Hello包,在详细信息窗格中展开Secure Sockets Layer或Transport Layer Security部分。你会看到一个名为Cipher Suites的字段,其中列出了客户端支持的加密套件。
  •  Server Hello:双击Server Hello包,在详细信息窗格中展开Secure Sockets Layer或Transport Layer Security部分。你会看到一个名为Cipher Suite的字段,其中列出了服务器选择的加密套件。

5. 解密SSL/TLS流量(可选):如果你有服务器的私钥,可以在Wireshark中配置解密SSL/TLS流量。步骤如下:

  •  选择Edit > Preferences。
  •  在Preferences窗口中展开Protocols,然后选择SSL。
  •  在RSA keys list字段中,输入服务器的IP地址、端口、协议和私钥文件路径。

通过这些步骤,你可以在Wireshark中分析SSL相关信息并查看使用的加密套件。

 

实际演示

根据以上的解答,实际实验去查看两个数据包:一个是正常建立TLS连接,一个是无法建立TLS连接。

第一步:根据目的IP地址过滤网络包

打开 .pcapng 后缀名的网络包,根据目的IP地址进行过滤 ( 如:ip.addr == 5.13.9.7 

第二步:查看TCP请求中的Client Hello 信息

Transport Layer Security --> TLSv1.2 Record Layer --> Handshake Protocol:Client Hello --> Cipher Suites

Cipher Suites (12 suites)

Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)
Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)
Cipher Suite: TLS_RSA_WITH_RC4_128_SHA (0x0005)
Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)
Cipher Suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA (0x0032)
Cipher Suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA (0x0038)
Cipher Suite: TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA (0x0013)
Cipher Suite: TLS_RSA_WITH_RC4_128_MD5 (0x0004)

第三步:查看TCP请求中的Server Hello 信息 

Transport Layer Security --> TLSv1.2 Record Layer --> Handshake Protocol:Server Hello --> Cipher Suites

[正常建立连接]

Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)

[不能正常建立连接]

在客户端发送Client Hell后,服务端返回的Server Hello包中,

Transport Layer Security

TLSv1.2 Record Layer: Alert (Level: Fatal, Description: Protocol Version)
Content Type: Alert (21)
Version: TLS 1.2 (0x0303)
Length: 2
Alert Message
Level: Fatal (2)
Description: Protocol Version (70)

 

演示动画:

 

参考资料

Wireshark: https://www.wireshark.org/

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/840337.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TCP可靠机制详解

重传机制 针对数据包丢失的情况,会用重传机制解决。 超时重传 在发送数据时,设定一个定时器,当超过指定的时间后,没有收到对方的ACK 确认应答报文,就会重发该数据,也就是我们常说的超时重传。TCP 会在以下两种情况发生超时重传:数据包丢失,确认应答丢失 缺点:当超时时…

记一次uniapp安卓原生插件升级

本来七月份就想升级来自,也是碰到了这个问题,能看出来是java版本不对,但就是不知道哪里忘了改,直到昨天emmm

实验4 类的组成、继承、模板类、标准库

任务二: 代码: task2.cpp:1 #include "GradeCalc.hpp"2 #include <iomanip>3 4 void test() {5 int n;6 cout << "输入班级人数: ";7 cin >> n;8 9 GradeCalc c1("OOP", n); 10 11 cout << &quo…

Fanatastic pg walkthrough 10 Easy

nmap 发现9090 22 和3000端口发现漏洞但是不知道还能读到哪些敏感文件 hacktricks 看看 https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/grafana 通过hacktricks告诉我们的两个文件 发现secret key SW2YcwTIb9zpOOhoPsMm 发现basic密码 {"basi…

VMware App Volumes 4, version 2410 (4.15) - 实时应用程序交付系统

VMware App Volumes 4, version 2410 (4.15) - 实时应用程序交付系统VMware App Volumes 4, version 2410 (4.15) - 实时应用程序交付系统 重新定义跨 VDI、DaaS 和已发布的应用环境交付和管理应用的方式 请访问原文链接:https://sysin.org/blog/vmware-app-volumes/ 查看最新…

java web 知识点 项目结构及代码

概念 第一部分请求转发在服务器内部完成,地址栏URL不变,适合数据共享;而请求重定向则在客户端完成,导致URL变化,适合需要通知用户访问新页面的场景。 GET一般用于获取数据,适合用于不改变服务器状态的请求,适合传输少量数据。 POST用于提交数据并可能改变服务器状态,适…

java web知识点

概念 第一部分请求转发在服务器内部完成,地址栏URL不变,适合数据共享;而请求重定向则在客户端完成,导致URL变化,适合需要通知用户访问新页面的场景。 GET一般用于获取数据,适合用于不改变服务器状态的请求,适合传输少量数据。 POST用于提交数据并可能改变服务器状态,适…

2024退市新规

一、退市规则 退市包括主动退市和强制退市两类。强制退市分为交易类强制退市、财务类强制退市、规范类强制退市和重大违法类强制退市等四类情形。主动退市: 1、上市公司向证券交易所主动提出申请退市。 2、上市公司、上市公司股东或其他收购人通过向所有股东发出收购全部或部分…

【LLM训练】从零训练一个大模型有哪几个核心步骤?

【LLM训练】从零训练一个大模型有哪几个核心步骤? ⚠︎ 重要性:★★★ NLP Github 项目【LLM训练】从零训练一个大模型有哪几个核心步骤? ⚠︎ 重要性:★★★NLP Github 项目:NLP 项目实践:fasterai/nlp-project-practice 介绍:该仓库围绕着 NLP 任务模型的设计、训练、…

Day37--error和exception

Day37--error和exception Exception 异常 Error 错误 目录: 1、什么是异常 2、异常体系结构 3、Java异常处理机制 4、处理异常 5、自定义异常 6、总结 什么是异常 实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你…

从零开始:NetBox 4.1 Docker 部署和升级

前言 由于Netbox 官方的中文语言日渐完善,所以新出一个使用官方Docker源部署和升级的教程。 Netbox 系列文章:https://songxwn.com/categories/NetBox/环境介绍 Rocky Linux 9.5 (理论上也适用于RHEL系列的7-9版本) 南京大学镜像源ISO镜像下载:https://mirror.nju.edu.cn/…