sniffjoke

Obfuscateur de trafic réseau pour l'évasion IDS/IPS. Injecte des paquets spécialement forgés dans les flux TCP pour tromper les systèmes de détection d'intrusion réseau tout en laissant le trafic légitime passer normalement. Network traffic obfuscator for IDS/IPS evasion. Injects specially crafted packets into TCP streams to confuse network intrusion detection systems while legitimate traffic passes normally.

↗ https://github.com/vecna/sniffjoke

Overview

sniffjoke intercepts outgoing TCP traffic and injects crafted packets designed to confuse IDS/IPS engines. It exploits the fact that IDS systems must reassemble TCP streams — by injecting packets that will be discarded by the end host but confuse the IDS, network attacks can evade signature detection.

Basic Usage

Start sniffjoke

sudo sniffjoke start

Start with specific configuration

sudo sniffjoke start --conf /etc/sniffjoke/sniffjoke.conf

Check status

sudo sniffjoke info

Stop

sudo sniffjoke stop

Configuration

# Config file: /etc/sniffjoke/sniffjoke.conf

# Select evasion plugins
# pluginsdir = /usr/share/sniffjoke/plugins/

# Set TTL-based manipulation
# Options for confusing IDS packet reassembly:
# - injecting TTL-expired packets
# - inserting RST packets
# - fragmentation manipulation

sudo sniffjoke start --plugin TTLchaos
sudo sniffjoke start --plugin TCPopt

Plugins

# Available evasion plugins:
# TTLchaos     — inject TTL-expired packets (IDS sees them, host drops them)
# TCPopt       — manipulate TCP options to confuse reassembly
# RST          — inject RST packets
# FragRoute    — IP fragmentation attacks
# SYN          — SYN-based confusion

List available plugins

sniffjoke --list-plugins

Testing IDS Evasion

Start sniffjoke

sudo sniffjoke start

Run attack (Snort/Suricata won’t see it correctly)

nmap -sV target
# Monitor what IDS sees
# If running Snort alongside: alerts should be reduced/confused

Tips

  • sniffjoke is primarily a research/educational tool for understanding IDS evasion
  • Modern IDS systems have improved evasion resistance — results vary
  • Requires root privileges and TCP traffic routing through the host
  • Use in lab environments to understand why passive IDS can be fooled
  • fragrouter is an alternative tool for IP fragmentation-based IDS evasion
Help / Man page
sniffjoke [command] [options]

Commands:
  start     Start the obfuscator
  stop      Stop the obfuscator
  info      Show current status
  stat      Show statistics

Options:
  --conf FILE     Configuration file
  --plugin NAME   Load specific plugin
  --list-plugins  List available plugins
  --debug         Debug output

Vue d’ensemble

sniffjoke intercepte le trafic TCP sortant et injecte des paquets forgés conçus pour tromper les moteurs IDS/IPS. Il exploite le fait que les systèmes IDS doivent réassembler les flux TCP : en injectant des paquets qui seront écartés par l’hôte final mais qui trompent l’IDS, les attaques réseau peuvent échapper à la détection par signature.

Utilisation de base

# Démarrer sniffjoke
sudo sniffjoke start

# Démarrer avec une configuration spécifique
sudo sniffjoke start --conf /etc/sniffjoke/sniffjoke.conf

# Vérifier le statut
sudo sniffjoke info

# Arrêter
sudo sniffjoke stop

Configuration

# Fichier de configuration : /etc/sniffjoke/sniffjoke.conf

# Sélectionner les plugins d'évasion
# pluginsdir = /usr/share/sniffjoke/plugins/

# Définir la manipulation basée sur le TTL
# Options pour tromper le réassemblage de paquets de l'IDS :
# - injection de paquets à TTL expiré
# - insertion de paquets RST
# - manipulation de la fragmentation

sudo sniffjoke start --plugin TTLchaos
sudo sniffjoke start --plugin TCPopt

Plugins

# Plugins d'évasion disponibles :
# TTLchaos     : injecte des paquets à TTL expiré (l'IDS les voit, l'hôte les rejette)
# TCPopt       : manipule les options TCP pour tromper le réassemblage
# RST          : injecte des paquets RST
# FragRoute    : attaques de fragmentation IP
# SYN          : confusion basée sur SYN
# Lister les plugins disponibles
sniffjoke --list-plugins

Tester l’évasion IDS

# Démarrer sniffjoke
sudo sniffjoke start

# Lancer une attaque (Snort/Suricata ne la verra pas correctement)
nmap -sV target
# Surveiller ce que voit l'IDS
# Si Snort tourne en parallèle : les alertes devraient être réduites/confuses

Conseils

  • sniffjoke est avant tout un outil de recherche/pédagogique pour comprendre l’évasion IDS
  • Les systèmes IDS modernes ont une meilleure résistance à l’évasion : les résultats varient
  • Nécessite des privilèges root et le routage du trafic TCP via l’hôte
  • À utiliser en environnement de lab pour comprendre pourquoi un IDS passif peut être trompé
  • fragrouter est un outil alternatif pour l’évasion IDS basée sur la fragmentation IP
Aide / Page de manuel
sniffjoke [command] [options]

Commands:
  start     Start the obfuscator
  stop      Stop the obfuscator
  info      Show current status
  stat      Show statistics

Options:
  --conf FILE     Configuration file
  --plugin NAME   Load specific plugin
  --list-plugins  List available plugins
  --debug         Debug output