viernes, 10 de febrero de 2012

El extraño caso del SSH y el ataque de fuerza bruta

Hace poco me pasó una anécdota curiosa que me gustaría compartir con vosotros. Intentaré narrarla de la forma mas fidedigna posible.

Suena el teléfono, es un cliente con el que tengo una de esas relaciones que van mas allá de lo profesional y 'hay confianza':

Cliente> Yago ! Me están atacando !

Yago> ¿? A ti o algún equipo tuyo ?

Cliente> Perdona, estoy un poco acelerado, he encontrado unos logs de lo mas extraños relacionados con intentos de acceso vía SSH

Yago> Si es un servidor de cara a internet, es lo más normal del mundo, deberías cambiar el puerto e instalar fail2ban

Cliente> No, no, es a un equipo con un Linux que uso para administrar máquinas que está tras un router ADSL

#Interesante

Yago> Bueno, mantén la calma, seguro que todo tiene una explicación, ¿podrías enviarme alguna traza del log?

Cliente> Claro, ya mismo

Me llega a mi correo lo siguiente:

Feb  1 22:25:34 localhost sshd[11740]: Failed password for root from 173.83.251.184 port 52597 ssh2
Feb  1 22:25:36 localhost sshd[11742]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=173.83.251.184  user=root
Feb  1 22:25:38 localhost sshd[11742]: Failed password for root from 173.83.251.184 port 53937 ssh2
Feb  1 22:25:41 localhost sshd[11744]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=173.83.251.184  user=root
Feb  1 22:25:43 localhost sshd[11744]: Failed password for root from 173.83.251.184 port 55240 ssh2

Y así, un buen número de líneas con diferentes IPs cuya procedencia geográfica variaba y era de lo más variopinta (turkia, china ...)

Claramente se trata de un ataque de fuerza bruta pero ¿Como podía estar ejecutándose?

Lo primero que me vino a la cabeza son dos hipótesis: O bien era alguien en la misma red (wifi, presumiblemente) o había un 'nat' que hacía visible el puerto.

Descarto el tema de la Wifi por las IPs, si hubiera sido por ahí serian 192.168.x.x

Vamos con el tema nat:

Yago> No tendrás mapeado el puerto 22 de tu router hacia dentro ¿no?

Cliente> No ! claro que no, ya había pensado en eso

Como dicen en Aragón: 'Aragonesico que no toca, no ve'

Yago> Bueno, ve a www.whatismyip.com y la IP que te dé me la envías que quiero hacer una prueba.

Ejecuto un nmap y nada, 0 puertos a la escucha.

El cliente me asegura que su máquina es un pc de sobremesa y por ende, 'no se ha movido', también me asegura solo se conecta vía cable y no tiene interface Wifi (eso descarta que se haya podido conectar a una red insegura de forma inadvertida ...)

Le tranquilizo y le pregunto si tiene activado el acceso vía ssh para el usuario root. Me confirma que no, no está. Le pregunto por la longitud y la complejidad de la contraseña y por lo que cuenta, parece difícil de romper. 

No obstante, le envío una serie de comandos grep para buscar si otros usuarios han sido atacados y si hubo un login positivo. No parece que haya habido compromiso en el sistema.

Dos días después vuelve a sonar el teléfono:

Cliente> Yago ! otra vez ! más intentos de acceso

Como esta persona no está excesivamente lejos decido desplazarme. Ya veré de que forma le hago entender el 'pedazo favor' que le estoy haciendo cuando toque hablar 'de otros proyectos'

Una vez in situ, reviso el router, efectivamente no tiene ningún puerto mapeado, vuelvo a leer los logs y veo que los patrones de acceso suelen ser por la noche.

Le cambio la IP a ese equipo por otra de la red interna y pongo otro PC con la IP anterior, en el que ejecuto un netcat a la escucha en el puerto 22

nc -l -p 22

Y me marcho.

A la mañana siguiente llamo y pregunto

Yago> ¿Que tal? hay alguna conexión en el netcat que dejé ayer ?

Cliente> No, está como lo dejaste, voy a ver en el otro PC

tras un rato ...

Cliente> Joder ! tengo más intentos de acceso !!

Yago> ¿Cooooooooomo? en el equipo donde cambié la IP ?

Cliente> Si ! ahí están

En este punto y ya con los esquemas totalmente por los suelos decido empezar a generar conversación intrascendente mientras intento que se me ocurra algo. Lo bueno de la informática es que siempre, SIEMPRE, las cosas tienen un motivo. No es como por ejemplo la medicina donde lo mismo un día te levantas con un misterioso dolor en la cadera y puedes pasar años escuchando 'no sabemos el motivo'

Después de haber hablado del tiempo, fútbol, política, etc ...

Yago> Se están poniendo feas las cosas con tanta SOPA/Sinde y demás ¿Eh?

Cliente> Si ! empieza a dar miedo navegar, yo estoy probando uno de esos servicios de VPN 'anonimizadores' cuando me pongo a bajar algo

¡Ding! Se me enciende la bombilla

Yago> Ehm, déjame hacer una prueba, conéctate a ese servicio de VPN

Cliente> ¿Ahora?

Yago> Si, dale

Cliente> Ok, ya está

Yago> Ve a www.whatismyip.com y me pegas la IP

Cliente> Toma xx.xx.xx.xx

telnet xx.xx.xx.xx 22

Connected to xx.xx.xx.xx.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.6

Misterio resuelto !

Resulta que esa persona, 'además de usar el equipo para administrar' también lo usaba para descargar cosas, accedía mediante la VPN y esta le daba una IP pública totalmente accesible sin las restricciones de su router ADSL

Lecciones aprendidas:

1- Desconfía de lo obvio, pese a que un escenario parezca claramente una cosa (pc de sobremesa, tras un router adsl, sin wifi) has de intentar despejar la mente y no caer en pensamientos del tipo ¡ Es imposible !, si hay un log que dice X, es X y es ahí donde hay que hacer 'foco'.

2- Fuera los remilgos. Probablemente si hubiera auditado el PC a fondo, revisado todos los logs y configuraciones, habría visto tanto las trazas de la conexión VPN, como los ficheros de configuración. En primera instancia me pareció demasiado intrusivo pedirle 'el root' y lanzarme a investigar y opté por no invadir su privacidad. Craso error
 
Fuente:http://www.securitybydefault.com/2012/02/el-extrano-caso-del-ssh-y-el-ataque-de.html

No hay comentarios:

Publicar un comentario