Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ansvif — A Not So Very Intelligent Fuzzer: Un framework de fuzzing avanzado diseñado para encontrar vulnerabilidades en código C/C++. | Kitploit
Herramientas/GitHubGitHub/oxagast/ansvif
Análisis de VulnerabilidadesExplotaciónFuzzingPruebas de PenetraciónAnálisis de Binarios
GitHuboxagast/ansvif

ansvif

A Not So Very Intelligent Fuzzer: Un framework de fuzzing avanzado diseñado para encontrar vulnerabilidades en código C/C++.

Ver Repositorio
10526hace 5 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

ansvif

Un Fuzzer No Tan Inteligente

Marshall Whittaker

oxagast

[email protected]

A medida que aumenta la complejidad de un sistema, también aumenta el potencial de problemas dentro de ese sistema.

--Ley de Whittaker

Dependencias de compilación:

automake autoconf-archive zlib1g-dev g++ gcc (y libgtk2.0-dev si quieres soporte GTK)

Compilación:

Linux:

root@kitploit:~
$ aclocal && autoconf && automake -a && ./configure && make && make check

O, si quieres jugar con el fuzzer de syscalls:

root@kitploit:~
$ aclocal && autoconf && automake -a && ./configure --enable-syscalls && make && make check

Si quieres deshabilitar la interfaz GTK puedes hacer:

root@kitploit:~
$ aclocal && autoconf && automake -a && ./configure --disable-gtk && make && make check

FreeBSD

Asumiendo que instalaste g++ desde ports (como necesitarás para C++11):

root@kitploit:~
$ aclocal && autoconf && automake -a && ./configure && make && make check

OpenBSD:

Asumiendo que instalaste g++ desde ports (como necesitarás para C++11):

root@kitploit:~
$ CXX=$(find / -name 'eg++' 2>/dev/null | grep ports | head -n 1) AUTOCONF_VERSION=2.69 AUTOMAKE_VERSION=1.15 autoreconf -fmi

Windows:

Los binarios de Windows ahora están diseñados para compilarse con MinGW-W64 (ya que usamos hilos, descarga una versión de MinGW-W64 g++ con seh). Puedes intentar compilar después de instalar MinGW-W64 g++ con seh (solamente) haciendo clic en el script make_win.bat incluido. Si falla, probablemente sea debido al entorno, así que prueba lo siguiente.

(Ve a donde instalaste MinGW-W64 y haz clic en mingw-64.bat)

root@kitploit:~
windres metadata.rc -O coff -o metadata.res
g++.exe src/common.cpp src/bin2hex.cpp src/popen2.cpp src/main.cpp src/help.cpp src/match_fault.cpp src/sys_string.cpp src/man_read.cpp src/randomizer.cpp src/trash.cpp src/log.cpp metadata.res src/version.h -I./ -I./include -std=c++11 -lstdc++ -lpthread -O2 -o ansvif.exe -static -static-libgcc -static-libstdc++
gcc src/win/printf.c -o printf.exe

Nota: los archivos externos .dll de cygwin ya no son necesarios ya que ahora compilamos con g++ de MinGW. En Windows 7, Powershell v2 está instalado por defecto, sin embargo, este programa requiere al menos Powershell v5. Windows 10 incluye Powershell v5. Puedes ir al sitio de Microsoft y descargar Windows Management Framework (que incluye versiones más nuevas de Powershell) aquí:

https://www.microsoft.com/en-us/download/details.aspx?id=50395

Pruebas:

Si quieres probar el código de ejemplo, puedes compilar faulty.c con:

root@kitploit:~
$ gcc faulty.c -o faulty

También puedes simplemente ejecutar make check.

Uso:

Nota importante: los usuarios de Windows deberán ejecutar ansvif.exe desde Powershell para que funcione!

root@kitploit:~
$ ./find_suid /usr/bin/ /bin/ /sbin/
$ ./ansvif -[tm] [template/manpage] -c /path/to/executable -b buffersize

Ejemplos:

Linux/BSD:

root@kitploit:~
$ ulimit -c unlimited
$ ./ansvif -m mount -c /bin/mount -e examples/mount_e.txt -x examples/mount_o.txt\
-f 8 -b 2048
$ ./ansvif -t examples/blank.txt -F tmp/tmphtml -x examples/htmltags.txt -c /usr/bin/iceweasel -b\
128 -A "file:///home/username/src/ansvif/tmp/tmphtml"  -f 2 -n -R "sleep 3 && killall\
iceweasel" -S ">"
$ cat examples/linux_syscalls_implemented.list | xargs -P \
`cat examples/linux_syscalls_implemented.list | wc -l` -I {calls} ./ansvif -t examples/space.txt \
-B "{calls} " -c ./syscalls -o syscall_crash -f 1 -z -d -b 16

