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
autoPwn — Automatizar tareas repetitivas para fuzzing | Kitploit
Herramientas/GitHubGitHub/bannsec/autopwn
ExplotaciónFuzzingAnálisis de Binarios
GitHubbannsec/autopwn

autoPwn

Automatizar tareas repetitivas para fuzzing

Ver Repositorio
12630hace 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

Daily Build Trigger

Advertencia

Actualmente se está reescribiendo por completo. Inicialmente, el enfoque estará en aplicaciones Linux interactivas que solo toman entrada de stdin. Se intentará utilizar la funcionalidad Driller y Fuzzer de Shellphish.

autoPwn en su estado actual hará esto de forma limitada. Simplemente ejecute autoPwn ./binary y luego seleccione la opción Iniciar.

Instalación

Dados todos los problemas de dependencias aquí, la forma más fácil de poner en marcha autoPwn es usar la compilación Docker. Tenga en cuenta que puede eliminar --security-opt y --cap-add, pero algunos aspectos del fuzzing podrían no funcionar.

root@kitploit:~
$ sudo docker pull bannsec/autoPwn
$ sudo docker run -it -v $PWD:/mount --security-opt="apparmor=unconfined" --cap-add=SYS_PTRACE -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix/ bannsec/autopwn

En la compilación Docker, todo debería estar listo para usar. Puede iniciar la herramienta simplemente con:

root@kitploit:~
$ autoPwn ./file

Compilar código fuente para fuzzing

autoPwn intenta facilitar la compilación de código fuente para fuzzing de un proyecto. Para ayudar con esto, se creó autoPwnCompile. Solo hay que apuntarlo al código fuente, darle opciones y generará un ejecutable listo para ser fuzzeado.

root@kitploit:~
uso: autoPwnCompile [-h] [--file FILE] [--ASAN | --MSAN] [--UBSAN]
                      [--fuzzer FUZZER]

Compila código fuente a binarios para usar en autoPwn.

argumentos opcionales:
  -h, --help       muestra este mensaje de ayuda y sale
  --file FILE      Archivo único a compilar.
  --ASAN           Habilita ASAN (desactivado por defecto)
  --MSAN           Habilita MSAN (desactivado por defecto)
  --UBSAN          Habilita UBSAN (desactivado por defecto)
  --fuzzer FUZZER  (opcional) Para qué fuzzer compilar. Opciones:
                   ['AFL']. Por defecto es AFL.

Lo siguiente es de la versión ANTIGUA de autoPwn..

Resumen

autoPwn es un nombre ambicioso para un script simple. Al trabajar con fuzzing y afl-fuzz, noté que realizaba las mismas tareas una y otra vez. Con esto en mente, quería crear un script que lograra lo siguiente:

  1. Automatizar y simplificar la tarea de iniciar el fuzzer mediante indicaciones inteligentes.
  2. Automatizar y simplificar la tarea de reiniciar el fuzzer mediante un archivo de configuración.
  3. Automatizar completamente el proceso de minimización de la cola de afl.
  4. Automatizar completamente el proceso de extracción y minimización de todas las rutas explotables posibles.
  5. Automatizar completamente el proceso de extracción y minimización de todas las rutas posibles en general.
  6. Automatizar total o parcialmente la generación de valores de ruta iniciales.

Hasta ahora, el script es capaz de hacer los primeros 5. La parte 6 es especulativa y se está intentando desarrollar actualmente. Aprovecharía el motor de ejecución simbólica angr para crear posibles rutas iniciales. En ese punto, el script podría teóricamente automatizar completamente tareas de fuzzing simples.

Ejemplo

Veamos un desafío reciente de TUCTF llamado "WoO2". Aunque no encuentra necesariamente el exploit necesario, muestra cómo autoPwn puede usarse para simplificar el descubrimiento de rutas.

Aquí hay un recorrido básico del programa:

root@kitploit:~
$ ./e67eb287f23011a40ef5bd5c2ad2f48ca97834cf 
Welcome! I don't think we're in Kansas anymore.
We're about to head off on an adventure!
Select some animals you want to bring along.

Menu Options:
1: Bring a lion
2: Bring a tiger
3: Bring a bear
4: Delete Animal
5: Exit

