web-dev-qa-db-fra.com

Crack Putty Private Key (PPK)

J'ai trouvé une clé privée qui semble être dans le format de clé privé de mastic.

La clé a l'en-tête suivant:

---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
Subject: <sensitive>
Comment: <sensitive>
P2/56wAAA/MAAAA3a...
...Yhp
---- END SSH2 ENCRYPTED PRIVATE KEY ----

Lorsqu'il est ouvert dans l'outil de Puty Keygen, il invite un mot de passe qu'il ne fait pas pour d'autres fichiers, donc je suppose qu'une sorte de validation est effectuée sur le fichier PPK. Le même comportement avec un fichier PPK que j'ai généré à l'aide de Puty Keygen.

J'ai essayé le [~ # ~ # ~] Phrasendrescher [~ # ~]] Outil permettant de deviner des mots de passe de clé privée, mais cet outil ne donne aucune sortie en cas de format de fichier invalide/inconnu. J'ai essayé de générer mon propre PPK avec un mot de passe faible et cela n'a pas craqué cette clé privée. Je suppose donc que l'outil ne comprend pas ce type de clé privée.

Puisque Puty Keygen n'a pas de CLI, il n'est pas possible de deviner le mot de passe automatiquement. Quelqu'un a-t-il un outil de craquage capable de deviner le mot de passe (la force brute et/ou la liste de mots) pour les fichiers PPK?

3
Silver

Basé sur le commentaire de Nbering, j'ai créé un script qui utilise PutTygen sur Kali:

apt install PuTTY-tools

Le script est très basique mais essaie tous les mots d'une liste de mots spécifiée comme premier argument. Si la phrase secrète correcte est trouvée, il invitera l'entrée de l'utilisateur, demandant à une nouvelle phrase secrète d'utiliser pour chiffrer la clé privée.

#!/bin/bash

echo "Wordlist: $1"
echo "PPK file: $2"
echo "New PPK file: $3"
while read -r line
do 
    echo $line > old_pass.txt
    error=$((puttygen $2 -P -o $3 --old-passphrase old_pass.txt ) 2>&1)

    if [[ ! $error = *"wrong passphrase"* ]]; then
        echo "Passphrase: $line $error"
    fi
done < $1

J'espère que cela est utile à quelqu'un. Comme toujours, utilisez uniquement avec l'approbation de la cible.

2
Silver