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
whispers — Identificar secretos codificados en texto estructurado estático | Kitploit
Herramientas/GitHubGitHub/skyscanner/whispers
Análisis EstáticoAnálisis de VulnerabilidadesAnálisis de CódigoAuditoría de ConfiguraciónDevSecOpsDetección de SecretosSeguridad de Cadena de SuministroArchived
GitHubskyscanner/whispers

whispers

Identificar secretos codificados en texto estructurado estático

Ver Repositorio
506705hace 2 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

Whispers Whispers

"Mis pajaritos están en todas partes, incluso en el Norte, me susurran las historias más extrañas." - Lord Varys

Whispers es una herramienta de análisis estático de código diseñada para analizar varios formatos de datos comunes en busca de credenciales codificadas y funciones peligrosas. Whispers puede ejecutarse en la línea de comandos o puedes integrarlo en tu pipeline de CI/CD.

Detecta

Descargar herramienta
  • Contraseñas
  • Tokens de API
  • Claves de AWS
  • Claves privadas
  • Credenciales con hash
  • Tokens de autenticación
  • Funciones peligrosas
  • Archivos sensibles

Formatos compatibles

Whispers está pensado para ser un analizador de texto estructurado, no un analizador de código.

Actualmente se admiten los siguientes formatos de uso común:

  • YAML
  • JSON
  • XML
  • .npmrc
  • .pypirc
  • .htpasswd
  • .properties
  • pip.conf
  • conf / ini
  • Dockerfile
  • Dockercfg
  • Scripts de Shell
  • Python3

Los archivos Python3 se analizan como AST debido al soporte nativo del lenguaje.

Formatos de declaración y asignación

Los siguientes archivos de lenguaje se analizan como texto y se verifican patrones comunes de declaración y asignación de variables:

  • JavaScript
  • Java
  • Go
  • PHP

Formatos especiales

  • Archivos de credenciales de AWS
  • Cadenas de conexión JDBC
  • Archivos de configuración de Jenkins
  • Archivos de configuración de Beans de SpringFramework
  • Archivos de propiedades de Java
  • Archivos de autenticación de registro privado de Dockercfg
  • Tokens de Github

Instalación

Desde PyPI

root@kitploit:~
pip3 install whispers

Desde GitHub

root@kitploit:~
git clone https://github.com/Skyscanner/whispers
cd whispers
make install

Uso

CLI

root@kitploit:~
whispers --help
whispers --info
whispers source/code/fileOrDir
whispers --config config.yml source/code/fileOrDir
whispers --output /tmp/secrets.yml source/code/fileOrDir
whispers --rules aws-id,aws-secret source/code/fileOrDir
whispers --severity BLOCKER,CRITICAL source/code/fileOrDir
whispers --exitcode 7 source/code/fileOrDir

Python

root@kitploit:~
from whispers.cli import parse_args
from whispers.core import run

src = "tests/fixtures"
configfile = "whispers/config.yml"
args = parse_args(["-c", configfile, src])
for secret in run(args):
  print(secret)

Configuración

Hay varias opciones de configuración disponibles en Whispers. Es posible incluir/excluir resultados según la ruta del archivo, la clave o el valor. Las especificaciones de ruta de archivo se interpretan como globs. Las claves y valores aceptan expresiones regulares y varios otros parámetros. Hay un archivo de configuración predeterminado incorporado que se usará si no proporcionas uno personalizado.

config.yml debe tener la siguiente estructura:

root@kitploit:~
include:
  files:
    - "**/*.yml"

exclude:
  files:
    - "**/test/**/*"
    - "**/tests/**/*"
  keys:
    - ^foo
  values:
    - bar$

rules:
  starks:
    message: Susurros del Norte
    severity: CRITICAL
    value:
      regex: (Aria|Ned) Stark
      ignorecase: True

La forma más rápida de ajustar la detección (es decir, eliminar falsos positivos y resultados no deseados) es copiar el config.yml predeterminado en un nuevo archivo, adaptarlo y pasarlo como argumento a Whispers.

whispers --config config.yml --rules starks src/file/or/dir

Reglas personalizadas

Las reglas especifican las cosas reales que se deben extraer de los pares clave-valor. Hay varias reglas comunes integradas, como claves y contraseñas de AWS, pero la herramienta está diseñada para expandirse fácilmente con nuevas reglas.

  • Las reglas personalizadas se pueden definir en el archivo de configuración principal bajo rules:
  • Las reglas personalizadas se pueden agregar a whispers/rules
root@kitploit:~
rule-id:  # nombre único de la regla
  description: Valores formateados como tokens de sesión de AWS
  message: Token de sesión de AWS  # el informe mostrará este mensaje
  severity: BLOCKER           # uno de BLOCKER, CRITICAL, MAJOR, MINOR, INFO

  key:        # especificar formato de clave
    regex: (aws.?session.?token)?
    ignorecase: True   # coincidencia sin distinción de mayúsculas/minúsculas

  value:      # especificar formato de valor
    regex: ^(?=.*[a-z])(?=.*[A-Z])[A-Za-z0-9\+\/]{270,450}$
    ignorecase: False  # coincidencia con distinción de mayúsculas/minúsculas
    minlen: 270        # el valor tiene al menos esta longitud
    isBase64: True     # el valor está codificado en base64
    isAscii: False     # el valor son datos binarios al decodificar
    isUri: False       # el valor no tiene formato de URI

  similar: 0.35        # similitud máxima permitida entre clave y valor 
                       # (1.0 siendo exactamente iguales)

Plugins

Toda la funcionalidad de análisis se implementa mediante plugins. Cada plugin implementa una clase con el método pairs() que recorre los archivos y devuelve los pares clave-valor que se verificarán con las reglas.

root@kitploit:~
class NombreDelPlugin:
    def pairs(self, file):
        yield "key", "value"