Vacaciones - dokerlabs.es
Last updated
Last updated
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.
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.
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......
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:
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
encontramos que juan si puedo ejecutar con sudo ruby así que vamos a tirar de para revisar de manera rápida si podemos aprovecharnos de este binario.