• 逆向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

  • 相关阅读:
    Css实现漂亮的滚动条样式
    清除浮动的方式有哪些?比较好的是哪一种?
    Cookie、sessionStorage、localStorage的区别
    http和https的区别?
    git 拉取分支切换分支
    css 三角形
    js中??和?.的意思
    js this指向
    tsconfig.json配置
    查看本地安装的所有npm包
  • 原文地址:https://www.cnblogs.com/softidea/p/5268880.html
Copyright © 2020-2023  润新知