Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
manul — Manul è un fuzzatore parallelo guidato dalla copertura per binari open-source e blackbox su Windows, Linux e MacOS | Kitploit
Strumenti/GitHubGitHub/mxmssh/manul
Analisi Dinamica (Sandboxing)Analisi delle VulnerabilitàFuzzingAnalisi di Binari
GitHubmxmssh/manul

manul

Manul è un fuzzatore parallelo guidato dalla copertura per binari open-source e blackbox su Windows, Linux e MacOS

Vedi Repository
33567206 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Manul

Travis AppVeyor

Logo

Manul è un fuzzer parallelo guidato dalla copertura per binari open-source e black-box su Windows, Linux e macOS (beta) scritto in puro Python.

Avvio rapido

pip3 install psutil
git clone https://github.com/mxmssh/manul
cd manul
mkdir in
mkdir out
echo "AAAAAA" > in/test
python3 manul.py -i in -o out -n 4 "linux/test/test_afl @@"

Installazione di Radamsa

sudo apt-get install gcc make git wget
git clone https://gitlab.com/akihe/radamsa.git && cd radamsa && make && sudo make install

Non è necessario installare radamsa su Windows, Manul è distribuito con la libreria nativa di radamsa su questa piattaforma.

Elenco di CVE pubbliche

CVE IDsProdottoRilevatore
CVE-2019-9631 CVE-2019-7310 CVE-2019-9959PopplerMaksim Shudrak
CVE-2018-17019 CVE-2018-16807 CVE-2019-12175Bro/ZeekMaksim Shudrak

Se sei riuscito a trovare un nuovo bug usando Manul, contattami e ti aggiungerò all'elenco.

Demo

Breve demo

Dipendenze

  1. Python3 (Python2 è deprecato dal 1° gennaio 2020, ma Manul dovrebbe funzionare ancora con Python2)
  2. psutil
  3. pywin32 (pip install pywin32) su piattaforma Windows (richiesto solo per la modalità di persistenza DBI).

Fuzzing guidato dalla copertura

Attualmente, Manul supporta due tipi di strumentazione: basata su AFL (afl-gcc, afl-clang e afl-clang-fast) e DBI.

Fuzzing guidato dalla copertura (modalità di strumentazione AFL)

Strumenta il tuo target con afl-gcc o afl-clang-fast e Address Sanitizer (raccomandato per risultati migliori). Ad esempio:

CC=afl-gcc CXX=afl-g++ CFLAGS=-fsanitize=address CXXFLAGS=-fsanitize=address cmake <percorso_al_target>
make -j 8
USE_ASAN=1 CC=afl-clang-fast CXX=afl-clang-fast++ cmake <percorso_al_target>
make -j 8

Vedi queste istruzioni per maggiori dettagli.

Fuzzing guidato dalla copertura in modalità DBI

In questa modalità non è necessario strumentare il target, ma è necessario scaricare l'ultima versione del framework DynamoRIO per Windows o Linux.

Manul è distribuito con client x86/x64 precompilati per Linux e Windows. Puoi trovarli nelle seguenti cartelle:

linux/dbi_32|dbi_64/libbinafl.so (client DynamoRIO)
win/dbi_32|dbi_64/binafl.dll

Purtroppo DynamoRIO non è ufficialmente supportato su MacOS.

Utilizzo di DynamoRIO per fare fuzzing di binari black-box

Puoi trovare i pacchetti di rilascio più recenti di DynamoRIO alla pagina di download di DynamoRIO.

Devi decommentare le seguenti righe nel file manul.config e fornire il percorso corretto al launcher e al client di DynamoRIO.

# Scegli il framework DBI per fornire la copertura a Manul ("dynamorio" o "pin"). Esempio dbi = dynamorio
dbi = dynamorio
# Se il parametro dbi non è None, devono essere specificati il percorso del launcher del motore DBI e del client DBI.
dbi_root = /home/max/DynamoRIO/bin64/drrun
dbi_client_root = /home/max/manul/linux/dbi_64/libbinafl.so
dbi_client_libs = None

Inoltre, puoi aumentare le prestazioni della tua campagna di fuzzing black-box utilizzando il fuzzing persistente in memoria. In questa modalità, dovresti istruire Manul a strumentare una particolare funzione (sì, devi trovarla disassemblando il tuo binario) e la eseguirà in un ciclo decommentando le seguenti righe:

