sshkey-grab
Este script explota un error en ssh-agent que permite obtener la última clave añadida al agente. Esto puede permitir recuperar una clave que ha sido eliminada de ssh-agent mediante ssh-add -t, -d o -D, siempre que el ssh-agent no haya sido terminado y no se haya añadido una nueva clave desde que la anterior fue eliminada. Este error ha sido reportado y podría ser corregido en versiones más recientes de OpenSSH, lo que haría que esta herramienta dejara de funcionar.
Requisitos
- grabagentmem.sh requiere acceso root y gdb en la máquina objetivo para funcionar correctamente.
- parse_mem.py requiere el módulo Python pyasn1 instalado.
Uso
- Copia grabagentmem.sh a la máquina objetivo.
- Ejecuta grabagentmem.sh en la máquina objetivo como root. Esto creará un volcado de memoria de la pila para cada proceso de ssh-agent que se esté ejecutando en este equipo. Se nombrarán como /tmp/SSHagent-$PID.stack por defecto.
- Copia los volcados de pila a la máquina que tenga instalado parse_mem.py.
- Ejecuta parse_mem.py [archivo de pila] [salida de clave] (Ejemplo: ./parse_mem.py /tmp/SSHagent-17019.stack /tmp/key)
- Prueba si el archivo de clave extraído funciona usando ssh -i [archivo de clave] [usuario]@[máquina]
Parte del código de creación de claves RSA proviene de Fancy SSH Key Generator de Thialfihar: https://github.com/thialfihar/semantic-ssh-key/blob/master/generate_fancy_ssh_key.py