Módulo FUZZING - nitsuga1986/sipot GitHub Wiki

Módulo FUZZING:

La presente herramienta consta de (3) módulos principales, con sus diferentes opciones, para explotar tres de los ataques más comunes realizados a servidores SIP. A continuación se describe el segundo módulo:

Fuzzing

Estado: Completo (en verificación).

Descripción

La técnica del Fuzz testing consiste en realizar diferentes test de software capaces de generar y enviar datos secuenciales o aleatorios a una aplicación, con el objeto de detectar defectos o vulnerabilidades. El fuzzing sirve para encontrar vulnerabilidades del tipo: format string, integer overflow, buffer overflow, format string, etc.

Este módulo se encarga del envío de mensajes SIP a la dirección destino en un flujo continuo e ininterrumpido. Con cada envío, el mensaje es mutado con leves variaciones en los campos enviados. El objetivo del módulo es el de generar denegación de servicio en el servidor a través de explotar una vulnerabilidad de parseo, buffer overlow, etc. El módulo posee opciones expuestas para cambiar el módulo generador de mensajes (--fuzz-fuzzer), limitar la cantidad máxima de mensajes enviados (--fuzz-max=FUZZ_MAX_MSGS), en incluse realizar una verificación automática de la disponibilidad del servidor (--fuzz-crash). Para la generación de mensajes y sus mutaciones se utiliza como base el framework con licencia GNU GPL v2 llamado Sulley.

Opciones

-l, --fuzz-fuzzer-list
                    Display a list of available fuzzers or display help on
                    a specific fuzzer if the -f option is also provided
--fuzz-fuzzer=FUZZER
                    Set fuzzer. Default is InviteCommonFuzzer. Use -l to
                    see a list of all available fuzzers
--fuzz-crash        Enables crash detection
--fuzz-crash-method=CRASH_METHOD
                    Set crash method. By default uses OPTIONS message and
                    stores response.
--fuzz-crash-no-stop
                    If selected prevents the app to be stoped when a crash
                    is detected.
--fuzz-max=FUZZ_MAX_MSGS
                    Sets the maximum number of messages to be sent by
                    fuzzing mode. Default is max available in fuzzer.
--fuzz-to-file=FILE_NAME
                    Print the output to a file with the given name.

Ejemplos

Fuzzes the headers commonly found in a SIP INVITE request to 192.168.56.77:

python sipot.py --sipot-mode fuzzing --to sip:[email protected]:5060

Fuzzes the headers commonly found in a SIP REGISTER request to 192.168.56.77:

python sipot.py --sipot-mode fuzzing --fuzz-fuzzer REGISTERFuzzer --to sip:[email protected]:5060

Uses all available fuzzers to 192.168.56.77:

python sipot.py --sipot-mode fuzzing --fuzz-fuzzer --fuzz-max 10 All --to sip:[email protected]:5060

Fuzz and print results to a file:

python sipot.py --sipot-mode fuzzing --fuzz-crash --fuzz-to-file examples/example_fuzz_results.txt --to sip:[email protected]:5060