dbi_persistence_mode = 1
dbi_target_module = afl_test
dbi_target_method = open_file
#dbi_target_offset = 0x3198 # opzionalmente puoi fornire l'offset di questa funzione invece del nome
dbi_fuzz_iterations = 1000

Gli autori di winAFL forniscono una spiegazione molto chiara su come funziona effettivamente qui. Manul utilizza una larga porzione del codice della libreria di strumentazione di winAFL per comunicare e strumentare un target.

NOTA IMPORTANTE: Dovresti usare il launcher a 32 bit e il client a 32 bit per fare fuzzing di binari a 32 bit, e il launcher a 64 bit e il client a 64 bit per binari a 64 bit!

Compilazione della libreria client DynamoRIO

Per compilare la libreria di strumentazione, devi usare l'ultima versione di DynamoRIO. Il codice sorgente della libreria di strumentazione si trova in dbi_clients_src nella cartella principale di Manul.

Linux a 64 bit

cd dbi_clients_src
wget <DynamoRIO-x86_64-Linux-X.XX.XXXX-X.tar.gz> - scarica l'ultimo DynamoRIO
tar xvf DynamoRIO-x86_64-X.XX.XXXX-X.tar.gz
mkdir client_64
cd client_64
cmake ../dr_cov/ -DDynamoRIO_DIR=/home/max/manul/dbi_clients_src/DynamoRIO-x86_64-Linux-X.XX.XXXX-X.tar.gz/cmake
make
Linux a 32 bit
cd dbi_clients_src
wget <DynamoRIO-i386-Linux-X.XX.XXXX-X.tar.gz> - scarica l'ultimo DynamoRIO
tar xvf DynamoRIO-x86_64-X.XX.XXXX-X.tar.gz
mkdir client_64
cd client_64
CFLAGS=-m32 CXXFLAGS=-m32 cmake ../dr_cov/ -DDynamoRIO_DIR=/home/max/manul/dbi_clients_src/DynamoRIO-i386-Linux-X.XX.XXXX-X.tar.gz/cmake
make

Su Windows, il modo più semplice per compilare la libreria è installare Visual Studio (testato su versioni 2017 e 2013), avviare il Prompt dei comandi degli strumenti incrociati VS20XX ed eseguire i seguenti comandi:

Windows a 64 bit
cd dbi_clients_src
<Scarica ed estrai l'ultima versione di DynamoRIO>
mkdir client_64
cd client_64
cmake -G"Visual Studio 15 Win64" ..\dr_cov\ -DDynamoRIO_DIR=C:\Users\max\manul\dbi_clients_src\DynamoRIO-Windows-XXXX.XX.X.X\cmake
cmake --build . --config RelWithDebInfo (o Debug se necessario)
Windows a 32 bit
cd dbi_clients_src
<Scarica ed estrai l'ultima versione di DynamoRIO>
mkdir client_32
cd client_32
cmake -G"Visual Studio 15" ..\dr_cov\ -DDynamoRIO_DIR=C:\Users\max\manul\dbi_clients_src\DynamoRIO-Windows-XXXX.XX.X.X\cmake
cmake --build . --config RelWithDebInfo (o Debug se necessario)

Utilizzo di Intel PIN per fare fuzzing di binari black-box su Linux

Manul inizialmente supportava il fuzzing guidato dalla copertura con Intel PIN, ma a causa delle basse prestazioni e dell'elevato overhead di manutenzione, questo non è più supportato.

Argomenti da riga di comando

Le opzioni più frequentemente utilizzate possono essere fornite tramite riga di comando. Ulteriori opzioni sono supportate tramite file di configurazione (manul.config).

Esempio: python3 manul.py -i corpus -o out_dir -n 40 "target @@"

argomenti posizionali:
  target_binary  Il binario target e le opzioni da eseguire (non dimenticare le virgolette, es. "target e @@").

argomenti opzionali:
  -h, --help     mostra questo messaggio di aiuto ed esce
  -n NFUZZERS    Numero di fuzzer paralleli
  -s             Esegui fuzzing stupido (nessuna strumentazione del codice)
  -c CONFIG      Percorso del file di configurazione con opzioni aggiuntive (vedi la sezione Opzioni del File di Configurazione sotto)
  -r             Ripristina sessione precedente

Parametri richiesti:
  -i INPUT       Percorso della directory con il corpus iniziale
  -o OUTPUT      Percorso della directory di output

Opzioni del File di Configurazione

Scarica lo strumento