falsificar fingerprint en servidor SSH en ataque in the middle

Iniciado por Javincy, 21 Noviembre 2011, 16:37 PM

0 Miembros y 1 Visitante están viendo este tema.

Javincy

Buenas tardes,

Quisiera saber que tan fácil es falsificar el fingerprint de un servidor SSH.

Estoy auditando mi servidor ssh y me ha surgido la duda:

En el caso de que se realizase un ataque "in the middle". En cuanto se tantea el servidor aparece su fingerprint por pantalla.

¿Qué evita que el atacante lo copie y lo cambie por el suyo en "ssh_host_rsa_key.pub"?

La unica defensa de comprobar el fingerprint en primeras conexiones desapareciria.

Gurus a Mí!!

adastra

Supongo que te refieres a un mecanismo de autenticación por clave pública... veras, en un mecanismo de cifrado por clave publica, cualquier cliente puede conocer la clave publica de un servidor SSH, (es pública) pero para que esta tenga algun sentido, debe coincidir con la clave privada que se almacena en el servidor SSH, NO obstante, no significa que un servidor SSH no sea sensible a este tipo de ataques, de hecho puede conseguirse una situación de MITM con relativa "facilidad" por ejemplo, si se tiene acceso a la máquina donde se encuentra el servidor, es posible acceder al hash de la clave RSA y tratar de obtener dicha clave, por ejemplo:
http://thehackerway.com/2011/06/18/penetrando-sistemas-bajo-plataforma-gnulinux-vulnerable-con-metasploit-framework-%E2%80%93-parte-ii/

El mecanismo (hasta donde sé) más seguro es utilizar clave publica/privada. Si quieres auditar un servicio SSH, te recomiendo que utilices SSHMITM que es una herramienta incluida en DSNIFF.
Un Saludo.

Javincy

Ok, entiendo que la clave privada no puede decubrirse aunque el atacante disponga de la clave publica ya que no tiene el algoritmo, imagino que aleatorio, con el que se crean las dos claves...

Estoy valorando incluir tambien sistemas anti fuerza bruta como el programa sshguard, que modifica las iptables directamente ¿es aconsejable? ¿que experiencia teneis con programas del estilo de denyhosts?

Gracias adastra.

adastra

Me parece una buena opción, sin embargo he tenido mejores resultados con Fanban (utiliza el mismo mecanismo que sshguard cambiando dinamicamente las reglas del firewall usando iptables, pero me parece un poco más eficiente, a lo mejor han sido impresiones mías ya que no he hecho un análisis comparativo de ambos)  por otro lado, creo que también viene bien en muchos casos configurar un NIDS para que te alerte sobre cualquier eventualidad o intento de ataque en tu red, personalmente utilizo Snort para ello, (en Snort existen algunos preprocessors que te permiten saber cuando se realiza un ataque contra un servicio SSH) pero existen otras soluciones como Suricata que también son bastante buenas.