Post

Darkside Writeup - HackMyVM

Información
Máquina: Darkside
Creador: Boyras200
SO: Linux
Dificultad: Easy

Descubrir IP

  • Comenzamos escaneando nuestra propia red para ver que IP le ha asignado el DHCP a la máquina darkside.

  • Primero es necesario ver en que red estamos.

  • Como se puede ver nos encontramos en la red 0, con máscara de subred /24.

  • Hacemos un nmap con esta información

1
nmap -sP 192.168.0.0/24 | grep "scan"

  • Ya tenemos la IP de darkside: 192.168.0.101

Enumeración

  • Realizamos un nmap para ver que servicios están corriendo en la máquina.
1
nmap -sVC -p- 192.168.0.101 --min-rate 5000

El parámetro -sVC es el conjunto de -sV (Service Version, te muestra las versiones de los servicios) y -sC (Script Scan, nos ayuda a encontrar vulnerabilidades conocidas).

El parámetro -p- indica que el escaneo se hará sobre los 65536 puertos.

El parámetro –min-rate 5000, estamos configurando una velocidad mínima de escaneo de 5000 paquetes por segundo, se puede configurar también un delay entre cada paquete y bajar el min rate para no hacer tanto ruido en la máquina victima.

  • Vemos dos servicios, SSH en el puerto 22 y HTTP en el 80, visitamos la página web.

Foothold

  • Nos encontramos un login

  • Vemos el código fuente a ver si nos da alguna pista sin éxito, probamos un dirb a la web, con esto hacemos un escaneo en busca de directorios y archivos.
1
dirb http://192.168.0.101/ /usr/share/wordlists/dirb/common.txt

  • Encontramos una URL interesante /backup, la buscamos en el navegador.

El resultado (CODE:) hace referencia al tipo de respuesta en el servidor, es decir la página /index.php lanza un código 200 (lo que en HTTP indica respuesta existosa) y la URL /server-status lanza un código 403 (lo que indica un acceso denegado), en cambio vemos que /backup es un directorio

  • Nos encontramos un archivo .txt, lo abrimos.

  • Dentro encontramos varios nombres, pero el que más llama la atención es el de kevin, intentamos sacar credenciales para el login con el nombre kevin, para ello preparamos un payload en burpsuite.

  • Para ello primero lanzamos una petición de login y la interceptamos.

  • Mandamos la petición al intruder

  • En el campo pass= saldrá la contraseña que hemos puesto, la seleccionamos y le añadimos §

  • Preparamos el ataque en la ventana payloads, buscamos un diccionario de contraseñas en formato raw, yo voy a usar este y lo pegamos en Payload setting y empezamos el ataque desde Start attack.

  • Se nos abre una ventana con el payload y rápidamente
  • encontramos la contraseña iloveyoupara el usuario kevin

El código 302 nos indica una redirección, es decir sabemos que es la correcta porque ha entrado en el login y lo ha enviado a una nueva página.

  • Probamos la credenciales y tenemos éxito, en la página web vemos una serie de letras y números pero no parecen ser un hash.

  • Probamos las credenciales kevin@iloveyou en SSH sin éxito.

  • Visitamos cyberchef para ver si somos capaces de descifrarlo, cuando no sabemos como se ha encriptado podemos hacer uso de la herramienta Magic dentro de cyberchef.

  • Vemos que se ha codificado en Base58 y Base64 y nos da lo que aparentemente parece una URL.

  • La buscamos en le navegador y nos encontramos una web con la frase “Which Side Are You On?”, vemos el código fuente para ver si hay alguna pista y nos encontramos con un script
1
2
3
4
var sideCookie = document.cookie.match(/(^| )side=([^;]+)/);
if (sideCookie && sideCookie[2] === 'darkside') {
	window.location.href = 'hwvhysntovtanj.password'
}
  • El código busca la cookie “side” y si el valor de la cookie corresponde con darkside nos reenvía a hwvhysntovtanj.password,
  • para modificar la cookie usaremos las herramientas de desarrollador, en firefox damos click derecho en la web, damos a Inspeccionar y nos dirigemos a Almacenamiento > Cookies

  • Cambiamos el valor de la cookie de whiteside a darkside.

Recargamos la página y efectivamente nos reenvía a hwvhysntovtanj.password, y nos dan las credenciales de kevin@ILoveCalisthenics, la probamos en ssh y entramos sin problema.

1
ssh kevin@192.168.0.101

Privesc

  • En este punto, comenzamos la escala de privilegios, empezamos con un
    1
    
    find / -perm /4000 2>/dev/null
    

El comando find / -perm /4000 2>/dev/null busca archivos con permiso setuid y muestra su ubicación

  • No encontramos nada de interés, hacemos un
    1
    
    ls -la
    
  • y nos encontramos con un archivo .history hacemos un
1
cat .history

  • Encontramos otras posibles credenciales rijaba@ILoveJabita, entramos a su SSH, aún no somos root, el
1
find / -perm /4000 2>/dev/null
  • nos da los mismos resultados, probamos con
1
sudo -l

  • Nos encontramos que tiene acceso al binario de nano, lo buscamos en GTFOBins

  • Encontramos una forma de privesc a través de nano

  • El orden a realizar es sudo nano en la terminal, se nos abrirá una ventana de nano, pulsaremos la combinación (Crtl+R) y (Crtl+X), nos pedirá un input de texto, ahí hemos de colocar el reset; sh 1>&0 2>&0

  • Una vez se ejecute veremos la # y ya seremos root, nos movemos al directorio root y encontramos la flag root.txt

This post is licensed under CC BY 4.0 by the author.