Cap
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
Cap
es una máquina Linux de dificultad fácil que ejecuta un servidor HTTP que realiza funciones administrativas, incluida la realización de capturas de red. Los controles inadecuados dan como resultado una referencia directa a objetos insegura (IDOR) que otorga acceso a la captura de otro usuario. La captura contiene credenciales de texto sin formato y se puede utilizar para obtener un punto de apoyo. Luego, se aprovecha una capacidad de Linux para escalar a la raíz.
Realizaremos un reconocimiento con nmap para ver los puertos que están expuestos en la máquina Cap. Este resultado lo almacenaremos en un archivo llamado allPorts
.
Lanzaremos scripts de reconocimiento sobre los puertos encontrados y lo exportaremos en formato oN y oX para posteriormente trabajar con ellos. En el resultado, comprobamos que se encuentran abiertos el servicio SSH, FTP y una página web.
Transformaremos el archivo generado targetedXML
para transformar el XML en un archivo HTML para posteriormente montar un servidor web y visualizarlo.
Trataremos de acceder al FTP
con el usuario anonymous, nos encontramos que no podemos acceder anónimamente al FTP.
Accediendo a la opción de Network Status
podemos comprobar un resumen sobre los puertos que están expuestos en el equipo. No logramos visualizar nada interesante.
Accediendo al apartado de IP Config
nos encontramos las interfaces de red que están habilitadas en el equipo.
Si accedemos al apartado de Security Snapshot (5 second PCAP + Analysis)
en el cual nos descarga, lo que parece ser una snapshot de seguridad en un archivo .PCAP
.
Al analizar el archivo, no encontramos nada relevante en él.
esperando nuevamente 5 segundos y accediendo a la opción, verificamos que nos carga una nueva entrada diferente a la anterior, lo cual nos parece algo extraño.
Interceptaremos la solicitud a la hora de descargar el archivo para verificar cómo se tramita la solicitud por parte del servidor.
Verificamos que hace una petición por GET
a /download/2
donde 2 es el nombre que nos aparecía en la URL antes de descargar el archivo. Por lo tanto, lo que podemos pensar es en lo siguiente.
Insecure Direct Object Reference (IDOR), o Referencia Directa a Objetos Inseguros, es una vulnerabilidad que ocurre cuando una aplicación permite el acceso directo a un recurso (como archivos, objetos, o registros en una base de datos) sin validar correctamente si el usuario tiene los permisos necesarios para acceder a dicho recurso.
En un ataque IDOR, el atacante modifica un identificador (como un ID numérico, nombre de archivo o clave en una URL o solicitud HTTP) para acceder a recursos que no le pertenecen. Si la aplicación no valida los permisos de acceso, el atacante puede obtener o modificar información confidencial.
Crearemos un script sencillo en Bash
que se encargue de realizar una descarga a http://10.10.10.245/download/$i en donde el valor $i
será remplazado por el bucle para probar del 0 al 100.
Le darmeos permisos de ejecución al script y al ejecutarlo, verificamos que hemos logrado obtener diferentes archivos .PCAP
simplemente modificando el valor del ID del archivo, por lo tanto, hemos podido abusar de la vulnerabilidad de IDOR
.
Analizaremos todos los archivos PCAP
encontrados. Al revisar el archivo 0.pcap
nos encontramos que existen solicitud que se realizaron al protocolo FTP
.
Seleccionando la petición indicada, le daremos a Seguir < TCP Stream
para verificar más sobre la solicitud.
Comnprobamos que nos aparecen las credenciales en texto plano del usuario nathan
.
Probaremos de conectarnos mediante SSH con las credenciales encontradas. Logramos obtener el acceso y verificar la flag de user.txt.
Revisando los permisos del usuario nathan
, nos encontramos que este usuario tenía asignado una capabilitie
de python3.8
. La cual podríamos intentar aprovechar para escalar privilegios al usuario root
.
Accedemos al binario de Python y probamos de cambiarnos de UID
y de acceder a una consola por bash
como usuario root
. Logramos obtener una terminal como usuario root
y visualizar la flag de root.txt.
A través de la herramienta de , la utilizaremos para extraer los puertos del archivo que nos generó el primer escaneo a través de Nmap
. Esta herramienta nos copiará en la clipboard los puertos encontrados.
Accederemos a y verificaremos el resultado en un formato más cómodo para su análisis.
Accediendo a nos encontramos con la siguiente página web que nos muestra diferentes opciones y apartados.