sábado, 17 de septiembre de 2011

Writeup level0 del wargame de la NoCon Name 2011

Pasado el wargame de la NoCon Name 2011, publico los writeups que escribí para los mismo y que me sirvieron para acabar segundo a 20 puntos de mit. Se que las imagenes se ven fatalmente ahora mismo, pero creo que les interesará más leer las soluciones que verlo bonito. Empezamos.

Lo primero que nos ocurre es que no podemos conectar por SSH. En las propias bases parece dar una pista: "Analiza bien las comunicaciones. Analiza bien los paquetes enviados y recibidos. Por favor, no ignores ESTE mensaje, sólo lo que sea necesario". Si hacemos caso de lo que dice y analizamos el tráfico entre las máquinas a la hora de realizar una conexión SSH:




Vemos que durante el 3-way handshake para el establecimiento de la conexión, la máquina virtual envía dos paquetes uno con flags TCP RST y ACK antes de otro con el segundo paso del 3-way handshake (SYN, ACK), con lo cuál se resetea la conexión y el cliente ssh nos dice "connection refused". No nos hemos parado a plantearnos de dónde viene esto, pero nos hace pensar que se trata de algún truquillo que han puesto en la máquina virtual para que no sea tan sencillo conectarse. Como bien nos decía la pista, vamos a ignorar sólo lo que sea necesario, así que en nuestra máquina hacemos:

$ sudo iptables -A INPUT -i vmnet8 -p tcp --sport 22 --tcp-flags RST,ACK RST,ACK -j DROP

Estamos metiendo una regla en el cortafuegos para que todos los paquetes provenientes de la interfaz vmnet8 (la que conecta nuestra máquina real con la virtual) puerto 22 (el de SSH) y que tenga los flags TCP RST y ACK activos los ignore. Con esto ese paquete maligno será ignorado, luego vendrá el de SYN,ACK y nuetra máquina en vez de con un RST responderá con el ACK del último paquete del 3-way handshake.

Puedes bajarte el pdf aquí.

No hay comentarios:

Publicar un comentario