Solucionario del Reto: HackLab OWASP Hackademic, nivel básico #CTF #Web por kagure zama

Solucionario propuesto por kagure zama al reto HackLab OWASP Hackademic, quien se convierte en el ganador del desafío OWASP Hackademic #CTF #Web. Asimismo se convierte en el ganador del libro Seguridad y Redes de @MatiasKatz.

Como siempre animar y recordar a los recién iniciados y expertos a participar de estos desafíos, pues no hay mejor manera de aprender que enseñando…

Solucionario:

Lo primero creación de máquina virtual para arrancar el live cd yo he utilizado virtual box para tal fin.  Abrimos Virtual box y damos click en Nueva, luego se abrirá un asistente que nos guiará durante el proceso de creación de la máquina.
Aquí asignaremos el nombre y el sistema operativo de la máquina en este caso es Linux y  aunque no se en cual está basado elijo Other Linux. Next

En memoria elijo la que él me sugiere ya que si el ISO pesa 46 megas no creo que el Linux que está corriendo sea muy exigente. Next

Aquí elegí no crear disco duro para la maquina ya que en la descripción del reto decía que era live cd y pues no era necesario. Crear

Nos dara una alerta acerca de que no estamos creándole un disco daremos Click en continuar

Lo siguiente será configurar el hardware y desde donde queremos que arranque la máquina virtual y asignarle que tipo de red queremos que tenga Nat, Red en Puente O red interna. Las siguientes capturan Son la configuración que yo he elegido. Pero cada uno puede varias algunas cosas de acuerdo a su conveniencia.

Así queda finalmente la configuración YA solo queda dar click en Iniciar en el menú de virtual box

Máquina virtual iniciando

Ya con la maquina corriendo solo queda identificar que ip le fue asignada a la maquina yo como estoy sobre el rango 192.168.0.1 elijo lo siguiente con el scanner que tengo a mano en este caso es el Advance Ip Scanner pero vale cualquiera. Aquí tenemos el resultado 4 host en el mismo segmento de red solo tres levantados el 101 es mi maquina el 102 la virtual en este caso nuestro objetivo y la otra es la puerta de enlace o router.

En el navegador ingreso la ip 192.168.0.102 y obtengo lo siguiente

Doy click de nuevo en la imagen y me lleva a la descripción de los desafíos

Desafío 002
Tu país necesita de tu ayuda para encontrar la contraseña de acceso a un sitio web enemigo que contiene información útil, si no es encontrada a tiempo, la paz de la región estará en riesgo.
Debes tener éxito en la búsqueda de la contraseña de este sitio web militar (Sitio Web Militar).
Buena suerte!
El pantallazo inicial del reto nos muestra una caja de texto donde debemos ingresar nuestra clave para poder pasar el reto habitualmente lo que se debe hacer es revisar el código fuente de este tipo de retos y ayudarnos de herramientas como firebug o en chrome con la herramienta consola de javascript. Ya que estas nos permite poner paradas o breakpoint en el código para evaluar, comparar y asi llevar al proceso que llaman debugear.

Luego miro el código fuente y veo el siguiente scritp que es el que contiene el algoritmo que codifica la contraseña.

Aquí sabiendo quien es el que genera la clave paso a debugearla con el firebug sobre la web oprimo f12 y aparece firebug doy click en script y luego en regargar voy hasta el final del código y allis pongo una parada o breakpoint en la línea 95 para comparar lo que yo ingre en la caja de texto con la respuesta verdadera,(Tener en cuenta para nunca dejar la seguridad del lado del cliente).

Aquí solo escribo una letra o frase lo que quiera en la caja de texto y doy enter y me aparece la respuesta al lado derecho en este caso es antievolutionary pruebo y siiiii! Esa es.

Desafío 003
Los ataques XSS permiten que un usuario malicioso inyecte su propio código en páginas Web Vulnerables. Según el TOP 10 de OWASP de Seguridad en Aplicaciones Web, los ataques de XSS clasifican como el segundo más peligroso de la lista.
Su objetivo es hacer un “Alert Box” con el mensaje “XSS” en la siguiente página Web:
Sitio Web,”XSS me”.

Ya con la descripción uno sabe qué hacer, en caso de no saber tiene un punto de partida para buscar algún artículo relacionado con ataques XSS. En este caso es realmente fácil porque es el clásico XSS <script>alert(“XSS”);</script> pongo este script en el la caja de texto de la página y me aparase el alert con el mensaje que me piden en el reto.

Doy click en aceptar y me redirige a un nuevo mensaje.