Windows:

root@kitploit:~
PS C:\ansvif\bin\ansvif_win> .\ansvif -t ..\..\examples\space -F ..\..\tmp\tmphtml -x `
..\..\examples\htmltags -c `
'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe' `
-b 128 -A "file:///C:\\Users\marsh\OneDrive\Documents\Code\ansvif\tmp\tmphtml" `
-f 2 -n -S ">" -R "sleep 2 ; Stop-Process -Name chrome"

Opciones:

ansvif

root@kitploit:~
  -t Este archivo debe contener argumentos de línea de comandos línea por línea como se muestra en el archivo de ejemplo.
  -e Este archivo debe contener variables de entorno línea por línea como se muestra en el archivo
     de ejemplo.  Normalmente puedes obtenerlas haciendo algo como:
     $ strings /bin/mount | perl -ne 'print if /[A-Z]=$/' > mount_envs
  -c Especifica la ruta del comando.
  -p Especifica la ubicación de la página de manual (como un entero, normalmente 1 u 8)
  -m Especifica la página de manual del comando.
  -D Vuelca lo que se encuentra en la página de manual.
  -f Número de hilos a usar.  Por defecto es 2.
  -b Especifica el tamaño del buffer para fuzzear.  256-2048 suele ser suficiente.
  -r Usa solo datos basura aleatorios.
  -o Escribe la salida en un archivo de registro.
  -z Aleatoriza el tamaño del buffer desde 1 hasta lo especificado por -b.
  -x Otras cosas para poner.  Nombres de usuario y similares pueden ir aquí.
  -S Separador entre opciones.
  -s Especificación de caracteres omitidos.  Los valores predeterminados son <>\\n |&\[]\()\{}:;\ y la nueva línea es obligatoria.
  -T Tiempo de espera para los hilos.
  -W Tiempo de espera para los hilos.
  -L Usuario no privilegiado para ejecutar como si fuera root.
  -A Siempre poner lo que sigue después del comando a ejecutar.
  -B Siempre poner lo que sigue antes del comando a ejecutar.
  -F Archivo para alimentar al programa donde se pondrán -x junto con datos de fuzzing normales.
  -n Nunca usar datos aleatorios en el fuzz.
  -R Ejecutar este comando después de cada fuzz.
  -C Un código de error no estándar para detectar.
  -V Usar Valgrind si está instalado.
  -1 Intentar que falle una vez, si no sucede, lanzar código de error 64.  Útil para scripts.
  -P Usar % para representar binario en el fuzz.
  -M Máximo de argumentos a usar en el fuzz.
  -y Abreviatura de -b 0 y normalmente solo útil con -A o -B.
  -K Seguir fuzzeando después de un fallo en el objetivo.
  -E Un comando a ejecutar antes del programa fuzzeado.
  -0 Sin caracteres NULL en el fuzz.
  -N Abreviatura de -R "pkill prog".
  -v Verboso.
  -d Datos de depuración.
  -h Muestra la página de ayuda.
  -i Imprime información de la versión.

ansvif_gtk

root@kitploit:~
  -l Atajo para -p ./ansvif
  -p La ubicación del binario ansvif

Recomendaciones: Se recomienda que si estás haciendo fuzzes largos o fuzzing de archivos, si es posible, coloques los archivos (incluyendo el binario que estás fuzzeando si es posible) en memoria. Esto significa, ponerlos en algún lugar como /var/run/shm donde el golpeteo del disco será mínimo, y el fuzzing será algo más rápido, especialmente si se manejan archivos grandes. Sin embargo, ten cuidado: perderás tus archivos fuzzeados si están en shm y reinicias la máquina!

¡NO EJECUTES ESTE CÓDIGO EN UN ENTORNO DE PRODUCCIÓN! Si intentas establecer la salida de faulty.c a suid(0), entonces POR FAVOR hazlo en una máquina virtual. o al menos en una máquina que no te importe. Aparte de eso, solo juega y diviértete!

Notas:

Los usuarios de Windows deben tener ansvif ejecutándose desde Powershell. El código de Linux y Windows debería ser relativamente estable. El fuzzing de syscalls bajo linux está en desarrollo activo.

Agradecimientos

Gracias a dll999 por las ideas de fuzzing de syscalls. Gracias a moo de #2600 en 2600net por algunas recomendaciones en el wiki. Gracias a Dios sabe cuántas personas en IRC y StackOverflow. Gracias a DarkSt0rm por arreglar un error en el Makefile.

Descargar herramienta