← retour aux outils back to tools

# 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/bed

## Overview

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