Desafio 004
Un Hacker nos informó que el siguiente sitio web tiene una vulnerabilidad del tipo XSS.
(Sitio Web XSS) Lamentablemente, perdió las anotaciones que había tomado de cómo podía explotar dicha vulnerabilidad.
Su objetivo es hacer que aparezca un cuadro de alerta con el mensaje “XSS”. Cabe señalar además, que este sitio tiene un mecanismo de protección frente a este tipo de ataques.
Ingresando al reto como es acostumbrado.

Aquí tuve que leer un buen rato y sobre todo probar, probar y probar adjunto el link que leí y donde encontré la respuesta jejeje http://thehackerway.com/2011/05/23/explotandovulnerabilidades-xss-en-aplicaciones-web/ la solución que me sirvió fue la 14 del artículo lógicamente adaptada a mi necesidad o más bien a la del reto aquí pidenel alert debe decir XSS quedando el script <script>alert(String.fromCharCode(88,83,83))</script> también me sirvió este link http://ascii.cl/es/ para sacar el código ASCII de XSS.

Desafío 005
Es necesario que acceda al contenido del siguiente Sitio Web. Para lograrlo, usted debe comprar el navegador web “H4x0rBr0ws3r”. Ya que éste es demasiado costoso, usted tendrá que “engañar;” al sistema de alguna manera, para que éste le permita visualizar el contenido del sitio.
Para este reto he instalado la extensión o complemento llamado Tamper Data en Firefox pero para casos prácticos se puede hacer con netcat, User Agent Switcher o algún proxy como burp proxy.

Aquí nos están dando el user agent H4x0rBr0ws3r necesario para que nos muestre lo que queremos y pasar la prueba. Abro el tamper data y doy click en comenzar modificación

Luego en oprimo f5 para recargar la web y obtengo lo siguiente hay solo doy click en Modificar para cambiar el user agent

Luego cambio el user agent por defecto en este caso es el de Mozilla Firefox , quedando como muestra la imagen y generándome la recompensa .

Desafío 006
En esta misión usted debe probar sus habilidades de Caballero. los Caballeros no han desaparecido.
Aún existen, ocultando sus secretos. Su misión es infiltrarse en el siguiente Sitio Web. Obviamente hay un pequeño problema. No sabemos la contraseña. Podrías encontrarla?
Buena suerte!

Como de costumbre ingreso al reto y me encuentro con el siguiente mensaje y una caja  de texto a la espera que introduzca la respuesta, creí que iba a tener un poco de suerte pero no me da el siguiente mensaje donde me confirma que mi código no es correcto.

Decido ver el código fuente de la web que en Firefox CTRL + U y veo un caos completo

