134 liens privés
Imprimer une clé vierge pour faire du crochetage (lock picking). Vu l'encombrement des imprimantes 3D actuelle, pas sûr que ça soit le plus pratique.
Quand on utilise ssh-keygen pour générer une clé, on laisse généralement la taille par défaut mais il est possible pour RSA de spécifier avec l'argument "-b" suivi de la taille.
| ========
| simon@ordi:~$ ssh-keygen -t rsa -b 8192
| ========
Un article intéressant pour bien comprendre le principe des clés privées/publiques appliqué à SSH.
JE N'AI PAS RÉUSSIS À RÉCUPÉRER UNE CLÉ AVEC CET OUTIL, VOIR PLUS BAS !
J'ai copié les scripts grabagentmem.sh et parse_mem.py depuis le dépôt Github. Je les ai placé dans le dossier ~/Programmes/sshkey-grab/.
| ==============
| simon@ordi:~/Programmes/sshkey-grab$ ls
| grabagentmem.sh parse_mem.py
| ==============
On rend les scripts exécutables :
| ==============
| simon@ordi:~/Programmes/sshkey-grab$ chmod +x *
| ==============
Et puis j'ai tenté de lancer le script grabagentmem.sh :
| ==============
| simon@ordi:/home/simon/Programmes/sshkey-grab$ sudo ./grabagentmem.sh
| Error dumping memory from 27322
| ==============
Ah, il manque un truc... En regardant le script, on voit qu'il utilise gdb (le débogueur de GNU : http://www.gnu.org/software/gdb/ ). On l'installe en vitesse et on réessaye. | ============== | simon@ordi:~$ sudo aptitude install gdb |
---|---|---|
simon@ordi:~/Programmes/sshkey-grab$ sudo ./grabagentmem.sh | ||
Created /tmp/sshagent-27322.stack | ||
============== |
C'est mieux. On peut maintenant lancer le deuxième script, parse_mem.py :
| ==============
| simon@ordi:~/Programmes/sshkey-grab$ sudo ./parse_mem.py
| Traceback (most recent call last):
| File "./parse_mem.py", line 5, in <module>
| from pyasn1.type import univ
| ImportError: No module named pyasn1.type
| ==============
Il manque le paquet python-pyasn1 , on l'installe :
| ==============
| simon@ordi:~$ sudo aptitude install python-pyasn1
| ==============
On réessaye de lancer le deuxième script :
| ==============
| simon@ordi:~/Programmes/sshkey-grab$ sudo ./parse_mem.py
| Traceback (most recent call last):
| File "./parse_mem.py", line 185, in <module>
| keystart.read(sys.argv[1])
| IndexError: list index out of range
| ==============
J'ai oublié de mettre les arguments pour lancer le script. Il faut rajouter le chemin vers le fichier .stack généré par le premier script ainsi qu'un autre chemin où enregistrer la clé privée générée par parse_mem.py :
| ==============
| simon@ordi:~/Programmes/sshkey-grab$ sudo ./parse_mem.py /tmp/sshagent-27322.stack /tmp/key
| A saved key was not found in /tmp/sshagent-27322.stack
| The user may not have loaded a key or the key loaded is not supported.
| ==============
Je n'ai pas de clé privée dans sshagent car je ne l'utilise pas. Mais ça semble fonctionner. Plus qu'à mettre une clé dedans et réessayer...
[EDIT : J'ai essayé en ajoutant une clé DSA et une clé RSA et ça ne fonctionne pas. Avec la clé RSA il crée un fichier mais la clé n'est pas bonne et il dit que ce type de clé n'est pas supporté :
| ==============
| simon@ordi:~/Programmes/sshkey-grab$ sudo ./parse_mem.py /tmp/sshagent-8445.stack /tmp/key
| Found rsa key
| Creating rsa key: /tmp/key.rsa
| rsa key type is not currently supported.
| ==============
Pour la clé DSA, l'erreur est un peu différente et il ne crée même pas de fichier :
| ==============
| simon@ordi:~/Programmes/sshkey-grab$ sudo ./parse_mem.py /tmp/sshagent-11265.stack /tmp/key
| Found dsa key
| DSA SSH Keys are not currently supported.
| Traceback (most recent call last):
| File "./parse_mem.py", line 186, in <module>
| keystart.getkeys(sys.argv[2])
| File "./parse_mem.py", line 68, in getkeys
| self.create_key(output)
| File "./parse_mem.py", line 95, in create_key
| self.create_dsa(output)
| File "./parse_mem.py", line 105, in create_dsa
| self.mem = self.mem[start+size:]
| NameError: global name 'start' is not defined
| ==============
Une erreur dans le script python ?
(via http://korben.info/recuperer-cles-ssh-en-memoire.html )