首页 / 资讯中心 / 文章详情

CTF 流量取证:HTTPS 加密流量的分析与服务端私钥解密实战(ctf-wiki)

CTF 流量取证:HTTPS 加密流量的分析与服务端私钥解密实战(ctf-wiki) ★ FEATURED ARTICLE
文档网络安全教程【免费下载链接】ctf-wikiCome and join us, we need you!项目地址https://gitcode.com/gh_mirrors/ct/ctf-wiki点击查看免费下载HTTPS 即HTTP SSL/TLS是 CTF Misc 流量分析中一类绕不开的题型拿到手的 PCAP 里满是密文肉眼无法直接阅读。本文以 ctf-wiki 中 HTTPS 协议分析 一节为主线讲清楚 TLS 加密流量的原理、Wireshark/tshark 中导入服务端私钥解密的方法并完整复现hack-dat-kiwi-ctf-2015:ssl-sniff-2这道经典例题让读者掌握先识别 SSL 流量 → 配置私钥 → 解密 → 还原明文 HTTP 会话的完整解题链路。HTTPS 的本质HTTP SSL/TLS在 协议分析概述 中ctf-wiki 将流量分析方向分为 Wireshark 常用功能、HTTP、HTTPS、FTP、DNS、WIFI、USB 等协议的分析。其中 HTTPS 章节给出的核心定义非常精炼HTTPs HTTP SSL / TLS。服务端和客户端的信息传输都会通过 TLS 进行加密所以传输的数据都是加密后的数据。这句话点出了 HTTPS 与 HTTP 的本质区别两者应用层语义完全一致仍然遵循GET /path HTTP/1.1这样的请求格式但传输层之上多了一层 TLS 记录协议负责加解密。因此抓包看到的 TCP 载荷不再是可读的 ASCII 明文而是二进制密文——这正是看到 SSL 加密数据却读不出内容的原因。从协议分析的角度看一个 HTTPS 流量包的解析层次大致为链路层/网络层Ethernet / IP传输层TCPHTTPS 默认使用 443 端口安全层TLS或旧称 SSL负责握手协商与记录加密应用层HTTP 明文在解密之后才可见。在 流量包分析简介 给出的总体把握 → 过滤筛选 → 发现异常 → 数据提取方法论中HTTPS 题目通常落在发现异常与数据提取两步先通过协议分级Protocol History发现流量以 TLS/SSL 为主再想办法解密并提取明文数据。为什么拿到了私钥就能解密很多初学者会疑惑TLS 是安全的为何 CTF 题却允许用一把私钥把整个会话解密关键点在于密钥交换方式。以经典的 TLS 1.2 RSA 密钥交换为例握手过程大致如下客户端发送 ClientHello携带随机数、支持的密码套件服务端回复 ServerHello、证书内含 RSA 公钥等客户端生成一个预主密钥Pre-Master Secret用服务端公钥加密后发送服务端用自己的私钥解密得到预主密钥双方基于预主密钥与双方随机数推导出会话密钥Master Secret之后的 HTTP 应用数据全部使用该会话密钥加密。由此可以得出两条对解题至关重要的结论在 RSA 密钥交换的密码套件下只要拿到服务端私钥就能还原出预主密钥与全部会话密钥从而解密整条连接上的应用数据这正是 ssl-sniffSSL 嗅探类题目成立的前提题目故意模拟攻击者通过某种途径获得了服务器私钥的场景考察选手是否会正确使用它。需要说明的是上述握手细节属于公开的 TLS 标准背景知识而导入server.key.insecure即可解密这一操作正是 ctf-wiki 的 HTTPS 章节给出的题目线索也是本题解题的核心动作。Wireshark 导入私钥解密 SSL/TLS当用 Wireshark 打开加密流量包时数据包列表中的 TLS/SSL 记录无法展开为明文 HTTP 内容。此时需要为 Wireshark 配置服务端私钥让它主动解密。Wireshark 中的标准配置路径为打开菜单Edit编辑→ Preferences首选项在左侧协议树中找到TLS旧版本为SSL协议在RSA keys listRSA 密钥列表中新增一条记录填写三项信息IP addressIP 地址服务端地址可与题目流量中的 IP 对应也可留空表示任意地址Port端口通常是443Protocol协议httpKey File密钥文件指向题目提供的私钥文件例如server.key.insecure保存配置后回到主界面Wireshark 会基于私钥自动解密 TLS 记录应用层 HTTP 明文随即可见。配置完成后还可以进一步使用 Wireshark 的Analyze分析→ Follow追踪→ TLS Stream / HTTP Stream追踪解密后的会话直观查看完整的请求与响应。对 Wireshark 过滤语法、协议分级、对话统计等基础功能不熟悉的读者可先阅读仓库中的 Wireshark 常用功能介绍 一节。例题实战hack-dat-kiwi-ctf-2015 ssl-sniff-2ctf-wiki 的 HTTPS 章节用一道经典题目完整演示了上述流程题目hack-dat-kiwi-ctf-2015:ssl-sniff-2第一步识别流量类型打开流量包通过协议分级或快速浏览数据包列表可以发现流量主体是SSL即 TLS加密数据——几乎看不到可读的明文说明这是一道 HTTPS 流量解密题。第二步导入题目提供的私钥题目会随流量包附赠一把服务端私钥server.key.insecure。按上文方法在 Wireshark 的 TLS/SSL 协议设置中导入该文件解密即自动完成。从文件名可以看出这是一把不安全的测试私钥专门用来演示私钥泄露导致的会话被解密。第三步查看解密后的明文解密后的流量还原出了一次普通的 HTTP 会话ctf-wiki 原文给出的完整明文如下GET /key.html HTTP/1.1 Host: localhost HTTP/1.1 200 OK Date: Fri, 20 Nov 2015 14:16:24 GMT Server: Apache/2.4.7 (Ubuntu) Last-Modified: Fri, 20 Nov 2015 14:15:54 GMT ETag: 1c-524f98378d4e1 Accept-Ranges: bytes Content-Length: 28 Content-Type: text/html The key is 39u7v25n1jxkl123第四步提取 flag响应体的最后一行The key is 39u7v25n1jxkl123就是题目要求的 key直接提交即可。整道题的考点非常纯粹能否识别 SSL 加密流量、是否会使用服务端私钥完成解密、能否从还原出的 HTTP 响应中提取关键信息。响应头中还透露出Apache/2.4.7 (Ubuntu)、ETag、Content-Length: 28等细节可作为核对解密正确性的旁证响应体恰好 28 字节。命令行方案用 tshark 解密与提取如果题目需要批量处理或脚本化解题可以使用 tsharkWireshark 的命令行版本完成同样的工作。ctf-wiki 在 数据提取 一节中给出过 tshark 的通用用法tshark -r **.pcap –Y ** -T fields –e ** | **** data其中-Y指定与 Wireshark 一致的显示过滤器-T fields -e指定输出字段。针对 HTTPS 解密tshark 同样支持通过-o选项设置 SSL/TLS 私钥等首选项例如tshark -r ssl-sniff-2.pcap \ -o tls.keylog_file: /path/to/server.key.insecure \ -Y http -T fields -e http.request.uri -e http.response.code或者使用更通用的明文 HTTP 过滤解密一旦生效http过滤表达式即可命中解密后的请求/响应随后用-e http.file_data、-e http.response.body等字段直接提取响应体中的 key。与 数据提取 中介绍的思路一致拿到解密后的字段后还可以配合grep、awk、Python 脚本做进一步提取与还原从而把解密 提取整合进自动化解题流程。解题思路小结将 HTTPS 类流量题的通解思路归纳如下总体把握使用 Wireshark 的 Protocol History协议分级或 Conversations对话统计确认流量主体是否为 TLS/SSL参考 Wireshark 常用功能介绍寻找解密材料在题目附件中寻找server.key、*.key、*.pem、*.pfx等私钥文件或从 PCAP 文件修复 等环节中修复文件后重新分析配置解密在 Wireshark 的 TLS/SSL 首选项中导入私钥或通过 tshark 的-o选项指定提取数据通过 Follow TLS Stream / HTTP Stream 或 tshark 字段提取定位响应体中的 flag/key必要时结合 数据提取 中的方法与脚本处理。掌握私钥解密这条主线后读者还可以进一步对比 HTTP 协议分析 中的明文流量题HTTP 题目考的是过滤、盲注判断与 URL 提取而 HTTPS 题目多了一道解密的坎——跨过这道坎后面的 HTTP 分析技巧完全通用。赞分享文档网络安全教程【免费下载链接】ctf-wikiCome and join us, we need you!项目地址https://gitcode.com/gh_mirrors/ct/ctf-wiki点击查看免费下载相关推荐CTF 流量分析实战基于 ctf-wiki 的 HTTPS 与 SSL/TLS 加密流量解密指南CTF 流量分析实战基于 ctf wiki 的 HTTPS 与 SSL/TLS 加密流量解密指南 HTTPS 是 CTF 流量包分析Misc/Traffic文档网络安全教程CTF Wiki 流密码专题流密码基础原理与密钥流分析实战CTF Wiki 流密码专题流密码基础原理与密钥流分析实战 流密码Stream Cipher是 CTF 密码学中高频出现的加密体制它以逐比特或逐字节的方文档网络安全教程CTF-Wiki 流密码专题密钥流生成原理、反馈移位寄存器与 CTF 实战分析CTF Wiki 流密码专题密钥流生成原理、反馈移位寄存器与 CTF 实战分析 流密码Stream Cipher是密码学中逐字节或逐比特处理明文的对称加密文档网络安全教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站