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
apimspray — Azure apim mini proxy | Kitploit
Herramientas/GitHubGitHub/crtvrffnrt/apimspray
OSINT (Inteligencia de Fuentes Abiertas)ReconocimientoAtaques de ContraseñasRecopilación de InformaciónSeguridad en la NubeRed Teaming
GitHubcrtvrffnrt/apimspray

apimspray

Azure apim mini proxy

Ver Repositorio
616hace 11 díasRevisado 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

Apimspray

apimspray

Python Azure License Status

apimspray es un kit especializado de rociado de contraseñas de Entra ID diseñado para investigaciones de seguridad autorizadas y Red Teaming. Utiliza las puertas de enlace de Azure API Management (APIM) como una capa de proxy distribuida y rotatoria para la rotación de IP.

Lea la publicación del blog para obtener más detalles sobre este proyecto.

Prerrequisitos

  • Azure CLI (az): Necesario para que el script rotador implemente recursos. (Ejecute el script desde una sesión de CLI ya autenticada con az cli o use Azure Cloud Shell)
  • Suscripción activa de Azure: Para implementar recursos del nivel Consumption de APIM (el costo es insignificante, típicamente <$0.01 para evaluaciones cortas).

Instalación

  1. Clone el repositorio.
  2. Instale las dependencias de Python:
    root@kitploit:~
    pip install -r requirements.txt
    
  3. Asegúrese de haber iniciado sesión en la CLI de Azure:
    root@kitploit:~
    az login
    
    Nota: El script rotador depende de una sesión activa de Azure CLI en segundo plano para implementar recursos.

Configuración

Inicio rápido (Azure Cloud Shell)

Ejecute apimspray directamente desde un entorno de Azure autenticado.

Abrir en Azure Cloud Shell
root@kitploit:~
git clone https://github.com/crtvrffnrt/apimspray.git
cd apimspray
python3 apimspray.py --help

1. Implementar puertas de enlace

Implemente varias puertas de enlace APIM en distintas ubicaciones

root@kitploit:~
python3 apimspraycreate.py --count 5 --outfile urls.txt

Implementa 33 instancias de APIM en Germanywestcentral y westeurope y guarda en urls.txt

root@kitploit:~
 python3 apimspraycreate.py --location germanywestcentral,westeurope --count 33 --outfile urls.txt

Referencia de CLI de apimspraycreate:

root@kitploit:~
usage: apimspraycreate.py [-h] --outfile OUTFILE [--count COUNT] [--location LOCATION] [--prefix PREFIX] [--realm-prefix REALM_PREFIX] [--delete-old]

apimspraycreate - Azure APIM Deployer

options:
  -h, --help            show this help message and exit
  --outfile OUTFILE     Output file for URLs
  --count COUNT         Number of instances
  --location LOCATION   Comma-separated APIM location(s) to deploy into. When provided, only those regions are used and the first location is used for the resource group.
  --prefix PREFIX       API URL prefix
  --realm-prefix REALM_PREFIX
                        Realm API prefix
  --delete-old          Delete old resource groups

Importante: Para todos los métodos, debe tener una sesión az activa en segundo plano (az login).

2. Preparar las listas de palabras

Asegúrese de tener preparadas sus listas objetivo:

  • users.txt: Lista de UserPrincipalNames (p. ej., [email protected]).
  • passwords.txt: Lista de contraseñas para el rociado.

3. Reconocimiento / Generación de UPN (Opcional)

Si no tiene una lista de usuarios, puede usar el script auxiliar generate_upns.py. Esta herramienta:

  1. Consulta el inquilino de Azure objetivo para descubrir todos los dominios conectados y verificados.
  2. Descarga una lista de nombres de usuario de cuentas de servicio estadísticamente probables desde GitHub.
  3. Genera una lista de permutaciones de UPN (UserPrincipalNames) y los guarda en users.txt.

Uso:

root@kitploit:~
# Generate users.txt for a specific domain or tenant ID
python3 generate_upns.py --target example.com
# OR using Tenantid
python3 generate_upns.py --target 00000000-0000-0000-0000-000000000000

