Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/skyscanner/whispers
Analyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeAudit de ConfigurationDevSecOpsDétection de SecretsSécurité de la Chaîne LogistiqueArchived
GitHubskyscanner/whispers

whispers

Identifier les secrets codés en dur dans un texte structuré statique

Voir le dépôt
506705il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Whispers Whispers

« Mes petits oiseaux sont partout, même dans le Nord, ils me murmurent les histoires les plus étranges. » – Lord Varys

Whispers est un outil d'analyse statique de code conçu pour analyser divers formats de données courants à la recherche d'informations d'identification codées en dur et de fonctions dangereuses. Whispers peut être exécuté en CLI ou intégré dans votre pipeline CI/CD.

Détecte

  • Mots de passe
  • Jetons API
  • Clés AWS
  • Clés privées
  • Identifiants hachés
  • Jetons d'authentification
  • Fonctions dangereuses
  • Fichiers sensibles

Formats pris en charge

Whispers est conçu pour être un analyseur de texte structuré, pas un analyseur de code.

Les formats couramment utilisés suivants sont actuellement pris en charge :

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

Les fichiers Python3 sont analysés en tant qu'AST en raison du support natif du langage.

Formats de déclaration et d'affectation

Les fichiers de langage suivants sont analysés en tant que texte et vérifiés pour les motifs courants de déclaration et d'affectation de variables :

  • JavaScript
  • Java
  • Go
  • PHP

Formats spéciaux

  • Fichiers d'informations d'identification AWS
  • Chaînes de connexion JDBC
  • Fichiers de configuration Jenkins
  • Fichiers de configuration SpringFramework Beans
  • Fichiers de propriétés Java
  • Fichiers d'authentification de registre privé Dockercfg
  • Jetons Github

Installation

Depuis PyPI

root@kitploit:~
pip3 install whispers

Depuis GitHub

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

Utilisation

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)

Configuration

Plusieurs options de configuration sont disponibles dans Whispers. Il est possible d'inclure/exclure des résultats en fonction du chemin du fichier, de la clé ou de la valeur. Les chemins de fichiers sont interprétés comme des globs. Les clés et les valeurs acceptent les expressions régulières et plusieurs autres paramètres. Un fichier de configuration par défaut intégré sera utilisé si vous n'en fournissez pas un personnalisé.

config.yml doit avoir la structure suivante :

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

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

rules:
  starks:
    message: Murmures du Nord
    severity: CRITICAL
    value:
      regex: (Aria|Ned) Stark
      ignorecase: True

Le moyen le plus rapide d'ajuster la détection (c'est-à-dire supprimer les faux positifs et les résultats indésirables) est de copier le fichier config.yml par défaut dans un nouveau fichier, de l'adapter, et de le passer comme argument à Whispers.

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

Règles personnalisées

Les règles spécifient les éléments réels à extraire des paires clé-valeur. Plusieurs règles courantes sont intégrées, comme les clés AWS et les mots de passe, mais l'outil est conçu pour être facilement extensible avec de nouvelles règles.

  • Les règles personnalisées peuvent être définies dans le fichier de configuration principal sous rules:
  • Les règles personnalisées peuvent être ajoutées à whispers/rules
root@kitploit:~
rule-id:  # nom de règle unique
  description: Valeurs formatées comme un jeton de session AWS
  message: Jeton de session AWS  # le rapport affichera ce message
  severity: BLOCKER           # l'un de BLOCKER, CRITICAL, MAJOR, MINOR, INFO

  key:        # spécifier le format de la clé
    regex: (aws.?session.?token)?
    ignorecase: True   # correspondance insensible à la casse

  value:      # spécifier le format de la valeur
    regex: ^(?=.*[a-z])(?=.*[A-Z])[A-Za-z0-9\+\/]{270,450}$
    ignorecase: False  # correspondance sensible à la casse
    minlen: 270        # la valeur fait au moins cette longueur
    isBase64: True     # la valeur est codée en base64
    isAscii: False     # la valeur est des données binaires une fois décodée
    isUri: False       # la valeur n'est pas formatée comme une URI

  similar: 0.35        # similarité maximale autorisée entre clé et valeur
                       # (1.0 étant exactement identique)

Plugins

Toutes les fonctionnalités d'analyse sont implémentées via des plugins. Chaque plugin implémente une classe avec la méthode pairs() qui parcourt les fichiers et retourne les paires clé-valeur à vérifier avec les règles.

root@kitploit:~
class PluginName:
    def pairs(self, file):
        yield "key", "value"
Télécharger l’outil