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
37 comments :
Me ha encantado el artículo Yago, y el tema de usar una VPN que llega a una red no filtrada es una de las lecciones que hay que aprender. Me ha gustado eso de "aragonesito que no toca, no ve" }XD Aps, y tu viaje al mundo teenager con Turkia.
+1
Yago Russinovich
Buen post!
Saludos!
grande yago!
y cuál es ese servicio vpn que te deja en pompas para toda la internet?
Yo añadiria una tercera leccion:
3- Asumir que el usuario siempre te miente. Bien sea con toda la intencion de hacerlo o simplemente por mero desconocimiento.
jaja tienes razón, pero confío que se trate de spanglish, de lo contrario me lo haré mirar !
Gracias !
Hablamos de 'ipredator' o 'ItsHidden', servicios VPN por pptp que al conectar te dan una IP pública
Si el peligro claramente está en las omisiones
Perdonad, pero no acabo de entender lo que pasa... quien estaba intentando acceder al root? la compañia de VPN por pptp... u otra persona?? Por lo demas, el articulo esta muy bien!
Genial, genial! :) Las lecciones aprendidas, comprendidas. Yo soy más del '
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'' :) El mundo teen es más entretenido que en spanglish!
Te explico. El cliente tiene un ADSL de telefónica y su PC, por tanto, una IP del estilo 192.168.0.190 que sale a internet vía NAT por el router. Así nadie puede acceder al puerto 22.
Pero, cuando se conecta por VPN (VPN pptp) el servidor VPN le asigna una IP pública que es con la que navega en internet, entonces si alguien se conecta a esa IP que le ha dado el servidor VPN llega al PC
Por si os interesa esta informacion de fuga de datoos:
http://pastebin.com/m6d8ySst
Excelente historia. Ahi es cuando debes tener la famosa espada del augurio para ver mas alla de lo evidente.
Que buen post, es encarretador entender un tema por medio de un caso real narrado. Gracias por compartir
estoy vago vago pero con proxpn tambien ocurre esto yago?
\GeMiNiS\
Ok. Hasta aqui todo entendido. Pero siempre tiene la misma IP privada, ¿no? La que le da el router. Es la IP publica la que cambia, bien al tener activo el VPN o al no tenerlo activo. Pero sabiendo la IP publica y que el pc tenia activo el puerto 22 (que se lo abrio usted con el netcat) da igual que IP utilices par acceder al pc ¿no?
Luego otra cosa que no entiendo es cuando dice "accedía mediante la VPN y esta le daba una IP pública totalmente accesible sin las restricciones de su router ADSL". ¿Que restrricciones pone un router ADSL? Seguro que la pregunta es muy obvia, pero lo unico que se me ocurre es que fuera un router Cisco de esos con FireWall de serie...
Muchas gracias por sus respuestas Yago.
Brillante. Seguro que todos tenemos historias "inexplicables".
Te metes tanto adentro, sin encontrar nada, hasta que das el paso atrás y "te das de narices" con el problema.
Ostra! ¿entonces no es una buena opción contratar una VPN ??
Quería contratar una con SSH 6€ (creo) al mes para usar las wifi publicas y dar de baja mi adsl, que con el panorama económico actual no me llega a fin de mes. Tampoco es seguro un tunel VPN SSH? Ahora si tengo mas dudas, ¿sera mejor un usb de datos para el portatil? (de esos que venden ahora las compañias telefonicas).
Agradecería mucho tu respuesta ya que tengo serias dudas.
Saludos!
A ver, lo que tienes que comprender es que hay dos entornos, uno real, que es la oficina de esta persona, con un router ADSL de Telefónica donde su PC tiene una IP privada. En ese escenario nadie puede acceder vía SSH.
Luego, cuando usa la VPN, lo que hace es conectarse a un servidor que le da OTRA IP pública con la que navega en Internet y esa si es accesible puesto que no tiene delante router ni nada.
Si no consigo explicarme, creo que tal vez deberías buscar información sobre que es y como funciona una VPN porque creo que mas no se simplificar el concepto :(
No sabría especificar, no lo conozco
Todo depende del tipo de VPN que uses, aquellas basadas en pptp u OpenVPN, probablemente te dén una IP pública. No obstante eso no tiene porque ser malo, simplemente lo has de tener en cuenta
Sí, sí entiendo como funciona un VPN, de echo, configure un con el asistente de Windows en mi trabajo. Lo que no logro entender por que con la ip publica que te da la VPN acceden directamente al pc y con la ip publica tambien de Telefonica, no acceden.
La diferencia está en que en el entorno real y estándar la IP públca la tiene el router, el cual al no tener ningún tipo de NAt no pasa conexiones hacia la red PRIVADA.
Sin embargo, el cliente VPN instalado en un PC de la red PRIVADA le da la IP PÚBLICA directamente al PC (no al router). Es como cuando usas un modem USB ADSL.
Si el usuario tuviese un firewall SW en local podría haber cortado las conexiones entrantes (ya que al parecer no las necesitaba).
Saludos.
Ok, ahora si lo entiendo. Eso era lo que no entendia que la VPN le daba la IP publica directamente al PC. Gracias Yago y gracias Sac tmb.
Hola Yago, estaba pensando en la SwissVPN pero la opción nueva:
"SSL VPN (SSTP)" o la Comodo "TrustConnect Wi-Fi Security", ¿cual es tu opinión al respecto? ¿que me aconsejas?
Saludos!
brother bravasooo gran artículo man Yago espero poder seguir leyendo tus experiencias y gracias por contestar las preguntas de los demás brothers
Yago, increíble el artículo. Me ha gustado mucho!!
En principio, los ataques entonces, no provenían de la "compañía/servicio" de VPN, ¿o sí?
Uff Estupendo.!! Pero te recomiendo que compres una VPN que andan por internet ya que las VPN gratuitas no son casi seguras. A mi me andan de mil maravillas y puedo estar "anonimizado" todo el dia :D
De la forma que lo explicas significa que un PC de la red privada NO conectado directamente a Internet puede tener una IP pública y, además, conexión a Internet. Eso es imposible.
Si el router ADSL es el que le da conexión a Internet, forzosamente los paquetes IP del PC deben ser enrutados al router para llegar al servidor VPN.
De la única forma que podría llevarse a cabo lo que comentas es si el PC, para conectarse al servidor VPN, utilizase otro dispositivo (módem, móvil, etc) para acceder a Internet y no el router ADSL.
>----------------------------------------------
Te
explico. El cliente tiene un ADSL de telefónica y su PC, por tanto, una
IP del estilo 192.168.0.190 que sale a internet vía NAT por el router.
Así nadie puede acceder al puerto 22.
Pero, cuando se conecta por VPN (VPN pptp) el servidor VPN le asigna
una IP pública que es con la que navega en internet, entonces si alguien
se conecta a esa IP que le ha dado el servidor VPN llega al PC
>-----------------------------------------------
Eso es imposible. ¿Cuantas IPs públicas necesitaría un servicio VPN para poder asignarlas a cada cliente? ¿Para qué serviría entonces la conexión por VPN?
Si la conexión a Internet sólo la tiene el router ADSL ¿cómo va a acceder el PC a Internet (en este caso, además, mediante un tunel PPTP) sin pasar por el router?
Eso es perfectamente posible y real.
Si eres incapaz de aceptar esta realidad, abre una cuenta en un servidor VPN, sigue los pasos del post y vuelves a confirmar lo que te digo.
Saludos
Es perfectamente posible, contrata una VPN en algún servicio, reproduce los pasos del post y vuelve para confirmar que si es posible
Vuelvo a insistir. Técnicamente eso es imposible. Ahora bien... nunca nos acordamos de IPv6. Existe un fallo de seguridad en PPTP teniendo IPv6 activado.
Muy posiblemente ese equipo debe tener IPv6 activado.
Los problemas deben ir en esa dirección.
Con toda la educación del mundo te digo que por favor, no pongas en duda un hecho que he comprobado empíricamente.
Que tu raciocinio no te permita verlo lo puedo entender, pero no generes axiomas en base al desconocimiento.
Te digo lo mismo que antes, ve a, por decir una, https://ipredator.se abre una cuenta, desde tu PC tras un router, configura la conexión pptp. Ve a whatismyip.com y verás que tienes una IP pública.
Luego de eso, abre un puerto cualquiera con netcat y pide a alguien desde fuera que se conecte. Verás que llega sin problema.
En serio, no es una especulación, es algo que he comprobado empíricamente.
exclente
Siento rescatar un asunto de hace dos años, pero leyendo algunos comentarios pienso que si no hubiera sido más fácil primero leer y entender qué es una VPN, que parece que algunos no lo saben, y luego ya entonces ponerse a discutirle a un experto en seguridad sobre lo que es posible o no es posible.
Y de paso aprovecho el comentario para felicitaros por el blog y daros profundamente las gracias porque estáis ayudando a muchísima gente, en la que me incluyo, a iniciarse en temas de seguridad con artículos de muy alta calidad técnica (de esos que nos gustan a los ingenieros xD) Gracias y un saludo.
Publicar un comentario