Included
1. 📝 Introducción
Nivel de Dificultad: Muy fácil.
Tags:
PHP: PHP es un lenguaje de programación ampliamente utilizado para el desarrollo web, especialmente en aplicaciones dinámicas. Debido a su gran flexibilidad, es común encontrar aplicaciones personalizadas que no siguen las mejores prácticas de seguridad. Esto puede generar vulnerabilidades como inyecciones de código o fallos en el manejo de datos sensibles. La seguridad en aplicaciones PHP requiere configuraciones cuidadosas, validación de entrada y el uso de buenas prácticas en el manejo de sesiones y contraseñas.
Custom Applications (Aplicaciones Personalizadas): Las Custom Applications son aquellas aplicaciones desarrolladas específicamente para satisfacer necesidades particulares de una organización. Estas aplicaciones pueden carecer de las mejores prácticas de seguridad, lo que puede generar vulnerabilidades significativas si no se gestionan correctamente. Además, debido a que son diseñadas a medida, es más difícil llevar a cabo auditorías de seguridad y mantenerlas actualizadas.
Protocols (Protocolos): Los protocolos son un conjunto de reglas y estándares que permiten la comunicación entre dispositivos en una red. Ejemplos de protocolos incluyen TCP/IP, HTTP, SMB y FTP. Comprender cómo funcionan los protocolos es clave en las pruebas de penetración, ya que a menudo son los puntos de acceso utilizados por los atacantes. Una configuración incorrecta de estos protocolos puede crear vectores de ataque, permitiendo que los atacantes exploten vulnerabilidades.
Apache: Apache es uno de los servidores web más utilizados, conocido por su flexibilidad y su capacidad para manejar aplicaciones web dinámicas y estáticas. Sin embargo, si no se configura adecuadamente, Apache puede ser vulnerable a una variedad de ataques como inyecciones SQL, ejecución remota de código o divulgación de información sensible. Asegurarse de que Apache esté correctamente configurado y actualizado es esencial para mitigar estos riesgos.
TFTP (Trivial File Transfer Protocol): TFTP es un protocolo de transferencia de archivos simplificado, usado principalmente en redes para transferir archivos de configuración o sistemas operativos. A pesar de su utilidad, TFTP no proporciona mecanismos de seguridad, como autenticación o cifrado, lo que lo convierte en un blanco fácil para ataques. El uso de TFTP debe ser restringido a redes internas o entornos controlados, donde no haya riesgos de exposición.
LXD: LXD es una herramienta de contenedores para sistemas Linux que permite ejecutar aplicaciones de manera aislada, ofreciendo un entorno seguro y eficiente. Aunque LXD es útil para gestionar contenedores y facilitar el aislamiento de aplicaciones, una configuración incorrecta puede exponer los contenedores a vulnerabilidades, permitiendo a un atacante escapar del contenedor y acceder a recursos no autorizados del sistema host.
Reconnaissance (Reconocimiento): El Reconocimiento es una fase crítica en las pruebas de penetración, en la que se recopila toda la información posible sobre el objetivo, como puertos abiertos, servicios en ejecución y configuraciones de seguridad. Las herramientas y técnicas como escaneo de puertos, análisis de tráfico y descubrimiento de versiones son esenciales en esta fase para identificar vectores de ataque y debilidades en la infraestructura.
Local File Inclusion (LFI): La vulnerabilidad de Local File Inclusion ocurre cuando un atacante puede incluir archivos locales en un servidor a través de una entrada de usuario no validada. Esto puede permitir la ejecución de código malicioso o la exposición de archivos sensibles, lo que compromete la seguridad de la aplicación. La mitigación de LFI implica validar estrictamente las rutas de archivos y emplear medidas de seguridad adecuadas para restringir el acceso a archivos del sistema.
Clear Text Credentials (Credenciales en Texto Claro): Las Clear Text Credentials son credenciales que se transmiten sin cifrado, lo que permite a un atacante interceptarlas fácilmente en una red. Esta vulnerabilidad es común en protocolos como HTTP o FTP si no se utiliza cifrado. Es fundamental que las credenciales se manejen de manera segura, utilizando protocolos como HTTPS o SSH para cifrar la información sensible durante la transmisión.
Arbitrary File Upload (Carga Arbitraria de Archivos): La Arbitrary File Upload es una vulnerabilidad que permite a un atacante cargar archivos no autorizados en un servidor, lo que puede incluir scripts maliciosos, archivos ejecutables o incluso archivos con configuraciones dañinas. Esta vulnerabilidad es peligrosa porque permite la ejecución remota de código en el servidor. Para mitigarla, es importante validar los tipos de archivo y las extensiones antes de permitir que los usuarios carguen archivos en el servidor.
2. 🛠️ Entorno
Nos descargamos nuestra VPN y nos conectamos.
Iniciamos la máquina y verificamos la conexión.
Observamos que tenemos conexión y que es una máquina Linux ya que su ttl=63.
3. 🔍 Reconocimiento
A continuación, se realiza el comando:
para realizar un escaneo de puertos y servicios detallado en la dirección IP.
4. 🚪 Acceso Inicial
Como podemos observar durante el escaneo, el puerto 80 perteneciente al servicio HTTP está abierto. A continuación, se indagará más sobre estos servicios.
Tenemos la vulnerabilidad Local File Inclusion.
Vemos que tenemos un servicio tftp por lo que podemos subir una Reverse Shell.
Nos ponemos en esucha.
Vamos al directorio /var/www/html
para ver el contenido .htpasswd.
Nos logueamos con esas credenciales.
Nos descargamos LinPeas.sh.
Nos la trasladamos a mike.
En nuestra máquina local.
En nuestra máquina remota.
Ejecutamos y creamos el contenedor para ponerlo en marcha.
5. 🔑 Captura de la Flag
6. ❓Preguntas
Task 1:
¿Qué servicio está ejecutándose en la máquina objetivo a través de UDP? Respuesta: TFTP
Task 2:
¿A qué clase de vulnerabilidad es susceptible la página web que está alojada en el puerto 80? Respuesta: Local File Inclusion (LFI)
Task 3:
¿Cuál es la carpeta del sistema por defecto que TFTP usa para almacenar archivos? Respuesta: /var/lib/tftpboot/
Task 4:
¿Qué archivo interesante se encuentra en la carpeta del servidor web y puede ser utilizado para el Movimiento Lateral? Respuesta: .htpasswd
Task 5:
¿A qué grupo pertenece el usuario Mike y que puede ser explotado para Escalada de Privilegios? Respuesta: LXD
Task 6:
Cuando usamos una imagen para explotar un sistema a través de contenedores, buscamos una distribución muy pequeña. Nuestra favorita para esta tarea tiene el nombre de una montaña. ¿Cuál es el nombre de esta distribución? Respuesta: Alpine
Task 7:
¿Qué bandera debemos establecer en el contenedor para que tenga privilegios de root en el sistema host? Respuesta: security.privileged=true
Task 8:
Si el sistema de archivos raíz está montado en /mnt en el contenedor, ¿dónde se puede encontrar la bandera raíz en el contenedor después de montar el sistema host? Respuesta: /mnt/root
Last updated
Was this helpful?