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
spraycharles — Herramienta de pulverización de contraseñas lenta y sigilosa, diseñada para pulverizar en intervalos durante un largo período de tiempo. | Kitploit
Herramientas/GitHubGitHub/tw1sm/spraycharles
Descifrado de ContraseñasAtaques de ContraseñasSeguridad WebPruebas de PenetraciónAutenticación
GitHubtw1sm/spraycharles

spraycharles

Herramienta de pulverización de contraseñas lenta y sigilosa, diseñada para pulverizar en intervalos durante un largo período de tiempo.

Ver Repositorio
22337hace 6 mesesRevisado 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

Spraycharles

hey, yo, me siento como spraycharles - Chiddy Bang

Python PyPi

Herramienta de pulverización de contraseñas lenta y constante, diseñada para rociar en un intervalo durante un largo período de tiempo.

Incluye plugins de pulverización para Office365, OWA, EWS, Okta, ADFS, Cisco SSL VPN, Citrix Netscaler, Sonicwall, NTLM sobre HTTP y SMB.

Artículo de blog asociado por @sprocket_ed cubriendo NTLM sobre HTTP, Exchange Web Services y Spraycharles.

¿Qué es esta herramienta?

Spraycharles es un pulverizador de contraseñas relativamente simple, diseñado en un momento en que no había muchas herramientas disponibles públicamente que permitieran que la pulverización de contraseñas fuera un proceso no manual durante una prueba de penetración. Quizás la mejor característica de Spraycharles es la capacidad de configurar una pulverización de larga duración usando -a/--attempts e -i/--interval, y dejarlo correr durante varios días, verificándolo periódicamente. Si tienes un servicio único o algo especial para pulverizar, también es muy fácil crear una plantilla para un nuevo módulo y empezar a pulverizar.

¿Qué no es esta herramienta?

Spraycharles no fue diseñado originalmente pensando en proveedores modernos de autenticación/nube. Si buscas funciones más avanzadas, quizás quieras echar un vistazo a herramientas como CredMaster o TeamFiltration. Spraycharles no fue diseñado para ser rápido - es de un solo hilo y está orientado más a un enfoque de volumen/tiempo.

Instalación

Spraycharles se puede instalar con pip3 install spraycharles o clonando este repositorio y ejecutando pip3 install .

[!TIP] Esto registrará los alias spraycharles y sc para abreviar en tu PATH. Los archivos de registro y salida se almacenan en ~/.spraycharles. Se puede especificar una ubicación de salida alternativa con un indicador de línea de comandos.

Usando Docker

Ejecuta los siguientes comandos para construir el contenedor Docker de Spraycharles:

root@kitploit:~
git clone https://github.com/Tw1sm/spraycharles
cd spraycharles/extras
docker build . -t spraycharles

Ejecuta el siguiente comando para usar el contenedor Docker de Spraycharles:

root@kitploit:~
docker run -it -v ~/.spraycharles:/root/.spraycharles spraycharles -h

Puede que necesites especificar volúmenes adicionales según dónde se almacenen las listas de nombres de usuario y contraseñas.

NixOS

Para usuarios de Nix o NixOS hay un paquete disponible. Ten en cuenta que las últimas versiones pueden estar solo en el canal unstable.

root@kitploit:~
nix-env -iA nixos.spraycharles

Uso

El subcomando spray:

root@kitploit:~
 Usage: spraycharles spray [OPTIONS] COMMAND [ARGS]...

 Pulverización de contraseñas lenta y constante

