SSH-MITM es un servidor SSH man in the middle para auditorías de seguridad y análisis de malware.
Soporta la autenticación por contraseña y por clave pública y SSH-MITM es capaz de detectar, si un usuario es capaz de iniciar sesión con autenticación por clave pública en el servidor remoto. Esto permite que SSH-MITM acepte la misma clave que el servidor de destino. Si la autenticación de clave pública no es posible, la autenticación volverá a la autenticación por contraseña.
Cuando la autenticación de clave pública es posible, se necesita un agente reenviado para iniciar sesión en el servidor remoto. En el caso de que no se haya reenviado ningún agente, SSH-MITM puede redirigir la sesión a un honeypot.
Características
- autenticación con clave pública
- aceptar la misma clave que el servidor de destino
- secuestro y registro de sesiones de terminal
- almacenamiento y sustitución de archivos durante las transferencias de archivos SCP/SFTP
- redirección de puertos
- auditoría de clientes contra vulnerabilidades conocidas
- soporte de plugins
Instalación de SSH-MITM
SSH-MITM puede instalarse como Ubuntu Snap, PIP-Package o AppImage e incluso funciona en dispositivos Android.
A través de Snap:
#instalar ssh-mitm como paquete snap
sudo snap install ssh-mitm
A través de pip:
#instalar ssh-mitm como paquete pip de python
python -m pip install ssh-mitm
Instalar como AppImage:
wget https://github.com/ssh-mitm/ssh-mitm/releases/latest/download/ssh-mitm-x86_64.AppImage
chmod +x ssh-mitm*.AppImage
Inicio Rápido
Para iniciar SSH-MITM, todo lo que tienes que hacer es ejecutar este comando en tu terminal de elección.
ssh-mitm --remote-host 192.168.0.x:PORT
Ahora vamos a intentar conectarnos. SSH-MITM está escuchando en el puerto 10022.
ssh -p 10022 testuser@proxyserver
Verás las credenciales en la salida del registro.
INFO Remote authentication succeeded
Remote Address: 127.0.0.1:22
Username: testuser
Password: secret
Agent: no agent
Secuestro de Sesión
Obtener las credenciales en texto plano es sólo la mitad de la diversión. Cuando un cliente se conecta, el ssh-mitm inicia un nuevo servidor, que se utiliza para secuestrar la sesión.
INFO ℹ created mirrorshell on port 34463. connect with: ssh -p 34463 127.0.0.1
Para secuestrar la sesión, puedes usar tu cliente ssh favorito.
ssh -p 34463 127.0.0.1
Intenta ejecutar algunos comandos en la sesión secuestrada o en la sesión original.
La salida se mostrará en ambas sesiones.
Autenticación con Clave Pública
SSH-MITM es capaz de verificar si un usuario puede iniciar sesión con autenticación de clave pública en el servidor remoto. Si la autenticación de clave pública no es posible, SSH-MITM recurre a la autenticación por contraseña. Este paso no requiere un agente reenviado.
Para un inicio de sesión completo en el servidor remoto sigue siendo necesario el reenvío de agentes. Si no se reenvía ningún agente, SSH-MITM puede redirigir la conexión a un honeypot.
ssh-mitm --fallback-host username:password@hostname:port
ssh-mitm (este enlace se abre en una nueva ventana) por ssh-mitm (este enlace se abre en una nueva ventana)
SSH-MITM – ssh audits made simple