zoukankan      html  css  js  c++  java
  • 逆向wireshark学习SSL协议算法(转)

    9.png

    小贴士:SSL协议的定义

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。

    正文

    前不久从网上得到一个https会话数据包文件https.pcap,用32位的wireshark打开(64位的会增加逆向难度,因为用到寄存器传递参数)

    如图:

    wrieshark1.png

    就这么多数据包,非常适合用来研究ssl协议的实现。 wireshark只要导入密钥是可以自动解密出明文的。
    点开Edit菜单下的Preferences项,再点开左侧的Protocols里面的SSL,新建一个SSL解密任务。

    2.png

    确定之后,就可以看到明文数据了。 3.png

    4.png

    原来的第24帧就多了一个http协议块,25帧也是如此,这就是wireshark的ssl解密功能。
    那么它是怎么实现的呢?这需要调试才能搞清楚。
    我调试的版本是Wireshark_win32_V1.12.4_setup.1427188207.exe 大小22.4 MB (23,588,136 bytes)
    费了九牛二虎之力定位到了libwireshark.dll文件,所有的ssl加解密都是在这模块中实现的。
    贴几张调试截图,这些断点都是比较关键的。    5.png    6.png

    7.png

    8.png

    9.png

    10.png

    11.png

    通过调试,终于知道了ssl解密的算法,写了个python脚本,实现了wireshark的ssl解密核心算法。

    结果如图:

    12.png


    大致脚本如下:

    上面的RSA_Encrypted_PreMaster_Secret、client_random、server_random、_Server_Write_IV、Application_Data都是用wiresharkhttps.pcap文件中抠出来的。
    简单的科普一下,水平有限!

    https://www.91ri.org/15396.html

  • 相关阅读:
    Linux自动批量增加公钥
    主机存活监控
    [Linux小技巧] 将 rm 命令删除的文件放在回收站
    Linux常见问题及命令
    数据分析职位招聘情况及发展前景分析
    SQL查询小案例
    Oracle查看表结构
    前端JSON请求转换Date问题
    Centos7最小化安装
    拓词和扇贝有何不同
  • 原文地址:https://www.cnblogs.com/softidea/p/5268880.html
Copyright © 2011-2022 走看看