╭─ Options ─────────────────────────────────────────────────────────────────────────────╮
│ --debug                 Habilita el registro de depuración (anula --quiet)            │
│ --config          TEXT  Archivo de configuración.                                     │
│ --help    -h            Muestra este mensaje y sale.                                  │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ User/Pass Config ────────────────────────────────────────────────────────────────────╮
│ *  --usernames  -u      TEXT  Ruta del archivo de la lista de usuarios  [default:    │
│                               None]                                                   │
│                               [required]                                              │
│ *  --passwords  -p      TEXT  Contraseña única a pulverizar o ruta del archivo de     │
│                               la lista de contraseñas                                 │
│                               [default: None]                                         │
│                               [required]                                              │
│    --equal      -e            Realiza 1 pulverización por cada usuario donde          │
│                               contraseña = nombre de usuario                          │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Spray Target ────────────────────────────────────────────────────────────────────────╮
│    --host      -H      TEXT                           Host al que pulverizar          │
│                                                       contraseñas (ip o nombre de     │
│                                                       host). Puede ser cualquier cosa │
│                                                       al usar el módulo Office365 -   │
│                                                       solo se usa para el nombre del  │
│                                                       archivo de registro             │
│                                                       [default: None]                 │
│ *  --module    -m      [ADFS|CiscoSSLVPN|Citrix|NTLM  Módulo correspondiente al host │
│                        |Office365|Okta|OWA|SMB|Sonic  destino                         │
│                        wall]                          [default: None]                 │
│                                                       [required]                      │
│    --path              TEXT                           Endpoint de autenticación NTLM  │
│                                                       (ej., rpc o ews)                │
│                                                       [default: None]                 │
│    --port      -P      INTEGER                        Puerto al que conectarse en el  │
│                                                       host especificado               │
│                                                       [default: 443]                  │
│    --fireprox  -f      TEXT                           URL de la interfaz fireprox     │
│                                                       deseada                         │
│                                                       [default: None]                 │
│    --domain    -d      TEXT                           HTTP - Anteponer DOMINIO\ a     │
│                                                       los nombres de usuario; SMB -   │
│                                                       Proporcionar dominio para la    │
│                                                       conexión smb                    │
│                                                       [default: None]                 │
│    --no-ssl                                           Usar HTTP en lugar de HTTPS     │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Output ──────────────────────────────────────────────────────────────────────────────╮
│ --output   -o      TEXT  Nombre y ruta del archivo de resultados [default: None]      │
│ --quiet                  No registrará cada intento de inicio de sesión en la consola │
│ --analyze                Ejecutar el analizador de resultados después de cada         │
│                          intervalo de pulverización (los falsos positivos tempranos   │
│                          son más probables)                                           │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Spray Behavior ──────────────────────────────────────────────────────────────────────╮
│ --attempts    -a      INTEGER  Número de envíos de inicio de sesión por intervalo    │
│                                (por cada usuario)                                     │
│                                [default: None]                                        │
│ --interval    -i      INTEGER  Minutos entre intervalos de inicio de sesión          │
│                                [default: None]                                        │
│ --timeout     -t      INTEGER  Umbral de tiempo de espera de solicitud web           │
│                                [default: 5]                                           │
│ --jitter              INTEGER  Tiempo de variación entre solicitudes en segundos     │
│                                [default: None]                                        │
│ --jitter-min          INTEGER  Tiempo mínimo entre solicitudes en segundos           │
│                                [default: None]                                        │
│ --pause                        Pausar la pulverización entre intervalos si se         │
│                                encuentra un nuevo posible inicio de sesión exitoso   │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Notifications ───────────────────────────────────────────────────────────────────────╮
│ --notify   -n      [Slack|Teams|Discord]  Habilitar notificaciones para Slack, Teams │
│                                           o Discord                                   │
│                                           [default: None]                             │
│ --webhook  -w      TEXT                   Webhook utilizado para el módulo de         │
│                                           notificación especificado                   │
│                                           [default: None]                             │
╰───────────────────────────────────────────────────────────────────────────────────────╯

Archivo de configuración

Debido a la cantidad de indicadores de CLI que se usan a menudo, una alternativa es completar los parámetros de línea de comandos desde un archivo yaml usando el indicador --config. Además, cada vez que uses Spraycharles, tus opciones de CLI se escribirán en un archivo yaml (last-config.yaml) en el directorio actual para facilitar la modificación y reutilización.

Notificaciones

Spraycharles tiene la capacidad de enviar notificaciones a Discord, Slack y Microsoft Teams después de un intento de inicio de sesión potencialmente exitoso. Esta lista de proveedores de notificaciones se puede ampliar usando el script utils/notify.py. Para cualquiera de los agentes de notificación potenciales, debes especificar su nombre y una URL de webhook.

