https://www.roe.ch/sslsplit
SSLSPLIT adalah alat untuk serangan man-in-the-middle terhadap koneksi jaringan terenkripsi SSL/TLS. Ini dimaksudkan untuk berguna untuk forensik jaringan, analisis keamanan aplikasi dan pengujian penetrasi.
SSLSPLIT dirancang untuk mengakhiri koneksi secara transparan yang dialihkan ke sana menggunakan mesin terjemahan alamat jaringan. SSLSPLIT kemudian mengakhiri SSL/TLS dan memulai koneksi SSL/TLS baru ke alamat tujuan asli, sambil mencatat semua data yang dikirimkan. Selain operasi berbasis NAT, SSLSPLIT juga mendukung tujuan statis dan menggunakan nama server yang ditunjukkan oleh SNI sebagai tujuan hulu. SSLSPLIT murni proxy transparan dan tidak dapat bertindak sebagai proxy HTTP atau Socks yang dikonfigurasi di browser.
SSLSPLIT mendukung koneksi TCP biasa, SSL biasa, HTTP dan HTTPS melalui IPv4 dan IPv6. Ini juga memiliki kemampuan untuk secara dinamis meningkatkan TCP polos ke SSL untuk secara umum mendukung SMTP startTLS dan mekanisme peningkatan yang serupa. SSLSPLIT sepenuhnya mendukung Indikasi Nama Server (SNI) dan dapat bekerja dengan RSA, DSA dan ECDSA Keys dan DHE dan ECDHE Cipher Suites. Bergantung pada versi OpenSSL yang dibangun terhadap, SSLSPLIT mendukung SSL 3.0, TLS 1.0, TLS 1.1 dan TLS 1.2, dan secara opsional SSL 2.0 juga.
Untuk koneksi SSL dan HTTPS, SSLSPLIT menghasilkan dan menandatangani sertifikat X509V3 yang dipalsukan secara on-the-fly, meniru subjek sertifikat server asli DN, ekstensi SubjectName dan karakteristik lainnya. SSLSPLIT memiliki kemampuan untuk menggunakan sertifikat yang ada di mana kunci pribadi tersedia, alih -alih menghasilkan yang ditempa. SSLSPLIT mendukung sertifikat NULL-Prefix CN tetapi sebaliknya tidak menerapkan eksploitasi terhadap kerentanan verifikasi sertifikat spesifik dalam tumpukan SSL/TLS.
SSLSPLIT mengimplementasikan sejumlah pertahanan terhadap mekanisme yang biasanya akan mencegah serangan MITM atau membuatnya lebih sulit. SSLSPLIT dapat menyangkal permintaan OCSP secara umum. Untuk koneksi HTTP dan HTTPS, header SSLSPLIT Mangles untuk mencegah Pinning Key Public (HPKP) yang diinstruksikan server, hindari pembatasan keamanan transportasi yang ketat (HSTS), hindari penegakan transparansi sertifikat (Happect-CT) dan cegah pengalihan ke quic/SPDY, HTTP/2 atau Webrade (peningkatan Web,). Kompresi HTTP, Pengkodean dan Keep-Alive dinonaktifkan untuk membuat log lebih mudah dibaca.
Opsi logging termasuk SSLSPLIT Connect dan file log konten tradisional serta file PCAP dan mencerminkan lalu lintas yang didekripsi ke antarmuka jaringan. Selain itu, sertifikat, rahasia master dan informasi proses lokal dapat dicatat.
Lihat halaman manual SSLSPLIT (1) untuk detail tentang penggunaan SSLSPLIT dan menyiapkan berbagai mesin NAT.
SSLSPLIT tergantung pada pustaka OpenSSL, Libevent 2.x, LibpCap dan Libnet 1.1.x secara default; libpcap dan libnet tidak diperlukan jika fitur mirroring dihilangkan. Bangunan tergantung pada Make GNU dan POSIX.2 Lingkungan di PATH . Jika tersedia, PKG-Config digunakan untuk menemukan dan mengonfigurasi dependensi. Tes unit opsional tergantung pada pustaka cek.
SSLSPLIT saat ini mendukung sistem operasi berikut dan mekanisme NAT:
Dukungan untuk Informasi Proses Lokal ( -i ) saat ini tersedia di Mac OS X dan FreeBSD.
Fitur SSL/TLS dan kompatibilitas sangat tergantung pada versi OpenSSL yang terhubung. Untuk hasil yang optimal, gunakan rilis terbaru OpenSSL atau Libressl.
Dengan persyaratan yang tersedia di atas, jalankan:
make
make test # optional unit tests
make sudotest # optional unit tests requiring privileges
make install # optional install
Ketergantungan dikonfigurasikan secara otomatis menggunakan PKG-Config. Jika dependensi tidak diambil dan memperbaiki PKG_CONFIG_PATH tidak membantu, Anda dapat menentukan lokasi masing -masing secara manual dengan mengatur OPENSSL_BASE , LIBEVENT_BASE , LIBPCAP_BASE , LIBNET_BASE dan/atau CHECK_BASE ke awalan masing -masing.
Anda dapat mengganti awalan instalasi default ( /usr/local ) dengan mengatur PREFIX . Untuk lebih banyak opsi build dan default build-time, lihat GNUmakefile dan defaults.h .
Lihat halaman manual sslsplit(1) dan sslsplit.conf(5) untuk dokumentasi pengguna. Lihat NEWS.md untuk catatan rilis yang mencantumkan perubahan signifikan antara rilis dan SECURITY.md untuk informasi tentang pengungkapan kerentanan keamanan.
SSLSPLIT disediakan di bawah lisensi BSD 2-klausa. SSLSPLIT berisi komponen yang dilisensikan di bawah lisensi MIT dan APSL. Lihat LICENSE , LICENSE.contrib dan LICENSE.third serta header file sumber masing -masing untuk detailnya.
Lihat AUTHORS.md untuk daftar kontributor.
SSLSPLIT terinspirasi oleh mitm-ssl oleh Claes M. Nyberg dan sslsniff oleh Moxie Marlinspike, tetapi tidak berbagi kode sumber dengan mereka.