Tag Archives: Hacking Etico

CTF OverTheWire: Natas4

Continuamos con la serie de tutoriales del CTF Natas, ahora toca el turno de natas4.

Natas Level 3 → Level 4
Username: natas4
URL:      http://natas4.natas.labs.overthewire.org

Utilizamos la bandera obtenida en el reto anterior y accedemos a la URL indicada en las instrucciones del reto, veremos una pantalla como la siguiente.

Como lo hemos hecho anteriormente, revisamos el codigo fuente pero no encontramos nada interesante, tampoco hay archivo robots.txt

Nos concentramos en el mensaje que aparece en la pantalla: Access disallowed. You are visiting from “” while authorized users should come only from “http://natas5.natas.labs.overthewire.org/”

Acceso deshabilitado. Nos estas visitando de “” mientras que los usuarios autorizados deberian de venir desde “http://natas5.natas.labs.overthewire.org/”

El mensaje anterior sugiere algún tipo de validación del lado del servidor en donde se revisa el origen de la petición, damos click en el link de refresh, inspeccionamos las cabeceras del request utilizando google developer toolbars y observamos que el mensaje de la pagina cambio.

Observamos una cabecera interesante llamada referer cuyo valor actual es http://natas4.natas.labs.overthewire.org/, veamos si es posible definir nuestro propio valor utilizando cURL.

Abrimos una consola y escribimos

$ curl --help
Usage: curl [options...] <url>
Options: (H) means HTTP/HTTPS only, (F) means FTP only
....
 -r, --range RANGE   Retrieve only the bytes within RANGE
     --raw           Do HTTP "raw"; no transfer decoding (H)
 -e, --referer       Referer URL (H)
 -J, --remote-header-name  Use the header-provided filename (H)
....

Genial, con el parámetro -e / –referer podemos definir nuestra propia URL.

○ → curl --user natas4:Z9tkRkWmpt9Qr7XrR5jWRkgOU901swEZ --referer http://natas5.natas.labs.overthewire.org/ http://natas4.natas.labs.overthewire.org/
<html>
<head>
<!-- This stuff in the header has nothing to do with the level -->
<link rel="stylesheet" type="text/css" href="http://natas.labs.overthewire.org/css/level.css">
<link rel="stylesheet" href="http://natas.labs.overthewire.org/css/jquery-ui.css" />
<link rel="stylesheet" href="http://natas.labs.overthewire.org/css/wechall.css" />
<script src="http://natas.labs.overthewire.org/js/jquery-1.9.1.js"></script>
<script src="http://natas.labs.overthewire.org/js/jquery-ui.js"></script>
<script src=http://natas.labs.overthewire.org/js/wechall-data.js></script><script src="http://natas.labs.overthewire.org/js/wechall.js"></script>
<script>var wechallinfo = { "level": "natas4", "pass": "Z9tkRkWmpt9Qr7XrR5jWRkgOU901swEZ" };</script></head>
<body>
<h1>natas4</h1>
<div id="content">

Access granted. The password for natas5 is iX6IOfmpN7AYOQGPwtn3fXpbaJVJcHfq
<br/>
<div id="viewsource"><a href="index.php">Refresh page</a></div>
</div>
</body>
</html>

La bandera para acceder a natas5 es iX6IOfmpN7AYOQGPwtn3fXpbaJVJcHfq

* Aprendimos que el referer header no es garantía de que el request viene del origen que el cliente nos esta diciendo, esto podría ser considerado una vulnerabilidad de Broken Access Control de acuerdo al top 10 de vulnerabilidad de OWASP.

Happy hacking 🙂

CTF OverTheWire: Natas3

Continuamos con la serie de tutoriales del CTF Natas, ahora toca el turno de natas3.

Natas Level 2 → Level 3
Username: natas3
URL:      http://natas3.natas.labs.overthewire.org

Utilizamos la bandera obtenida en el reto anterior y accedemos a la URL indicada en las instrucciones del reto, veremos una pantalla como la siguiente.

Inspeccionamos el código fuente de la pagina.

Parece que se nos acabaron las pistas :S, revisamos el código fuente de la pagina pero no encontramos nada que sugiera cual es la bandera de este reto, también revisamos cada uno de los archivos js y css en busca de la solución pero no hay resultados. Cada detalle cuenta en este tipo de retos.

