bed
Bruteforce Exploit Detector, un fuzzer de services réseau. Envoie des entrées malformées à des services réseau via divers protocoles pour détecter des crashs et de potentielles vulnérabilités de buffer overflow. Bruteforce Exploit Detector — network service fuzzer. Sends malformed inputs to network services over various protocols to detect crashes and potential buffer overflow vulnerabilities.
↗ https://github.com/trailofbits/bedOverview
BED (Bruteforce Exploit Detector) is a network protocol fuzzer that sends various types of malformed data to network services to detect crashes, hangs, and potential buffer overflows. It has built-in plugins for common protocols including FTP, HTTP, SMTP, POP3, IRC, and more.
Basic Usage
Fuzz an FTP server
bed -s FTP -t 10.10.10.1 -p 21
Fuzz an HTTP server
bed -s HTTP -t 10.10.10.1 -p 80
Fuzz SMTP
bed -s SMTP -t 10.10.10.1 -p 25
Fuzz POP3
bed -s POP3 -t 10.10.10.1 -p 110
Fuzz with timeout
bed -s FTP -t 10.10.10.1 -p 21 -o 3
Supported Plugins
List available plugins
bed -s list
# Common protocol plugins:
# FTP — file transfer protocol
# SMTP — mail sending
# POP3 — mail retrieval
# HTTP — web server
# IRC — internet relay chat
# IMAP — mail access
# LPD — line printer daemon
# FINGER — finger protocol
# TFTP — trivial file transfer
# DICT — dictionary service
Options
-s PLUGIN Protocol plugin
-t HOST Target host
-p PORT Target port
-o N Timeout in seconds (default: 3)
-v Verbose output
-d Debug mode
What BED Sends
# For each protocol, BED sends:
# Very long strings (buffer overflow attempts)
# Format string sequences (%x%x%x%x...)
# Binary sequences (\x00, \xff, etc.)
# SQL injection patterns
# Shell metacharacters
# Various encodings
# Example for HTTP:
# GET /[AAAA...2000 bytes] HTTP/1.0
# Host: [AAAA...2000 bytes]
# User-Agent: [%x%x%x%x...]
Post-Fuzz Analysis
# If the service crashes during fuzzing:
# 1. Note which test case caused the crash
# 2. Replicate the crash manually
# 3. Develop a PoC exploit
# Use Wireshark alongside to capture what caused the crash
# Then analyze the crashed process with a debugger
Tips
- BED is simple but useful for quick protocol fuzzing on legacy services
- Monitor the target service during fuzzing for crashes/hangs
- If a service goes silent mid-test, check if it crashed
- Use with gdb attached to the target process to catch crashes automatically
- For deeper fuzzing, consider boofuzz or American Fuzzy Lop (AFL++)
Help / Man page
bed [options]
-s PLUGIN Plugin/protocol (FTP, HTTP, SMTP, etc.)
-t HOST Target hostname or IP
-p PORT Target port
-o N Timeout in seconds
-v Verbose
-d Debug
Vue d’ensemble
BED (Bruteforce Exploit Detector) est un fuzzer de protocoles réseau qui envoie divers types de données malformées à des services réseau pour détecter des crashs, des blocages et de potentiels buffer overflows. Il embarque des plugins pour les protocoles courants dont FTP, HTTP, SMTP, POP3, IRC, et plus.
Utilisation de base
# Fuzzer un serveur FTP
bed -s FTP -t 10.10.10.1 -p 21
# Fuzzer un serveur HTTP
bed -s HTTP -t 10.10.10.1 -p 80
# Fuzzer du SMTP
bed -s SMTP -t 10.10.10.1 -p 25
# Fuzzer du POP3
bed -s POP3 -t 10.10.10.1 -p 110
# Fuzzer avec un timeout
bed -s FTP -t 10.10.10.1 -p 21 -o 3
Plugins supportés
# Lister les plugins disponibles
bed -s list
# Plugins de protocoles courants :
# FTP : file transfer protocol
# SMTP : mail sending
# POP3 : mail retrieval
# HTTP : web server
# IRC : internet relay chat
# IMAP : mail access
# LPD : line printer daemon
# FINGER : finger protocol
# TFTP : trivial file transfer
# DICT : dictionary service
Options
-s PLUGIN Protocol plugin
-t HOST Target host
-p PORT Target port
-o N Timeout in seconds (default: 3)
-v Verbose output
-d Debug mode
Ce que BED envoie
# Pour chaque protocole, BED envoie :
# Des chaînes très longues (tentatives de buffer overflow)
# Des séquences de format string (%x%x%x%x...)
# Des séquences binaires (\x00, \xff, etc.)
# Des motifs d'injection SQL
# Des métacaractères shell
# Divers encodages
# Exemple pour HTTP :
# GET /[AAAA...2000 bytes] HTTP/1.0
# Host: [AAAA...2000 bytes]
# User-Agent: [%x%x%x%x...]
Analyse post-fuzz
# Si le service crashe pendant le fuzzing :
# 1. Noter quel cas de test a provoqué le crash
# 2. Reproduire le crash manuellement
# 3. Développer un PoC d'exploit
# Utilisez Wireshark en parallèle pour capturer ce qui a provoqué le crash
# Puis analysez le processus crashé avec un débogueur
Conseils
- BED est simple mais utile pour un fuzzing rapide de protocoles sur des services legacy
- Surveillez le service cible pendant le fuzzing pour repérer crashs et blocages
- Si un service devient silencieux en cours de test, vérifiez s’il a crashé
- Utilisez-le avec gdb attaché au processus cible pour attraper les crashs automatiquement
- Pour un fuzzing plus poussé, envisagez boofuzz ou American Fuzzy Lop (AFL++)
Aide / Page de manuel
bed [options]
-s PLUGIN Plugin/protocol (FTP, HTTP, SMTP, etc.)
-t HOST Target hostname or IP
-p PORT Target port
-o N Timeout in seconds
-v Verbose
-d Debug