Puedes especificarlos usando el archivo de configuración para mantener tu comando más corto:

root@kitploit:~
notify: Slack
webhook: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

Las notificaciones enviadas a cualquiera de los proveedores incluirán el nombre de host de destino asociado con el trabajo de pulverización. Esto es especialmente útil cuando se pulverizan múltiples objetivos a la vez.

Actualización de archivos de nombre de usuario/contraseña

Tienes la capacidad de realizar cambios en los archivos de nombre de usuario y contraseña proporcionados mientras la pulverización está en curso. Las adiciones o eliminaciones de las listas surtirán efecto en la próxima rotación de contraseña.

[!NOTE] Si insertas una nueva contraseña en la lista, debe estar después de la contraseña que se está pulverizando actualmente, para que sea pulverizada (Spraycharles mantiene un contador de bucle interno que se usa como índice para tomar la siguiente contraseña en el lugar correspondiente de la lista actualizada)

Utilidades

Spraycharles incluye algunas utilidades adicionales para ayudar con los esfuerzos de pulverización. Lista completa de módulos de Spraycharles:

root@kitploit:~
 Usage: spraycharles [OPTIONS] COMMAND [ARGS]...

╭─ Options ─────────────────────────────────────────────────────────────────────────────╮
│ --help  -h        Muestra este mensaje y sale.                                       │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────────╮
│ analyze   Analizar archivos de salida de Spraycharles para posibles aciertos de      │
│           pulverización                                                               │
│ gen       Generar listas de contraseñas personalizadas desde un archivo JSON          │
│ modules   Listar módulos de pulverización                                             │
│ parse     Parsear endpoints NTLM sobre HTTP y SMB para recopilar información de      │
│           dominio                                                                     │
│ spray     Pulverización de contraseñas lenta y constante                              │
╰───────────────────────────────────────────────────────────────────────────────────────╯

Generar listas de pulverización personalizadas

El subcomando "gen" de Spraycharles generará una lista de contraseñas basada en las especificaciones proporcionadas en extras/list_elements.json

root@kitploit:~
spraycharles gen extras/list_elements.json custom_passwords.txt

Extraer dominio de NTLM sobre HTTP y SMB

El subcomando parse de Spraycharles extraerá el dominio interno de servicios NTLM sobre HTTP y SMB usando un comando similar al que se muestra a continuación.

root@kitploit:~
spraycharles parse https://example.com/ews
spraycharles parse smb://host.domain.local

Analizar archivos de resultados

El submódulo analyze puede leer tus objetos JSON de salida y determinar las longitudes de respuesta que son estadísticamente relevantes. Con suficientes datos, debería poder extraer los inicios de sesión exitosos de tu archivo de resultados. Esta no es la única forma de determinar inicios de sesión exitosos, depende de tu sitio objetivo, y aún recomendaría verificar los datos tú mismo para asegurarte de que no se pierda nada. Para SMB, simplemente encontrará entradas con códigos NTSTATUS que indican éxito.

root@kitploit:~
spraycharles analyze myresults.json

Descargo de responsabilidad

Esta herramienta está diseñada para su uso durante pruebas de penetración; el uso de esta herramienta para atacar objetivos sin consentimiento mutuo previo es ilegal. Es responsabilidad del usuario final cumplir con todas las leyes locales, estatales y federales aplicables. Los desarrolladores no asumen ninguna responsabilidad y no son responsables por el mal uso de este programa.

Desarrollo

Spraycharles usa Poetry para gestionar las dependencias. Instalar desde el código fuente y configurar para desarrollo con:

root@kitploit:~
pip3 install poetry
git clone https://github.com/Tw1sm/spraycharles
cd spraycharles
poetry install

Créditos

  • @sprocket_ed por contribuir: varios módulos de pulverización, muchas de las características que hacen grande a spraycharles, y el artículo de blog asociado
  • @b17zr por el script ntlm_challenger.py, que se incluye en la carpeta utils
Descargar herramienta