Recordando el reto anterior, la bandera se encontraba en un archivo llamado users.txt en http://natas2.natas.labs.overthewire.org/files/users.txt. La bandera de este reto podria estar en un archivo similar sin embargo no hay ningún directorio files, pero no descartamos la idea por completo, vamos a utilizar una herramienta llamada dirbuster para buscar otros archivos y directorios.

Dirbuster es un scanner de contenido web, la herramienta puede ser utilizada para encontrar archivos y directorios de forma automática utilizando diccionarios y fuerza bruta.

Dirbuster nos muestra un archivo interesante, http://natas3.natas.labs.overthewire.org/robots.txt vamos a esa URL y veremos lo siguiente

User-agent: *
Disallow: /s3cr3t/

Un archivo robots.txt es un archivo que se encuentra en la raíz de un sitio e indica a qué partes no quieres que accedan los rastreadores de los motores de búsqueda. El archivo utiliza el Estándar de exclusión de robots, que es un protocolo con un pequeño conjunto de comandos que se puede utilizar para indicar el acceso al sitio web por sección y por tipos específicos de rastreadores web (como los rastreadores móviles o los rastreadores de ordenador).

Claramente alguien no quiere que los buscadores indexen el directorio http://natas3.natas.labs.overthewire.org/s3cr3t/ :), vamos a esa URL a ver que encontramos.

Genial, otro archivo users.txt, revisamos su contenido.

natas4:Z9tkRkWmpt9Qr7XrR5jWRkgOU901swEZ

La bandera para acceder a natas4 es Z9tkRkWmpt9Qr7XrR5jWRkgOU901swEZ

Happy hacking 🙂

CTF OverTheWire: Natas2

Continuamos con la serie de tutoriales del CTF Natas, ahora toca el turno de natas2.

Natas Level 1 → Level 2
Username: natas2
URL:      http://natas2.natas.labs.overthewire.org

Al igual que en los artículos anteriores, utilizamos la bandera obtenida en el reto anterior y accedemos a la URL indicada en las instrucciones del reto, veremos una pantalla como la siguiente.

Repetimos lo que nos ha funcionado hasta ahora e inspeccionamos el código fuente de la pagina.

Efectivamente no vemos nada que haga referencia al password / bandera para acceder a natas3, sin embargo algo nos llama la atención, hay una imagen png de un pixel en el documento, eso es algo nuevo.

La imagen por si misma no es nada especial, http://natas2.natas.labs.overthewire.org/files/pixel.png, pero la ruta donde esta alojada si 🙂 así que visitamos la URL http://natas2.natas.labs.overthewire.org/files/ y voilà.

Debido a una mala configuración del servidor es posible listar los archivos de directorios que no contengan un index o pagina principal: index.html, index.php, index.jsp, etc. Esta es una vulnerabilidad de revelación de información llamada Directory Listing.

Dentro de users.txt encontraremos una lista de usuarios y contraseñas, entre ellos la bandera para acceder al siguiente reto

# username:password
alice:BYNdCesZqW
bob:jw2ueICLvT
charlie:G5vCxkVV3m
natas3:sJIJNW6ucpu6HPZ1ZAchaDtwd7oGrD14
eve:zo4mJWyNj2
mallory:9urtcpzBmH

La bandera para acceder a natas3 es sJIJNW6ucpu6HPZ1ZAchaDtwd7oGrD14

Happy hacking 🙂

CTF OverTheWire: Natas1

En el articulo anterior, OWASP – Riviera Maya e introducción a Overthewire CTF, comenzamos con una breve introducción a los CTFs y resolvimos Natas0, con la bandera que obtuvimos ahora toca el turno de Natas1, el nivel es muy similar pero tiene algo que lo hace diferente.

Natas1

Natas Level 0 → Level 1
Username: natas1
URL:      http://natas1.natas.labs.overthewire.org

Vamos a la URL del reto, http://natas1.natas.labs.overthewire.org, ingresamos natas1 como username, la bandera obtenida en el reto anterior como contraseña y veremos la siguiente pantalla.

si intentamos hacer lo mismo que en el reto anterior, click derecho > ver código fuente, nos aparece un alert de Javascript indicando que el clic derecho esta deshabilitado.

Ok, hay código javascript que bloquea la acción de click derecho, sin embargo conocemos otras formas de acceder al código fuente de un sitio web, por ejemplo usando shortcuts (alt + command + U en mac, etc.) o con CURL

