MAESTRÍA EN CIBERSEGURIDAD PRUEBAS DE PENETRACIÓN Y HACKING ÉTICO
LABORATORIO 5
ALUMNO: HUGO MUÑOZ SEVILLA
INSTRUCCIONES:
Realizar la práctica 5 publicada en la IP pública http://137.184.138.237, se
calificará en base a lo realizado y no a la explotación de máquina en sí.
DESARROLLO
Para verificar que tenemos conexión con la máquina de CACTIS procedemos a
hacer ping a la IP pública y verificamos la recepción/ envío de paquetes
Como primer paso a fin de escanear las vulnerabilidades de puertos ejecutamos el
siguiente comando
Para la ejecución del ataque se realizará en dos instancias, la primera instancia se
ejecuta enviando un método GET y a través de un FORWARD para encontrar distintos parámetros de la inyección haciendo un FORWARD al servidor local en dónde está corriendo el CACTI a fin de omitirse la autenticación y poder ejecutar comandos directamente.
Cacti es una plataforma de código abierto basada en la web que proporciona un
marco de gestión de fallas y monitoreo. Se ha descubierto una vulnerabilidad (CVE-2022-46169) que afecta a Cacti en las versiones 1.2.22 e inferiores, y tiene una puntuación CVSSv3 de 9,8 sobre 10.
En las versiones afectadas muestran una vulnerabilidad de inyección de
comandos que permite a un usuario no autenticado ejecutar código arbitrario en un servidor que ejecuta una instancia de Cacti si cualquier dispositivo monitoreado utiliza una fuente de datos específica.
La vulnerabilidad existe debido a una autorización insuficiente dentro del
«remote_agent.php» al manejar solicitudes HTTP con un encabezado HTTP «Forwarded-For» personalizado. Un atacante remoto no autenticado puede enviar una solicitud HTTP especialmente diseñada a la instancia afectada y ejecutar comandos arbitrarios del sistema operativo en el servidor.
Posteriormente, buscamos la siguiente URL dentro del CVE “command injection”
previamente investigado (CVE-2022-46169) De esta manera procedemos a ocupar la herramienta BURPSUITE a fin de escanear el tráfico y ver el código generado en GET
Y procedemos a insertar el código anteriormente generado y elegimos la opción
FORWARD
Obtendremos el siguiente resultado:
Analizamos la respuesta vemos que el ID tiene el valor de 6 lo que significa que podemos ejecutar comandos.
Para el siguiente paso se verifica el comando TOUCH, creamos SHELL1.PHP y a
continuación mediante el comando CAT poder concatenar el código a ejecutar
Para verificar que se haya ejecutado un comando mediante el comando touch
ingresamos el siguiente código y verificamos la respuesta Para la explotación de la vulnerabilidad no debemos ocupar SHELL REVERSE de manera normal para lo cual vamos a utilizar la SHELL BIND qué es el proceso inverso; lo que constituye que la otra máquina será la que se pone en escucha y no como habitualmente lo realizamos de ponernos en escucha nosotros.
Ponemos el NETCAT apuntando a la IP pública 137.184.138.237 y ponemos el
puerto por el cual queremos escuchar, para lo cual en nuestra máquina KALI LINUX en la que estamos apuntando a la máquina mediante el siguiente comando
Posteriormente en la máquina víctima utilizamos el siguiente comando a fin de
ponerla en escucha ya que esta máquina está expuesta IP pública, para lo cual debemos considerar el uso del comando NCAT a fin de poder ejecutar el BIN BASH Finalmente debemos considerar el análisis el código ENCODE y utilizar diferentes métodos de concatenación en Linux a fin de tener el CURL adecuado y obtener la Shell reverse cómo lo podemos evidenciar en el siguiente ejemplo.
CONCLUSIÓN DE LA UTILIDAD DE LOS CONOCIMIENTOS PRÁCTICOS
ADQUIRIDOS Una vez realizada la práctica se puede determinar que existen múltiples y diversas formas de atacar a un objetivo o máquina empleando las herramientas adecuadas para un escaneo de puertos, por tal razón se puede concluir que la etapa de reconocimiento es la más importante en los procesos de pentesting. En este tipo de prácticas es muy importante el uso de herramientas que nos permiten vulnerar las falencias en seguridad informática, además de evaluar consecuentemente la manera en cómo llegar a obtener privilegios y modificar mencionados sitios o archivos. Se pudo obtener el acceso a Shell reversa explotando las vulnerabilidades más conocidas en el escaneo de puertos, es importante conocer y determinar si se puede obtener el acceso a un equipo de manera local o remota Para realizar esta práctica se debe aprovechar las fallas en configuración a fin de encontrar ficheros con contraseñas, las cuales podemos usarlas como una guía para emplear las herramientas adecuadas a fin de reducir y mitigar los ciberataques. En este laboratorio fue necesario analizar y buscar el exploit más adecuado y ejecutarlo con el fin de recopilar información de dicha máquina y obtener privilegios, lo que nos permitirá determinar de una mejor manera las vulnerabilidades y tomar las acciones necesarias para mitigar las mismas.
RECOMENDACIONES TÉCNICAS PARA MITIGAR LAS VULNERABILIDADES
EXPLOTADAS
Se recomienda utilizar las herramientas a fin de generar una Shell Bind
adecuado además explorar los diferentes métodos de concatenación a fin generar código que nos permita cumplir con el objetivo. Se recomienda utilizar las herramientas que se encuentran en línea a fin de crear una correcta Shell reverse ya que esto nos permitirá que el servidor que se encuentra escaneando tráfico de red tenga un enlace adecuado. Es importante mantener con seguridad los principales puertos de acceso a la red y accesos remotos, a través del uso correcto de herramientas como firewall y técnicas de hardening, para evitar en lo posible las filtraciones y ataques a nuestros sistemas informáticos. Habilitar la protección antivirus en los servidores web. Además, debemos activar la protección proporcionada en la nube para obtener las últimas defensas contra las nuevas amenazas Asignar derechos administrativos de acuerdo con el principio de menor privilegio, revisar periódicamente las cuentas administrativas y revocarlas si ya no se necesita acceso. Revisar los sistemas de TI y asegúrese de que la protección de control de cuenta de usuario esté configurada al más alto nivel. Restringir o eliminar programas que permiten transferencias de archivos como FTP, SCP o curl, o restringirlos a usuarios o IP específicos. Es recomendable analizar la forma en que los exploit vulneran los sistemas a fin de que nosotros sepamos donde debemos reforzar la seguridad de estos. Monitorear flujos de tráfico en la red mediante herramientas como wireshark donde se pueda evidenciar y analizar qué tráfico demuestra comportamientos inusuales o de relevancia, lo cual nos permita tener una alerta temprana sobre una vulnerabilidad o ataque. Guardar información en archivos binarios.