Natas es uno de los múltiples wargames ofrecidos por la plataforma OverTheWire. Este wargame se centra en hacking web, empleando un enfoque de caja blanca, es decir, con acceso al código fuente de la aplicación. Dado que se trata de revisión de código, me pareció interesante subir posts a este blog porque es útil de cara a prepararme para la certificación de OSWE de Offensive Security. Enseñar es aprender dos veces.

Cada nivel de Natas es accesible desde el navegador, el formato de la URL es http://natasX.natas.labs.overthewire.org, donde X es el número del nivel. Al acceder, el navegador web mostrará una Autenticación HTTP de acceso básica y solicitará las credenciales correspondientes (por ejemplo, natas0 para el nivel 0, y la contraseña).

Cada nivel tiene acceso a la contraseña del siguiente nivel. Las contraseñas se almacenan en /etc/natas_webpass/.

Me gustaría agradecer a B3nj1 y Erik451 por recomendarme este laboratorio. Me acuerdo que B3nj1 me desafió a completar uno de los retos finales y me agradó mucho la experiencia. El reto estaba bien diseñado, me hizo pensar, lo completé y me quedé con ganas de más. Así que, aquí estamos para completarlo todo.

¡Empecemos!

https://cybexsec.es/wp-content/uploads/2022/02/n0_1.png

Esta es la apariencia visual de la aplicación web. Se indica que la contraseña para el siguiente nivel se encuentra en esta página. Lo más probable es que la contraseña se esconda en el código fuente. Vamos a comprobarlo, presionamos Ctrl+U.

https://cybexsec.es/wp-content/uploads/2022/02/n0_2.png

¡Listo! Ya tenemos la contraseña para natas1.

Contraseña para natas1: gtVrDuiDfck831PqWsLEZy5gyDz1clto

Teniendo en cuenta que este nivel era muy sencillo, vamos a realizar un script de autopwn en Python 3 que nos proporcione la contraseña para natas1 directamente. Así, este post tendrá un pequeño valor añadido.

import requests
import re

def n0():
    r = requests.get("http://natas0.natas.labs.overthewire.org/", auth=("natas0", "natas0"))
    return re.search("[a-z0-9]{32}", r.text, re.IGNORECASE).group()

print(n0())

Resultado:

gtVrDuiDfck831PqWsLEZy5gyDz1clto
Última modificación: 10 de febrero de 2022

Autor

Comentarios

Escribe una respuesta o comentario

Tu dirección de correo electrónico no será publicada.