sslsplit
SSLsplit is a tool for man-in-the-middle attacks against SSL/TLS encrypted network connections. It transparently intercepts connections, terminates SSL/TLS, and logs all transmitted data.
Description
SSLsplit is designed for transparent and scalable SSL/TLS interception. Connections are intercepted through a network address translation engine like netfilter and redirected to SSLsplit. The tool terminates the SSL/TLS connection and initiates a new one to the original destination, enabling logging of all data transmitted.
It is intended for network forensics and penetration testing. SSLsplit supports features like TLS Server Name Indication (SNI) and works with NAT engines such as netfilter and tproxy. The tool generates forged certificates signed by a provided CA key and cert for man-in-the-middle operations.
Compiled against OpenSSL with specific flags like -DDISABLE_SSLV2_SESSION_CACHE and -DHAVE_NETFILTER, it requires dependencies including libevent, libnet, libpcap, and libssl.
How It Works
Connections are transparently intercepted via netfilter (IP_TRANSPARENT, SOL_IPV6, !IPV6_ORIGINAL_DST) or tproxy and redirected to sslsplit. SSLsplit terminates the intercepted SSL/TLS connection, generates leaf certificates using a provided CA key/cert or generates them dynamically, and initiates a new SSL/TLS connection to the original destination. All data transmitted is logged. It supports SNI for targeting specific sites and uses chroot jails and file storage for captured data.
Installation
sudo apt install sslsplitFlags
Examples
sslsplit -D -l connections.log -j /tmp/sslsplit/ -S /tmp/ -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080sslsplit -k ca.key -c ca.pem -P https 127.0.0.1 8443 https ::1 8443sslsplit -hsslsplit -f conffile ssl 0.0.0.0 8443 tcp 0.0.0.0 8080sslsplit -o opt=val -k ca.key ssl 0.0.0.0 8443sslsplit -C ca-chain.pem -k ca.key ssl 0.0.0.0 8443sslsplit -K leaf.key -c ca.crt ssl 0.0.0.0 8443