LA clave aquí está en <script language=”JavaScript”> document.write(unescape hago una búsqueda en google acerca de esto y entro en la siguiente web que tiene una muy interesante herramienta que nos devolverá el código html en claro.

Ya con el código html y java script en claro busco el script que valida el CODE y me encuentro con lo siguiente.(No pongo todo el código ya que es bastante alarga mucho el texto sin ser necesario)

A grandes rasgos este codigo es que validad lo que uno ingresa en la caja de texto del reto aqui vemos que si se ingresa la palabra easyyyyyyy! Habremos pasado el reto de lo contrario dara el mensaje Wrong Code…!! Habiendo pasado el reto. No sin antes haberme sorprendido por que no aparecia nada asi que seleccione todo y apareció el mensaje ufff.

Desafío 007
Tengo un buen amigo que estudia en la Universidad ACME, en la facultad de Informática y Telecomunicaciones. Por desgracia, sus notas no son tan buenas. Se lo que estas pensando “Gran noticia”… Hummm, tal vez no. Lo que si es una gran noticia, es la siguiente: El administrador de la red le solicitó 3000USD por cambiarle las malas calificaciones.
Esto obviamente es un caso de abuso de autoridad administrativa y fraude. Por lo tanto…  Es un una buena oportunidad para desenmascararlo y exponerlo de manera pública… Tengo que ingresar al sitio Web como administrador y cargar un archivo index.html en el directorio raíz, para presentar toda la evidencia de los fraudes cometidos en la Universidad.
Sólo necesito que consigas la contraseña de administración del sitio Web.
Buena suerte! >> Universidad ACME – Facultad de Informática.
Ingreso a la dirección del reto y me encuentro con lo siguiente, como ya estoy cogiendo hace unos retos atrás la buena costumbre de ver el código fuente.

YA estudiando el código fuente veo cosas interesantes como spoudastes/Banner01.bmp entro pero me da un error que no se encuentra ni la careta ni los archivos. Sigo viendo y me encuentro con algo muy interesante http://192.168.0.102/Hackademic/ch007/index_files/logo.png

Quito logo.png y me con el famoso y archiconocido Index Off (Es parte de la mala configuración de un servidor web en que se permite listar los archivos almacenas en ese direcotrio) de abro el archivo lastlogin.txt con el siguiente contenido:
Last Login user:
Irene Pretty : Irene
at 14/3/2000 10:59:00am

Ya con esa información regreso e ingreso Irene en la caja de texto dado como resultado la siguiente captura.

Aquí estuve un ratoooooooooooooooooo!!! Estancando hasta que se me ocurrio ver con la extensión firebug de Firefox y viendo las opciones había una que decía Cookies y el valor de userlevel era user asi que di click derecho editar y lo cambie por admin acepte y felicitaciones.

Desafío 008
Después de varios intentos, usted a logrado subir una webshell (Locus7Shell) en trytohack.gr
El problema es que con el fin de poder ejecutar comandos en el servidor, usted debe tener permisos de administrador (root). Su objetivo es elevar privilegios en el sistema.

Como siempre en este tipo de retos lo importante es leer todo lo que nos muestre para intentar comprender y a mi parecer este es uno de los más fáciles. Siguiendo mi propio consejo lo que hice fue escribir help y me mostro los comando permitidos siguiendo el orden el primero que ejecute fue ls que en el sistema operativo Linux se utiliza para listar los archivos y directorios, al utilizarlo me listo dos archivos index.php y b64.txt lo único que hice fue pegar b64.txt en la url quedando así:
http://192.168.0.102/Hackademic/ch008/b64.txt y dándome como resultado.

LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClVzZXJuYW1lOiByb290IA0KUGFzc3dvcmQ6IGcwdHIwMHQNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t

El mismo archivo da la pista de en qué esta codificado en este caso en base 64 una rápida búsqueda en google y entre en esta web obteniendo en texto claro el usuario y el password para elevar privilegios como pedían en el reto. Luego utilize el comando su me logué con el user root password g0tr00t y obtuve mi recompensa.

Desafío 010
Le gustaría convertirse en un Hacker?. Le gustaría convertirse en un miembro activo del grupo de Hackers más reconocido del mundo? El n1nJ4.n4x0rZ.CreW!
Antes de poder unirse debes demostrar que eres capaz de pasar la prueba que se encuentra en: http://n1nj4h4x0rzcr3w.com
Si tienes éxito en completar el reto, obtendrás un serial que debes usar para obtener la contraseña que le permitirá formar parte del grupo.
Su objetivo es eludir los mecanismos de autenticación, buscar el serial que se suministra con el nombre de usuario y contraseña del equipo de administración del sitio Web. Vamos a ello como siempre la captura inicial del reto .

Aquí mi aliada fue la extensión Tamper Data que ya había utilizado en el desafío 5 para hacer el spoofing (Falsear) el user agent del navegador aquí estuve un buen tiempo atascado de hecho dos días viendo el código fuente tratando de ver qué pasaba cada vez que enviaba caracteres diferentes ya que el password que me pedían no lo tenía hasta que en una de esas vi algo muy curioso cada ves que enviaba una frase o carácter aparecía una variable llamada LetMeIn con el valor False y como siempre lo básico lo lleva a uno a grandes cosas recordé el clásico enable = activado disable = desactivado 1 0 y vino a mi cambiar False por True y reenviar la petición me apareció un alert con una cadena rara pero que ya había visto en el desafío 006 y que era un UNESCAPE.

Solo copie la cadena de caracteres extraña pero ya identificada la pegue en el mismo decoder online que encontré para el desafio 006 y obtuve un serial.

Después de dar click en aceptar me redirigió a la siguiente web donde en título del mail era acerca de un seria así que solo introduje el serial puse mi Nick y le di send y aunque me enviaba un mensaje diciendo que el password estaba mal también me aparecía un mensaje de felicitación diciéndome que lo había logrado y que documentara el proceso.

Para finalizar decir que estuvo entretenido y aunque no pude hacer ni el desafío 001 ni el 009 en este solo pude averiguar que tenía un adminpanel.php por medio de nikto luego quise hacerle fuzzer de archivos por fuerza bruta con oswap dirbuster pero tardaba una eternidad así que lo deje así por el momento. Decir que el que quiera se lance al mundo genial de la seguridad informática y demás ramas, sin temor a saber o no, ya que todo con tiempo, dedicación, curiosidad y estudio se logra.