Tag Archives: Hacking Etico

CTF OverTheWire: Natas5

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

Natas Level 4 → Level 5
Username: natas5
URL:      http://natas5.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.

Acceso deshabilitado. No estas autenticado

Generalmente cuando te autenticas en un sitio web el servidor crea una sesión en memoria/base de datos/archivos/etc… y genera una cookie de sesión que es retornada al usuario, esta cookie puede ser incluida en las siguientes peticiones y de esta forma el servidor nos puede identificar mas rápido (HTTP stateless protocol).

Procedemos a revisar las cookies de la pagina web, si utilizas chrome lo puedes hacer desde la google developer toolbar en la pestaña de aplicación

Inmediatamente vemos que hay una cookie llamada loggedin con un valor de cero, lo cambiamos a uno (1) y refrescamos la pagina.

La bandera para acceder a natas6 es aGoY4q2Dc6MgDq4oL4YtoKtyAg9PeHa1

Al igual que en el reto anterior, esta pagina tiene una vulnerabilidad de broken access control puesto que es posible engañar al servidor con tan solo modificar el valor de la cookie loggedin

Happy hacking 🙂

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 🙂