πŸ–οΈVacaciones - dokerlabs.es

Escaneos de la red

IP -> 172.17.0.2

Como siempre empezamos validando la maquina con el comando ping -c 1 172.17.0.2

con esto comprobamos que la maquina se a desplegado correctamente y esta lista para ser vulnerada.

Puertos

Por costumbre la detecciΓ³n de puertos y servicios siempre la separo en dos fases

  • fase1: descubrimiento de puertos

  • fase2: descubrimiento de versiones y servicios por host esto es mas por gustos mΓ­os que por cualquier otra cosa asΓ­ que veamos que encontramos

Fase1

para el descubrimiento de puertos vamos a usar el siempre confiable nmap y un Stealth Scan

Donde:

  • sS = El tipo de escaneo que va a ejecutar nmap en este caso un Stealth Scan

  • p = Los puertos a escanear en este caso el - indica que recorremos todo el rango de puertos disponibles entonces serΓ‘n 65535 los puertos que se analizaran

  • vvv = Indicamos un nivel tres de verbose lo cual nos darΓ‘ toda la informaciΓ³n que obtenga en el momento

  • n = Para que no haga resoluciΓ³n de dns

  • T5 = Para usar la plantilla de escaneo mas rΓ‘pida como dice nmap entre mas alta mas rΓ‘pida

  • oN = Le decimos que todo lo que obtenga lo guarde en un archivo de formato normal

una vez lanzado el comando obtenemos los siguientes puertos abiertos:

En este caso encontramos solo dos puertos:

  • 22 -> Puerto default para SSH

  • 80 -> Puerto default para HTTP pero como siempre este es un CTF y no nos podemos fiar de la informaciΓ³n desde una primera instancia.

Fase2

Aunque podemos saber desde un inicio que hay en los puertos siempre es bueno revisar un poco mas a fondo ya que en este mundo nada es lo que parece en algunos casos asΓ­ que con el siguiente comando

Donde:

  • sC = Equivalente a --script=default esto lanza algunos scripts simples de reconocimiento

  • sV = Este argumento instruye a Nmap para intentar identificar la versiΓ³n de los servicios que se detectan. Esto puede ser ΓΊtil para determinar si un servicio en particular tiene vulnerabilidades conocidas.

con esto encontramos lo siguiente:

Con esto podemos concluir lo siguiente:

  • 22 -> OpenSSH 7.6p1

  • 80 -> httpd 2.4.29

Una ves que ya comprobamos los servicios nos damos cuenta que la versiΓ³n de OpenSSH es vulnerable a una enumeraciΓ³n de usuarios.

AnΓ‘lisis de los servicios

Como ya sabemos podemos usar una vulnerabilidad de enumeraciΓ³n de usuarios presente en las versiones menores a 7.7, sabiendo esto podes hacer dos cosas tirar de scripts o usar metasploit desafortunadamente no podemos encontrar nada de esta forma.

Sabiendo esto vamos a explorar el puerto 80 y lo que encontramos la verdad es que nuevamnete se convierte en algo de CTF una pagina en blanco

como siempre hay que revisar el cΓ³digo fuente en bΓΊsqueda de comentarios que nos puedan dar datos para alguna posible vulneraciΓ³n, revisando el extenso cΓ³digo fuente de la pagina en blanco nos damos cuenta que vaya que hay datos importantes:

Parece que Juan dejo un correo importante para camilo asΓ­ que vamos a tirar de fuerza bruta con hidra cobre estos usuarios:

para poder hacer esto un poco mas rΓ‘pido vamos a crear un archivo con los usuarios que tenemos

y ahora si vamos con hydra y el poderoso rockyou para ver que encontramos

Donde:

  • l o L = Es login o el usuario en caso de que se tenga o podemos tirar de una lista

  • p o P = Es pass o la password en este caso no contamos con ella por esto usamos el diccionario rockyou

  • v = Verbose mode hay que tomar en cuenta que esto tomara su tiempo ya que es un ataque de fuerza bruta por diccionario despuΓ©s de esperar un poco podemos observar el siguiente resultado. !

Tenemos lo siguiente:

  • usr -> camilo

  • pass -> password1

una ve tenemos acceso vamos a los que nos interesa......

Escalada de privilegios

Bueno comenzando por lo simple sudo -l nos damos cuenta que no hay nada interesante pero siempre es bueno revisar.

revisamos ahora si hay archivos con permisos suid esto lo hacemos con el siguiente comando

recordando que los permisos SUID o Set User ID son permisos especiales que se le otorgan al usuario, o un poco mas simple al usuario simple se le dan permisos elevados al momento de ejecutar el archivo un ejemplo rΓ‘pido es el ejecutable passwd que al ejecutarlo da privilegios al usuario de forma temporalmente para editar archivos propiedad de root.

Vamos a desglosar el comando para su bΓΊsqueda:

  • find -> comando de linux que permite buscar archivos

  • / -> indica donde va a buscar en este caso en todo root

  • -pem -> filtro para buscar por permisos

  • /4000 -> buscar el permisos SUID en valor octal es decir el bit que representa SUID es el 4 y los otros dΓ­gitos representan valores de otros permisos.

Pero no encontramos nada extraΓ±o

DespuΓ©s de revisar varias cosas mas recordΓ© el mensaje que estaba en el cΓ³digo

hay un mensaje importante en el correo de camilo y en la ruta /var/mail podemos ver los correos del usuario actual Γ³sea camilo .

y vaya que era importante ahora tenemos que para juan la contraseΓ±a 2k84dicb podrΓ­a ser valida vamos a pivotar al usuario juan.

y ahora estanos en el usuario juan asΓ­ que aremos la validaciones bΓ‘sicas que hicimos en el usuario camilo:

encontramos que juan si puedo ejecutar con sudo ruby asΓ­ que vamos a tirar de GTFOBinsarrow-up-right para revisar de manera rΓ‘pida si podemos aprovecharnos de este binario.

y parece que si lo encontramos sudo ruby -e 'exec "/bin/sh" podemos ejecutar una shell con privilegios elevados bΓ‘sicamente esto funciona como una reverse shell de php usamos la funciΓ³n exec de ruby para lanzar una sh con los permisos de root esto tambiΓ©n se puede lograr con la funciΓ³n system

y con esto ahora somos root......

by: Athem

Last updated