https://www.roe.ch/sslsplit
SSLSPLIT是針對SSL/TLS加密網絡連接的中型攻擊的工具。它旨在用於網絡取證,應用程序安全分析和滲透測試。
SSLSPLIT旨在透明地終止使用網絡地址轉換引擎重定向到它的連接。然後,SSLSPLIT終止SSL/TLS,並在記錄所有數據傳輸的所有數據時啟動新的SSL/TLS連接到原始目標地址。除基於NAT的操作外,SSLSPLIT還支持靜態目的地,並使用SNI指示的服務器名稱作為上游目的地。 SSLSPLIT純粹是透明的代理,不能充當瀏覽器中配置的HTTP或襪子代理。
SSLSPLIT在IPv4和IPv6上支持普通TCP,普通SSL,HTTP和HTTPS連接。它還具有動態升級Plain TCP為SSL的能力,以便通常支持SMTP StartTL和類似的升級機制。 SSLSPLIT完全支持服務器名稱指示(SNI),並且能夠與RSA,DSA和ECDSA鍵以及DHE和ECDHE Cipher Suites一起使用。根據構建的OPENSL版本,SSLSPLIT支持SSL 3.0,TLS 1.0,TLS 1.1和TLS 1.2,以及可選的SSL 2.0。
對於SSL和HTTPS連接,SSLSPLIT會生成和符號,並在fly上生成X509V3證書,模仿原始服務器證書的主題DN,subjectaltname擴展名和其他特徵。 SSLSPLIT具有使用私鑰可用的現有證書,而不是生成偽造的證書。 SSLSPLIT支持NULL-PREFIX CN證書,但在其他方面沒有針對SSL/TLS堆棧中的特定證書驗證漏洞實施利用。
SSLSPLIT實施了許多防禦機制,這些機制通常會防止MITM攻擊或使其更加困難。 SSLSPLIT可以以通用的方式拒絕OCSP請求。對於HTTP和HTTPS連接,SSLSPLIT MANGLES標題以防止服務器指導的公共密鑰固定(HPKP),避免嚴格的傳輸安全限制(HSTS),避免證書透明執行(Expect-CT)並防止切換到Quic/SPDY,QUIC/SPDY,HTTP/2或HTTP/2或Websockockets(Upgrade,替代協議,替代協議)。 http壓縮,編碼和靜脈效果被禁用,以使日誌更可讀。
記錄選項包括傳統的SSLSPLIT連接和內容日誌文件以及PCAP文件,並將解密流量鏡像到網絡接口。此外,可以記錄證書,主秘密和本地流程信息。
有關使用SSLSPLIT並設置各種NAT引擎的詳細信息,請參見“手冊”頁面SSLSPLIT(1)。
sslsplit取決於openssl,libevent 2.x,libpcap和libnet 1.1.x庫默認情況下;如果省略了鏡像功能,則不需要libpcap和libnet。構建取決於GNU的製造和POSIX.2 PATH中的環境。如果有的話,PKG-Config用於定位和配置依賴項。可選的單元測試取決於檢查庫。
SSLSPLIT當前支持以下操作系統和NAT機制:
當前在Mac OS X和FreeBSD上提供了對本地流程信息( -i )的支持。
SSL/TLS功能和兼容性在很大程度上取決於鏈接的OpenSSL版本。為了獲得最佳結果,請使用最近發布的OpenSSL或Libressl。
在上述要求的情況下,運行:
make
make test # optional unit tests
make sudotest # optional unit tests requiring privileges
make install # optional install
使用PKG-Config自動配置依賴項。如果未拾取依賴關係並且修復PKG_CONFIG_PATH無濟於事,則可以通過設置OPENSSL_BASE , LIBEVENT_BASE ,LIBPCAP_BASE, LIBPCAP_BASE , LIBNET_BASE和/或CHECK_BASE手動指定其各自的位置。
您可以通過設置PREFIX來覆蓋默認安裝前綴( /usr/local )。有關更多構建選項和構建時間默認值,請參見GNUmakefile和defaults.h 。
有關用戶文檔,請參見“手冊”頁面sslsplit(1)和sslsplit.conf(5) 。有關發行說明,請參見NEWS.md ,以列出版本和SECURITY.md之間的重大更改。有關安全漏洞披露的信息。
SSLSPLIT是根據2條規定的BSD許可提供的。 SSLSPLIT包含在MIT和APSL許可證下許可的組件。有關詳細信息,請參見LICENSE , LICENSE.contrib和LICENSE.third以及各自的源文件標頭。
有關貢獻者列表,請參見AUTHORS.md 。
SSLSPLIT的靈感來自Moxie Marlinspike的Claes M. Nyberg和sslsniff的mitm-ssl啟發,但與他們沒有任何源代碼。