CURL es un cliente para linea de comandos que nos permite enviar o recibir datos utilizando distintos protocolos, entre ellos HTTP, abrimos una consola y escribimos el siguiente comando (en Windows CURL no esta instalado por default, pero podemos utilizar esta solución https://curl.haxx.se/download.html)

$ curl -u natas1:gtVrDuiDfck831PqWsLEZy5gyDz1clto http://natas1.natas.labs.overthewire.org

El parámetro -u nos permite definir credenciales para autenticarnos ante el servidor.

CURL nos muestra el código fuente de la URL que le indicamos, también podemos ver el código javascript que bloquea el clic derecho y la solución de este reto.

<body oncontextmenu="javascript:alert('right clicking has been blocked!');return false;">

La bandera para acceder a natas2 es ZluruAthQk7Q2MqmDeTiUij2ZvWy2mBi

* Aprendimos que hay otras formas de consumir una pagina web ademas de los navegadores que normalmente usamos (firefox, chrome, ie, safari, etc)

Happy hacking 🙂

OWASP – Riviera Maya e introducción a Overthewire CTF

El 20 y 21 de abril de este año se llevo a cabo la segunda edición de OWASP – Riviera Maya en Cancún, evento de seguridad al cual tuve la fortuna de asistir y donde coincidí con varios amigos de la seguridad informática: @hkm, @calderpwn, @nitr0us, dex, @tresvecesdobleu, @NoxOner, @acorazada, @jjtibaquira son algunos de los que me vienen a la mente ahora mismo (una disculpa si me olvidé de alguno), en lo personal creo que esto es lo mejor de este tipo de eventos 🙂

El staff del evento ha publicado algunos videos de las charlas que podrán encontrar en el canal de youtube de OWASP Latam

Durante el evento tome el taller de web hacking impartido por Eduardo Vela (sirdarckcat), el formato era muy parecido a un CTF en donde ibas resolviendo cada uno de los niveles explotando vulnerabilidades web especificas (XSS, SQLi, LFI, etc). Este tipo de vulnerabilidades web han existido durante los últimos 20 años pero creo que la finalidad del taller era demostrar que siempre habra nuevas formas de seguir aprovechandolas.

Jugar CTFs me divierte mucho ya que siempre se aprende algo nuevo (en el pasado he publicados algunos como #CPMX6 CTF) y este no fue la excepción, al final logre completar todos los retos y Eduardo me dijo que fui el único que lo hizo 😳

Ahora que estoy dedicado el 99% del tiempo al desarrollo de software (ocasionalmente hago algún freelance que tiene que ver con Pentest o revisiones de código) lo mas cercano al hacking que hago son CTFs (justo ahora me estoy preparando para jugar el Google – Capture the flag 2018) y entonces pensé que hay muchísima gente interesada en este tipo de competencias de hacking pero no saben bien por donde empezar y decidí comenzar una nueva serie de tutoriales donde resolveremos un CTF paso a paso 🙂

Me di a la tarea de investigar varios de los CTFs que hay en Internet (básicos, intermedios, avanzados, imposibles, etc…) y creo que el mejor para principiantes se encuentra en OverTheWire, la idea es que resolveremos el CTF llamado Natas donde aprenderemos lo básico de web y mobile hacking y terminando esta serie (son 33 niveles) nos moveremos a algo un poco mas intermedio/avanzado donde tengamos que hacer binary exploitation.

Bueno, pues comenzamos….

Natas CTF

Este CTF, a diferencia de otros como los jeopardy que te dejan jugar los niveles en el orden que tu decidas, te forzá a resolver el nivel actual antes de pasar al siguiente, entonces debemos comenzar por Natas0

Username: natas0
Password: natas0
URL:      http://natas0.natas.labs.overthewire.org

Vamos a la URL que nos indican las instrucciones, introducimos las credenciales que nos da el reto y veremos una pantalla como la siguiente:

Nos dice que el password se encuentre en esta misma pagina sin embargo no vemos nada que haga referencia a la contraseña.

Esta es la primera lección para los principiantes de los CTFs, lo primero que tenemos que hacer en la mayoría de los casos es ver el código fuente de las paginas.

La contraseña para natas1 es gtVrDuiDfck831PqWsLEZy5gyDz1clto, felicidades ahora podemos continuar con el nivel 1, tratare de ir publicando los siguientes artículos cada 2 o 3 días así que estén pendientes.

Happy hacking 🙂