💜
purple blog
  • 🟣Bienvenido ;)
  • Dockerlabs
    • 🔵Muy Facil
      • BreakMySSH
    • 🟢Facil
      • WhereIsMyWebShell
    • 🟡Medio
      • Pyred
      • Memesploit
      • Littlepivoting
      • HereBash
    • 🔴Dificil
  • THEHACKERSLABS
    • 🟢Facil
      • Academy
      • Grillo
      • Campana feliz
      • Microchoft
    • 🟡Medio
      • Resident
      • Debugsec
      • Cachopo
      • Sarxixas
    • 🔴Dificil
  • vulnyx
    • 🟢Facil
    • 🟡Medio
    • 🔴Dificil
  • HACKMYVM
    • 🟢Facil
      • Buster
      • Arroutada
      • Pwned
      • Alzheimer
      • BaseME
      • Hommie
      • Twisted
      • VivifyTech
      • Gift
      • Hundred
      • Icecream
      • Atom
      • System
      • Convert
      • Friendly3
      • TheWall
    • 🟡Medio
      • Democracy
      • HackingToys
    • 🔴Dificil
  • Cheats
    • Depuración de tty
Powered by GitBook
On this page
  • Fase de reconocimiento
  • Fase de intrusión
  • Escalada de privilegios
  • Conclusión
  1. HACKMYVM
  2. Facil

Icecream

PreviousHundredNextAtom

Last updated 5 months ago

Fase de reconocimiento

Hacemos un escaneo de nmap y descubrimos los siguientes puertos abiertos:

nmap -p- --min-rate 10000 -sSVC -Pn 192.168.8.105 -oG allPorts -vvv

  • 22 (SSH)

  • 80 (HTTP) Hago fuzzing y no encuentro nada

  • 139 (SAMBA)

  • 445 (SAMBA)

  • 9000 (HTTP) Parece ser un rabbithole? Hice fuzzing y solo encuentro "/config" "/certificates" y "/status"

Con enum4linux encuentro en el smb "/icecream", y me llama la atención:

Fase de intrusión

Inicio sesión y subo una revershell de pentesting monkey, me pongo a la escucha con netcat y abro el archivo, consiguiendo RCE. Lo primero antes de todo hay que hacer laDepuración de tty:

Me muevo un poco por el servidor pero no encuentro nada, así que me paso pspy64 y linpeas abriéndome un servidor con python desde mi maquina atacante y haciendo un wget para descargarlo. Linpeas no me da nada util, pero en cambio en pspy veo una cosa que me llama la atención porque hace referencia al puerto :9000, el cual pensaba que no servía para nada, pero al parecer si, así que voy a investigar un poco sobre que es unitd:

Estos son los archivos que hay en el puerto 9000:

Bien, la idea aquí seria subir otra revershell pero está vez mediante la API de unit, ya que si os fijais bien, en el pspy se puede apreciar que se ejecuta como ice:

La estructura es de la siguiente manera, así que de esa manera vamos a crear el .json mandando solicitudes curl con PUT

Añadimos en "/tmp" la revershell y hacemos un curl y nos llega a nuestro netcat:

Como siempre, lo primero hay que hacer la Depuración de tty

Escalada de privilegios

Revisamos los SUID y encontramos que todos los usuarios pueden ejecutar ums2net:

*Dato curioso, me equivoque con un comando y jodi el /etc/sudoers de la maquina y la tuve que volver a importar 🤦‍♂️*

Hacemos un "echo "5555 of=/etc/sudoers" > config" de está manera podremos hacer una solicitud al puerto 5555 y editar el /etc/sudoers

Inicializamos el comando y desde nuestra máquina atacante ahora tendremos que hacer una solicitud para editar el /etc/sudoers, así conseguiremos editarlo y hacer que cualquier usuario pueda ser root sin proporcionar contraseñas

Parece que ha funcionado finalmente...

Y conseguimos ser root 😎👌

Conclusión

En esta máquina, logramos la intrusión y escalada de privilegios aprovechando varias debilidades:

  • Obtuvimos acceso inicial cargando una reverse shell en un recurso compartido SMB mal configurado, lo que permitió ejecutar comandos en el sistema.

  • Descubrimos actividad interesante en el servicio Unit expuesto en el puerto 9000 mediante pspy64, lo que condujo a la explotación de su API HTTP para cargar y ejecutar una segunda reverse shell.

  • El binario SUID ums2net se utilizó para editar el archivo /etc/sudoers, otorgando acceso root sin necesidad de contraseña.

  • La falta de una adecuada configuración de permisos en servicios como SMB y Unit fue clave para comprometer la máquina.

  • Inicialmente pensé que el puerto 9000 era un rabbithole, que resultó ser una pieza crucial para avanzar, esto nos da un lección para que no descartemos posibles entradas de explotación sin haber investigado exhaustivamente

Realmente fue una maquina fácil pero personalmente se me hizo muy larga y en algunos pasos me quede atascado, la frustración es el camino correcto hacia el aprendizaje ;)

Unit al parecer es una API la cual se puede controlar mediante HTTP, y curiosamente "/config" "/control" y "/status" son los directorios que encontré previamente con gobuster (No metí foto pensando que era un rabbithole) :

🟢
Página