martes, 12 de mayo de 2009

Concurso de seguridad del cambRED_09

Los días 8, 9 y 10 de mayo se ha celebrado en el Pabellón Polideportivo de Cambre (A Coruña) el cambRED_09.
Como en todo evento de esta naturaleza, no ha faltado el concurso de seguridad. En esta edición el ganador del mismo ha sido una alumno de PSI, Jose Cribeiro. Querido alumno, te has ganado un punto extra en la asignatura.
Adjunto información remitida por Jose sobre el desarrollo del concurso.
-------------------------------------
Para el concurso de seguridad te daban la ip de una maquina que era la que tenías que atacar, y escalar privilegios en ella sabiendo que había un user que se llamaba cambred cuya contraseña te decían que era muy fácil. La contraseña era cambred.

Si te conectabas a la máquina por ssh al puerto 22 y tras escribir login y pass, entrabas en la máquina y nada más hacer un ls normal te dabas cuenta que algo no iba bien ya que en lugar de sacar un ls normal, sacaba un ls -l, si intentabas algún otro comando básico, como podía ser un cd para entrar en algún directorio te decía que no existía, así que rápidamente te dabas cuenta de que estabas en un honey.

Tras cerrar la conexión y hacer port discovery sobre la maquina con nmap te sacaba que había otro puerto abierto el 1010, así que como no había ningún otro puerto, y se sabía que tenías que tener acceso a la máquina y se sabía también que era por ssh, te conectabas a la máquina en el puerto 1010 por ssh y ya estabas realmente dentro. Una vez dentro podías descubrir fácilmente la existencia de 3 users además de root, cambred, cambred2, y cambred3.

Como en todos los niveles del juego tenías pista en forma de README.cambred al leer el del directorio de cambred te decían que al usr cambred le gustaban los irc al estilo de la vieja escuela, mientras seguía investigando y explorando el terreno en el que me encontraba decidí hacer un ls -R -lisa y viendo el resultado encontré un fichero de configuración de un cliente de irc, el irssi, entre muchas cosas en el fichero de configuración había una línea en la que se hablaba de un canal de irc y que el password del user cambred2 era una cadena cifrada, así que tras googlear un poco sabías que la cadena estaba cifrada con ROT-13, la descifrabas y ya tenías tu pass para cambred2.

Bien, una vez pasado el primer nivel, volvías a leer el README.cambred, de este user y te decía que las cosas no son lo que parecen y que a veces se escondían cosas tras cortinas de humo. Además del README.cambred había un ejecutable que te decía, "enséñame la patita por debajo de la puerta -dijo el cordero" y después te preguntaba por el password. Así que supuse que la contraseña se encontraba escrita en claro dentro del código fuente del ejecutable así que use strings para sacar las posibles cadenas de texto y casualmente una de ellas decía, "esta es la contraseña de cambred3"

Te conectabas como cambred3, y tenías otro README.cambred que te decía que tenías que aprovechar los errores de los programadores, y existía también un ejecutable que se llamaba rootls, que como su nombre indica hacía ls sobre un directorio con permisos de root, así que podías hacer: ./rootls /root/, y ver lo que había y veías que había otro README.cambred así que mi objetivo principal ahora mismo era leer el README.cambred del directorio /root/, investigando un poco y haciendo gdb sobre rootls desensamblándolo, pasándole también strings descubrí otra pista que decía que 640 bytes deberían bastar, y además descubrí que se hacía una llamada directamente a /bin/ls, así que decidí enfocar el ataque buscando un buffer overflow, con una cadena de 640bytes, y poniéndole al final un /bin/cat y descubrí que ejecutaba el cat pero que no era capaz de hacer que funcionase correctamente con los parámetros que le pasaba en el buffer anterior así que al final hice un programa que leía el fichero /root/README.cambred y ejecute el ./rootls "aquivaunacadenade640caracteres"/home/cambred3/"miejecutable" y listo ya había leído el fichero, que me decía que fuese corriendo a junto del los de la organización a decirles la frase: "En Sevilla la Lluvia es una maravilla"