Referencia de CLI de generate_upns:

root@kitploit:~
usage: generate_upns.py [-h] --target TARGET

Generate UPNs from connected Azure Tenants and Service Accounts.

options:
  -h, --help       show this help message and exit
  --target TARGET  Target Domain (e.g., example.com) or Tenant UUID

Uso

root@kitploit:~
usage: apimspray.py [-h] [--urls URLS] [--users USERS] [--passwords PASSWORDS] [--output OUTPUT] [--tenant TENANT] [--domain DOMAIN] --mode {spray,validate} [--pace {stealth,low,mid,medium,high}]
                    [--continue-on-success]

apimspray - Entra ID Assessment Tool

options:
  -h, --help            show this help message and exit
  --urls URLS           Path to APIM URLs file (from apimspraycreate.py or apimsprayrotator.sh)
  --users USERS         Path to users file
  --passwords PASSWORDS
                        Path to passwords file
  --output OUTPUT       Output directory
  --tenant TENANT       Tenant ID or Domain
  --domain DOMAIN       Append domain to users if missing
  --mode {spray,validate}
                        Operation mode. 'spray' tests all passwords against all users (1:N). 'validate' performs 1:1 credential pair testing.
  --pace {stealth,low,mid,medium,high}
                        Pacing profile for requests and lockout management:
                         - high:    15 workers, 0.1s delay, 10 passes/chunk, 5m lockout, 20 safe threshold
                         - medium:  5 workers,  1.0s delay,  5 passes/chunk, 10m lockout, 10 safe threshold, 10% jitter
                         - low:     2 workers,  5.0s delay,  2 passes/chunk, 15m lockout,  5 safe threshold, 20% jitter
                         - stealth: 1 worker,  30.0s delay,  1 pass/chunk,   20m lockout,  1 safe threshold, 40% jitter
  --continue-on-success
                        Continue the assessment even after finding valid credentials.

Modos

  • validate: Comprueba una lista de pares usuario:contraseña. Requiere listas de igual longitud.

    root@kitploit:~
    python3 apimspray.py --urls urls.txt --mode validate --users u.txt --passwords p.txt
    
  • spray: Prueba una contraseña contra todos los usuarios, luego espera (si está configurado) y pasa a la siguiente contraseña.

    root@kitploit:~
    python3 apimspray.py --urls urls.txt --mode spray --users users.txt --passwords common_passwords.txt --pace medium
    

Perfiles de ritmo

El argumento --pace controla la agresividad del rociado. Los valores están codificados para garantizar estabilidad y seguridad.

  • Conteo: Número de contraseñas a probar por usuario antes de pausar para permitir que se reinicien los temporizadores de bloqueo.
  • Espera de bloqueo: Tiempo de espera entre lotes de contraseñas.
  • Umbral seguro: Si esta cantidad de cuentas se bloquea (AADSTS50053), la herramienta aborta inmediatamente.
  • Jitter: Aleatoriza el retraso para evadir análisis de tiempos estáticos.

Salida

Los resultados se guardan en el directorio results/<timestamp>/:

  • valid_*.txt: Autenticaciones exitosas (MFA requerido o Token recibido).
  • blocked_*.txt: Cuentas bloqueadas o bloqueadas condicionalmente.
  • failed_*.txt: Credenciales inválidas o usuario no encontrado.

Créditos y referencias

  • o365spray: Inspiración de lógica para el flujo ROPC.
  • TeamFiltration: Inspiración de diseño para la estructura de la herramienta.
  • FireProx: El abuelo de las técnicas de rotación de puertas de enlace en la nube.
Descargar herramienta
PerfilTrabajadoresRetrasoConteo (Lote)Espera de bloqueoUmbral seguroJitter
high150.1s105m20 bloqueadas0%
medium51.0s510m10 bloqueadas10%
low25.0s215m5 bloqueadas20%
stealth130.0s120m1 bloqueada40%