progetto Fusil è un programma di fuzzing. Attualmente, è specifico per programmi da linea di comando di Linux, ma il codice è stato progettato per essere utilizzato con qualsiasi tipo di progetto (processo remoto, finto server HTTP, socket di rete fuzz, ecc). Fusil progetto si basa su un sistema multi-agente invece di un'architettura monolitica.
Fusil è un progetto opensource scritto in Python con licenza GNU GPL.
Prova fusil
Vai alla directory principale fusil e iniziare a progetto xterm fuzzing:
fusil --project progetto / xterm.py
Risultato in uscita:
$ Cd fusil
$ Fusil progetto -p / xterm.py
[Session # 1] Inizia la sessione
[Processo xterm] Timeout! (1,0 secondi)
(...)
[Session # 8] Inizia la sessione
*** Glibc rilevato *** / usr / bin / xterm: doppio libero o corruzione (prec!): 0x080ad2b8 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7b957cd]
(...)
[Processo orologio] Processo stato terminato dal segnale SIGIOT
[Session # 8] punteggio Sessione: 100,0%
[Domanda] Successo con seduta # 8
Cosa c'è di nuovo in questa versione:
- Python 3 supporto
- fusil-python:
- migliorare la funzione che elenca tutti i moduli Python: utilizzare sys.builtin_module_names e pkgutil.iter_modules ()
- lista nera più moduli, classi e funzioni
Cosa c'è di nuovo nella versione 1.3.2:
- replay.py: impostare sys.path per facilitare l'utilizzo di Fusil senza installarlo
- Fix fusil-gettext: ignorare gli errori strace a locateMO ()
- fusil-python:
- avvertimenti nascondere Python
- listAllModules () comprende moduli incorporate
- nuova opzione --only-c per testare solo moduli scritti in C
- perdita di memoria fix: moduli di scaricamento testato
- getFunctions fix (): uso isclass anche () per rilevare le classi
- limite processo Disattiva Fusil memoria massima
Cosa c'è di nuovo nella versione 1.3.1:
- fusil-python: autodiscover tutti i moduli invece di usare un elenco statico di moduli, cattura ogni eccezione durante il caricamento di un modulo, Fuzz solo funzioni pubbliche (modulo uso .__ tutto __)
- FileWatch: ignorare parti duplicati sessione rename
- Rimuovi parti di nome di sessione duplicati (ad esempio, & quot;. Sottaceto-error-error & quot; = & gt; & quot; picke-errore & quot;)
- replay.py: non reindirizzare stdin a / dev / null se --ptrace viene utilizzato
- sonda CPU: impostare la durata massima da 3 a 10 secondi (rinominare la sessione in caso di successo)
Cosa c'è di nuovo nella versione 1.3:
- Crea fusil-gimp
- Rimuovi charset da WriteCode: utilizzare builtin open () invece codecs.open () perché i file creati da open () sono molto più veloci
- Ottimizza FileWatch: non ricompilare i modelli ad ogni sessione
- fusil ora dipende da python-ptrace 0.6
- Non utilizzare close_fds argomento subprocess.Popen () in Windows
- lettore configurazione Fix: normal_calm_load, normal_calm_sleep, slow_calm_load, chiavi slow_calm_sleep opzioni globali del flottante, non interi
- FileWatch utilizza il modello per rinominare la sessione
Cosa c'è di nuovo nella versione 1.2.1:
- Fissare agente mangano dell'Immagine Magick fuzzer
- Fissare AttachProcessPID sonda (): fermare la sonda all'uscita processo
Cosa c'è di nuovo nella versione 1.2:
- User cambiamenti visibili:
- Fusil ora richiede Python 2.5
- Documentazione: scrivere un indice (index.rst) e un manuale d'uso (usage.rst)
- copione Replay: copia ambiente HOME per GDB e prendere setuid () Errore
- fusil-firefox: supportare più formati di file (bmp, gif, ico, png, SVG), creare --test linea di comando, scrivere la pagina HTML in file index.html
- fusil-python: scrivere gli errori stderr (invece di stdout) per evitare errori unicode (soprattutto con python3)
- FileWatch: rinominare la sessione con & quot; long_output & quot; se il programma ha scritto più di linee max_nbline
- fusil-python: posix.fork blacklist () per evitare falsi positivi
- Se il processo viene ucciso da un segnale, rinominare la sessione utilizzando il nome del segnale (già lavorato se il debugger è stato disattivato)
- modifiche Sviluppatore:
- MangleAgent supporta i file di input multipli
- Crea DummyMangle: agente con MangleFile API, ma non toccare il contenuto del file per verificare il fuzzer
- Rete: close () di NetworkClient e uso ServerClient shutdown (SHUT_RDWR)
- NetworkServer utilizza un arretrato di 5 clienti per socket.listen () (invece di 1)
- Bugfix:
- Fix Directory.rmtree () e sceneggiatura riproduzione per Python 3.0
- ServerClient.sendBytes Fix (): uso socket.send () risultato per ottenere compensare i dati successivi
Cosa c'è di nuovo nella versione 1.0 finale:
- Questa release aggiunge vlc e fuzzer zzuf, un replay. sceneggiatura py con molte opzioni (es --valgrind), e l'opzione --force-unsafe (come --unsafe ma senza la conferma).
- Si utilizza sempre un dispositivo null come stdin per processi figli per evitare di bloccare il fuzzer se il processo si legge stdin.
- L'identificatore processo creato è scritto nei registri.
Cosa c'è di nuovo nella versione 1.0 Beta 3:
- La sessione viene rinominato utilizzando lo stato di uscita di processo ( codice di uscita o il segnale). Viene visualizzato il progresso di esecuzione.
- Il numero totale di processi è limitata (per la protezione contro le bombe forcella) e un core dump è permesso.
- Bugs introdotte dal cambio utente sono state fissate.
- La compatibilità con Python 3000 e FreeBSD è stato migliorato.
Requisiti
- Python
- GCC
I commenti non trovato