Enter your choice:
1
Choose the type of lion you want:
1: Congo Lion
2: Barbary Lion
1
Enter name of lion:
Test
Menu Options:
1: Bring a lion
2: Bring a tiger
3: Bring a bear
4: Delete Animal
5: Exit

Enter your choice:
5

Creemos un caso de prueba de entrada simple:

root@kitploit:~
$ cat in/1 
1
1
Test
5

Ahora podemos iniciar el fuzzer fácilmente:

root@kitploit:~
$ autoPwn 
Setting up fuzz configuration
Target Binary (full or relative path): e67eb287f23011a40ef5bd5c2ad2f48ca97834cf
Command line args: 
Number of cores (default: 8): 
Test Case Dir (default: 'in/'): 
Test Case Dir (default: 'out/'): 
Max memory (default: 200): 4096
Starting fuzz
autoPwn> s
status check tool for afl-fuzz by <[email protected]>

Individual fuzzers
==================

>>> SESSION007 (0 days, 0 hrs) <<<

  cycle 1, lifetime speed 1 execs/sec, path 0/1 (0%)
  pending 1/1, coverage 0.15%, no crashes yet

>>> SESSION000 (0 days, 0 hrs) <<<

  cycle 1, lifetime speed 1 execs/sec, path 0/1 (0%)
  pending 1/1, coverage 0.15%, no crashes yet

>>> SESSION002 (0 days, 0 hrs) <<<

  cycle 1, lifetime speed 1 execs/sec, path 0/1 (0%)
  pending 1/1, coverage 0.15%, no crashes yet

>>> SESSION006 (0 days, 0 hrs) <<<

  cycle 1, lifetime speed 1 execs/sec, path 0/1 (0%)
  pending 1/1, coverage 0.15%, no crashes yet

>>> SESSION004 (0 days, 0 hrs) <<<

  cycle 1, lifetime speed 1 execs/sec, path 0/1 (0%)
  pending 1/1, coverage 0.15%, no crashes yet

>>> SESSION001 (0 days, 0 hrs) <<<

  cycle 1, lifetime speed 1 execs/sec, path 0/1 (0%)
  pending 1/1, coverage 0.15%, no crashes yet

>>> SESSION005 (0 days, 0 hrs) <<<

  cycle 1, lifetime speed 1 execs/sec, path 0/1 (0%)
  pending 1/1, coverage 0.15%, no crashes yet

>>> SESSION003 (0 days, 0 hrs) <<<

  cycle 1, lifetime speed 1 execs/sec, path 0/1 (0%)
  pending 1/1, coverage 0.15%, no crashes yet

Summary stats
=============

       Fuzzers alive : 8
      Total run time : 0 days, 0 hours
         Total execs : 0 million
    Cumulative speed : 8 execs/sec
       Pending paths : 8 faves, 8 total
  Pending per fuzzer : 1 faves, 1 total (on average)
       Crashes found : 0 locally unique


autoPwn> h
autoPwn
     s == (s)tatus del fuzzer
     e == recopilar (e)xploits
     a == recopilar (a)ll paths (todas las rutas)
     m == (m)inimizar corpus
     q == (q)uit (salir)

Entonces, lo que sucedió aquí fue que el script creó algunos valores predeterminados (incluyendo la determinación de la cantidad de núcleos disponibles). Cambiamos un valor predeterminado debido a la necesidad de memoria extra para ejecutar esto en QEMU. autoPwn creó un archivo de configuración que luego le pasó a afl-utils (https://github.com/rc0r/afl-utils). En el archivo de configuración, también configuró afinidades de CPU, por lo que el fuzzing sería óptimo por defecto.

En este punto, su computadora está trabajando en el fuzzing. Sin embargo, un aspecto clave del fuzzing es minimizar el corpus. Con esto en mente, autoPwn está vigilando la instancia de afl-fuzz para monitorear cuándo se completa una serie de mutaciones. Cuando esto sucede, detiene el fuzzing (no es óptimo, pero está bien por ahora), minimiza el corpus y luego reinicia el fuzzing. Lo hace sin intervención humana, por lo que puede configurarlo y olvidarse.

En algún momento, es posible que desee echar un vistazo a las rutas que ha encontrado afl. Al ejecutar el comando "a", autoPwn copiará todas las rutas conocidas, minimizará el corpus y luego minimizará los casos mismos y los proporcionará en un directorio de salida.

Descargar herramienta