lunes, 23 de septiembre de 2013

Writeup Network 100. CTF Mugar2 2013



Network 100

La prueba Network100 consistía en encontrar la clave para puntuar entre un montón de ruido en un archivo de captura .pcap

Para generar el archivo se usaron unas cuantas VM's con Windows XP, 7, linux, y alguna cosa más, conectándose a webs y servicios varios, y para ponerle un poco de emoción, tanto el router como el servidor emulaban unas condiciones de red horribles que hacían aparecer todo tipo de errores, retransmisiones y demás en la captura (al fin y al cabo era una comunicación entre distintas naves ¿no? pues seguramente por ahí arriba hay mucho ruido ;) )

Por si alguien tiene curiosidad sobre esta parte, se usó tc netem, con un comando tal que


tc qdisc change dev eth0 root netem delay 100ms 600ms distribution normal loss 10% duplicate 5% corrupt 5%

El caso es que en estos casos en los que la captura tiene mucho ruido, lo mejor es descartar la información no util, y para eso y con ayuda del wireshark, podemos ir filtrando las cosas que no nos interesan, por ejemplo
Muchos pings.. pero tienen algo interesante? seguramente no, fuera
Filtro: !icmp
lo mismo con los de ipv6
Filtro: !icmp && !icmpv6
En cuanto a https, que hay bastante, vamos a asumir que no podemos descifrarlo (ni ninguna comunicacion cifrada en principio), así que lo quitamos también, todo https (443) tanto preguntas como respuestas
Filtro: !icmp && !icmpv6 && !tcp.dstport == 443 && !tcp.srcport == 443 
¿Retransmisiones y duplicados? fuera también
Filtro: !icmp && !icmpv6 && !tcp.dstport == 443 && !tcp.srcport == 443 && !tcp.analysis.retransmission && ! tcp.analysis.duplicate_ack  
Y así vamos separando la "paja" para ver.. unas cuantas conversaciones HTTP :) y una conexión bastante rara en un puerto bastante raro
Toda esta parte es opcional, pero es para no tener que ver paquetes en la captura que no nos aportan nada
--
Ahora a la miga del asunto
Para ver si podemos sacar algo de estas conversaciones HTTP lo más fácil en el wireshark es ir a File -> Export Objects -> HTTP
Hay dos ficheros muy interesantes que provienen de un servidor web en 10.2.1.201 y que son descargados una y otra vez por distintas IPs
Uno es el index de esa web que es...
<html><body><h1>Breaking!</h1>
<p>Alien news.</p>
<p>Invasion to Mugar2 currently going on.</p>
<p>Every other comm is blocked until we ki... capt.. make a deal with the humans<p>
<p> A todas las naves satelite, la clave para el primer paso de la estacion esta en el archivo key.zip<p>
<p> La contraseña es la habitual, si alguno olvida la clave puede utilizar el metodo de recuperacion en el servicio 9999 <p>
</body></html>
Y el otro el key.zip, que obviamente está protegido por contraseña :)
# unzip key.zip Archive: key.zip [key.zip] key.txt password:
Afortunadamente parece que alguien se había olvidado la contraseña y utilizó ese servicio que menciona el index en 9999
Buscamos en el wireshark con este filtro
Filtro: tcp.dstport==9999
Seguimos la conversación con Analyze-> Follow TCP Stream y.. tachán :D
clave? la clave es blackhole
y ahora podemos..
# unzip key.zip Archive: key.zip [key.zip] key.txt password: inflating: key.txt
y..
# cat key.txt La clave es: th3_d4y_th3_r0ut3rs_d13d
Y 100 puntos más :)





No hay comentarios:

Publicar un comentario