簡體   English   中英

使用 Wireshark 嗅探 SSL 數據包

[英]Sniffing SSL packets using Wireshark

我想對解碼器進行逆向工程。 所以我使用一個 android 應用程序來控制解碼器,我想嗅探應用程序向解碼器發出的數據包流。

數據包通過 SSL 發送,因此它們都是加密的。 除了 Wireshark,我嘗試使用 mitmproxy 和 mitmdump 但沒有成功。

知道我不可能從我的解碼器中獲取私鑰,我正在尋找一種使用代理(基本上是中間人)的方法,這將使我能夠生成新證書,以便我可以在Wireshark(而不是我的解碼器之一)來解密我的數據包。

有什么辦法可以做到這一點嗎? 我會很感激一些幫助。

您可能需要查看Charles Proxy

它允許您發送假證書並攔截 SSL 流量。

但是,如果 android 應用程序使用證書綁定,它將無法工作。

如果您想避免更改證書(這不適用於許多應用程序),您可以嘗試將代碼注入 Android 應用程序以嗅探和轉儲 SSL 流量。 看看https://github.com/5alt/ssl_logger(5alt的 fork 適用於 Android)。 請注意,您需要 root 才能執行此操作

這是通過在 OpenSSL 中掛鈎函數來實現的,以便可以在加密之前/解密之后轉儲原始流量。

您必須安裝 Frida Android 服務器: https : //www.frida.re/docs/android/

  • 用USB調試連接手機
  • https://github.com/frida/frida/releases下載frida-server CPU 架構的frida-server
    • 要了解您的設備正在使用哪種 CPU 架構(以獲得正確的下載),您可以在手機上運行getprop ro.product.cpu.abi
  • 推送到 Android 的/data/local/tmp (以 root 身份),使其可執行( chmod 755 )。
  • 在手機上運行/data/local/tmp/frida-server
  • 在您的計算機上,安裝frida-tools使用pip install --user frida-tools (必須是 Python2,而不是 Python3!)
  • 列出進程以查看是否一切正常,方法是在連接手機的計算機上運行frida-ps -U
  • 轉發 Frida 的端口: adb forward tcp:27042 tcp:27042; adb forward tcp:27043 tcp:27043 adb forward tcp:27042 tcp:27042; adb forward tcp:27043 tcp:27043
  • 在您的計算機上獲取ssl_logger
  • 在您的計算機上運行python ssl_logger.py -pcap log.pcap -remote com.android.package.name (注意-remote在自述文件中沒有解釋,但它是必要的!)
    • 您可以添加-verbose以查看實時流量輸出。
    • 讓它運行直到完成,按 Ctrl+C 退出。 然后,您就有了一個文件log.pcap ,您可以在 Wireshark 中對其進行分析。
    • 注意:如果您收到 JavaScript 錯誤,您必須編輯ssl_logger.py並插入一行包含var addresses, SSL_get_fd, SSL_get_session, SSL_SESSION_get_id, getpeername, getsockname; function initializeGlobals

在 Android 上使用 Frida 的教程: https : //11x256.github.io/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM