HackMyVM - Connection
29 junio 2021
Esta máquina se encuentra en la plataforma HackMyVM y ha sido creada por el usuario whitecr0wz.
Una máquina Linux muy sencilla que se basa en una mala configuración de samba para su explotación.
# | Dificultad |
---|---|
Acceso | Fácil |
Escalada de privilegios | Muy fácil |
Enumeración
Como todas las máquinas de HackMyVM es necesario obtener la dirección de la máquina objetivo, para ello se utiliza la herramienta ping-sweep con el modo de detección de sistema operativo.
La herramienta ha detectado 3 IP:
- 10.10.10.1 → Gateway
- 10.10.10.100 → Máquina objetivo
- 10.10.10.101 → Host anfitrión
La enumeración se realiza en dos pasos, un primer paso con una enumeración rápida de todos los puertos y una segunda enumeración de los puertos abiertos más profunda.
El escaneo de puertos ha desvelado que está activado el servicio samba, por lo que se comienza la enumeración por ahí.
Primero se consultan los directorios compartidos por samba sin proporcionar contraseña.
Se encuentra que existe un directorio llamado "share" y se lista su contenido.
A continuación, se lista el contenido de la carpeta "html".
Esta carpeta tiene un archivo index.html, el cual es el index.html predeterminado de Apache. Se prueba subir un reverse shell de php para subirlo a esta carpeta.
Explotación
Por rapidez y simplificar la resolución de la máquina se consulta la web PentestMonkeys en busca de un PHP reverse shell y se descarga modelo proporcionado. Es necesario indicar en el script PHP malicioso la dirección IP y puerto de la máquina del atacante.
Tras la configuración del script se sube a la carpeta "html" a través del servicio samba.
Una vez subido queda escuchar en el puerto indicado mediante netcat y ejecutar el script malicioso.
Al ejecutar el PHP malicioso se recibe la conexión en la terminal con netcat consiguiendo acceso al sistema.
Sin embargo, la terminal es muy simple y poco útil. Será necesaria el tratamiento de la tty. TheHackerSnow tiene una guía detallada de como hacer esto → https://thehackersnow.com/tratamiento-de-una-tty/.
Después del tratamiento queda una terminal más agradable con la que se puede trabajar de forma más dinámica.
Escalada de privilegios
El acceso se consigue con el usuario www-data, será necesario escalar a otro usuario. Primero, se comprueban qué usuarios existen en el sistema.
Se comprueban los permisos SUID del usuario www-data y se descubre que tiene permiso para ejecutar el binario gdb.
Se busca en la web de GTFobins una forma de escalar privilegios utilizando el binario gdb con permisos SUID. Una vez conocida la forma, se ejecuta y se obtiene una terminal privilegiada.
Finalmente, pueden consultarse las flags de usuario y root.