Você está na página 1de 20

RELATÓRIO FINAL

Segurança e Auditoria de Sistemas

CELSO HENRIQUE ASSIS SILVA


GABRIEL BATISTA ARAUJO ALMEIDA
GABRIEL NEPOMUCENO SIQUEIRA CAMPOS
HIGOR LUIS PEREIRA GUIMARÃES

João Monlevade
2021
Introdução

Inicialmente montamos um grupo no WhatsApp e criamos um canal no aplicativo


Discord para os integrantes poderem trocar ideias sobre o trabalho e fazer as configurações
necessárias. Como nem todos do grupo possuíam computadores que conseguissem rodar a
máquina virtual e os demais programas, decidimos utilizar um computador principal de um
dos alunos. Este computador possui um processador Intel Core i5 de 10ª geração com 16gb
de RAM e foi nele que fizemos todas as configurações, para isso, o aluno compartilhava a
tela do computador e todos os integrantes auxiliavam e acompanhavam o trabalho.

Capítulo 1 - Configurando o laboratório virtual

Para começar fizemos a instalação inicial que o capítulo pede. Instalamos o VMware
Workstation que apresenta a seguinte página inicial:

Figura 1: página inicial VMware

O segundo passo é instalar o Kali Linux. No livro, foi instalada a versão 1.0.6 e nós
utilizamos a versão 2021.1 que é uma versão mais atualizada do sistema operacional.
Figura 2:Abrindo a máquina virtual Kali Linux

Figura 3:Tela de login do Kali


Figura 4: Área de trabalho do Kali Linux

Nesse ponto do trabalho, o sistema operacional já está devidamente instalado. Agora o


próximo passo é configurar a rede. Esse passo é muito importante porque os ataques vão ser
feitos através de uma rede virtual onde as máquinas virtuais e o sistema-alvo vão estar.
Utilizaremos a conexão do tipo bridge que conecta a máquina virtual diretamente à rede local
usando a mesma conexão usada pelo sistema host.
Feito isso, o próximo passo é criar uma máquina alvo para que possamos atacá-la.
Essa máquina foi definida no capítulo 10, e no caso, é o Windows XP SP3.
Figura 5: Área de trabalho Windows XP SP3

Depois que concluímos a etapa de instalação do windows passamos para o tópico de


softwares vulneráveis para instalar alguns programas dentro da máquina virtual que vamos
atacar posteriormente. Instalamos os seguintes pacotes listados no livro:
● Zervit 0.4;
● SLMail 5.5;
● 3Com TFTP 2.0.1;
● XAMPP 1.7.2;
● Adobe Acrobat Reader;
● War-FTP;
● WinSCP.

Enfim chegamos a última instalação necessária para configurar corretamente e


executar nosso alvo. Para isso fizemos a instalação do Immunity Debugger. Essa ferramenta é
um depurador que auxilia na detecção de erros. Feito isso, baixamos o mona.py e colocamos
dentro do diretório do Immunity Debugger dentro da pasta PyCommands.

Capítulo 4 - Utilizando o Metasploit

Neste capítulo o livro ensina como utilizar o Metasploit, que é uma ferramenta muito
famosa utilizada pelos pentesters. Ela ajuda os desenvolvedores a criarem exploits funcionais
de maneira eficiente à medida que novas vulnerabilidades são descobertas. Essa ferramenta
será utilizada pelo grupo nos capítulos pelos quais ficamos responsáveis (capítulo 9 e 10) e
será melhor apresentada no relatório final, visto que para exemplificar melhor as
funcionalidades precisaremos do contexto presente nos capítulos citados.
Capítulo 9 - Ataques a senhas

O foco principal deste capítulo é explorar as senhas dos nossos usuários. O livro diz
que as senhas representam o ponto que oferece a menor resistência em atividades de testes de
invasão, o que de fato é verdade, pois muitas pessoas não se importam com as senhas e
acabam colocando algo muito fácil de ser decifrado, muitas vezes colocam até mesmo seus
nomes ou então sequências de letras como 1234.
Nesta parte, iremos tentar fazer login automaticamente em algum serviço e descobrir
credenciais válidas utilizando o método de força bruta. Este método consiste em testar uma
série de combinações de usuário e senha até descobrir uma que seja válida. Porém isso pode
demorar muito tempo.
Inicialmente vamos criar dois arquivos de texto na nossa máquina atacante, que no
caso é o Kali. Estes dois arquivos de texto vão conter uma lista de possíveis usuários e uma
lista de possíveis senhas. Criamos os dois arquivos de acordo com as listagens do livro. Nos
prints a seguir recuperamos os dois arquivos com o comando cat.

Figura 6 - recuperando listas de usuários e senhas

Pronto, agora vamos de fato utilizar essas listas para adivinhar senhas de serviços que
estão executando no nosso alvo. Utilizaremos o Hydra para adivinhar a senha do usuário de
acordo com nossa lista de usuários e nossa lista de senhas. O Hydra é uma ferramenta online
para adivinhar senhas que utiliza justamente nomes de usuários e senhas para testar
combinações em serviços que estejam executando.
Figura 7 - executando o Hydra

A figura 7 mostra a sintaxe de utilização do Hydra. Esse comando utiliza a flag -L que
é nossa lista de usuários, a flag -P que é nossa lista de senhas em busca de credenciais válidas
para o POP3 no alvo Windows XP. Ele utiliza o protocolo pop3 que é um protocolo do Hydra
para acessar serviços do tipo email. Podemos perceber que como saída descobrimos que o
usuário “georgia” utiliza a senha “password”.
Outra forma de utilizar o Hydra é se você já souber o nome de usuário do alvo. Dessa
forma podemos trocar a flag do comando anterior para -l e digitar o nome do usuário que
queremos descobrir a senha. Percebemos que o comando obteve a mesma saída do comando
da figura 7.

Figura 8 - outra sintaxe do Hydra

Agora podemos acessar a caixa de email desse usuário utilizando o Netcat, que é uma
ferramenta de rede muito utilizada para ler e escrever dados através de redes. Para fazer isso
basta utilizar o comando nc seguido do IP da máquina alvo e o protocolo que vamos utilizar,
que novamente será o pop3 e quando for solicitado inserir o usuário e senha que descobrimos.

Figura 9 - utilizando o Netcat


Como saída desse comando podemos perceber que ele aceitou o usuário “georgia” e
depois que inserimos a senha ele retornou uma mensagem dizendo que o usuário não tinha
nenhuma mensagem na caixa de entrada do email dele.
Até aqui criamos uma lista de usuários e uma lista de senhas e passamos esses
arquivos para o Hydra para que ele conseguisse nos mostrar o usuário e a senha da máquina
alvo. Porém existe uma outra maneira para quebrar senhas que consiste em obter uma cópia
das hashes de senha e tentar reverter essa hash para o formato de texto simples, descobrindo
assim a senha. Essa hash geralmente está mantida em algum lugar seguro onde teoricamente
não temos acesso. Porém vamos conseguir acessar as hashes de senhas do Windows através
de uma sessão do Meterpreter. O Meterpreter é um dos payloads mais conhecidos do
Metasploit e é a ferramenta responsável por fazer esse dump das hashes através do comando
hashdump.

Figura 10 - hashes das senhas do Windows

Após inserir o comando vamos ter todas as hashes do Windows e podemos salvar essa
saída num arquivo txt que vamos chamar de “xphashes.txt”. Podemos perceber que o usuário
“georgia” apareceu na lista das hashes de senhas. Antes de passar pra próxima fase vamos
explicar a estrutura dessa hash. Fica claro que a hash está dividida em 4 partes separadas por
“:”. A primeira parte é o nome do usuário, a segunda o ID do usuário, a terceira a hash LM
(LAN Manager) e a quarta a hash NTLM (NT LAN Manager). A hash LM é a forma mais
antiga e através dela é possível descobrir a senha correta em formato de texto simples, o
Windows XP armazena tanto ela quanto a NTLM. Já o Windows 7 armazena apenas a
NTLM, que é mais segura.
Feito isso, agora podemos utilizar o arquivo “xphashes.txt” no software John the
Ripper, onde a ferramenta irá percorrer todo o arquivo texto até descobrir a senha correta.
Figura 11 - aplicando o Jhon the Ripper

A hash LM então é dividida em 7 caracteres, como pode ser visto na palavra


“PASSAWOR” (figura 11), outra curiosidade é que todas as letras são maiúsculas, tornando
necessário analisar também a hash NTLM. As hashs NTLM utilizam uma criptografia mais
robusta, o que torna inviável e demorado tentar quebrar as senhas utilizando força bruta, com
isso, podemos utilizar listas de palavras onde contenham senhas comuns. Existem diversos
sites de pentesters que disponibilizam estes arquivos.
Hoje existem sites que disponibilizam, por um certo custo, o processamento em
nuvem para quebrar hashes NTLM e descobrir as senhas. Utilizando o Windows Credential
Editor, podemos fazer o upload desta ferramenta em um sistema alvo, onde o programa irá
retornar a senha em formato de texto, sendo necessário o usuário estar logado no sistema,
para que sua senha esteja armazenada na memória, como podemos ver na imagem abaixo.

Figura 12 - utilizando o WCE no usuário georgia


Capítulo 10 - Exploração de falhas do lado do cliente

Neste capítulo, analisaremos alguns tipos diferentes de ataque que não exigem acesso
direto à rede. Iremos mostrar ataques que têm softwares locais como alvo em um sistema, ou
seja, softwares que não estão ouvindo uma porta.
Como não iremos atacar um computador nem ouviremos diretamente uma porta, e
como precisamos pensar em outra maneira de atacar um dispositivo dentro do perímetro de
uma empresa, devemos selecionar o nosso payload de acordo com esse cenário.
Nossa rede foi configurada de modo que o computador de ataque e as máquinas
virtuais alvo estão na mesma rede, sem firewalls nem outros filtros bloqueando as
comunicações. Usamos o comando reverse_tcp_allports do Metasploit para ajudar a
descobrir uma porta com a qual possamos fazer uma conexão, o exploit MS08-067 do
Windows XP.

Figura 13 - utilizando o reverse_tcp_allports

Como não há nenhum filtro bloqueando o nosso tráfego, a primeira porta que o
Metasploit experimentar, que é a porta 1, resultará no estabelecimento de uma conexão
bem-sucedida, como mostrado na figura abaixo.

Figura 14 - comando exploit gerando uma conexão

Agora vamos voltar nossa atenção na realização de ataques do lado cliente. Em vez de
atacar diretamente um serviço que esteja ouvindo uma porta, criaremos uma variedade de
arquivos maliciosos que, quando abertos em um software vulnerável no computador-alvo,
resultará em um comprometimento.
Softwares como navegadores web, visualizadores de documentos, players de música e
assim por diante estão sujeitos aos mesmos tipos de problema que os servidores web, os
servidores de email e todos os demais programas baseados em rede apresentam.
Usaremos o Metasploit para assumir o controle de uma máquina-alvo ao atacar um
navegador vulnerável usando o módulo Aurora do Metasploit, que é o
exploit/windows/browser/ms10_002_aurora.

Figura 15 - inicializando o aurora

Agora iremos fazer as configurações para que a página maliciosa entre em


funcionamento. Após configurarmos as opções, como SRVHOST, SRVPORT, URIPATH e
LHOST e executarmos o módulo, um servidor web será iniciado em background no
SRVPORT e no URIPATH, url que será acessada, selecionado, como mostrado na figura
abaixo.

Figura 16 - configurando o aurora


Agora após acessar o Internet Explorer no alvo Windows XP para navegar até o site
malicioso é possível ver que a página foi disponibilizada e que uma tentativa de explorar a
vulnerabilidade está em andamento, como mostrado na figura abaixo.

Figura 17 - retorno de sessão iniciada no alvo

Para poder ver tudo o que estiver sendo executado em background no Metasploit
usamos o comando jobs e para interromper uma tarefa que está sendo executada em
background, digitamos kill e o número do processo.

Figura 18 - utilizando os comandos jobs e kill

De modo diferente de ataques em redes, em que vemos uma sessão imediatamente


caso o nosso ataque seja bem-sucedido, ao realizarmos ataques do lado do cliente, devemos
esperar até que um usuário acesse nossa página maliciosa. Mesmo que encontremos uma
maneira de transferir o Meterpreter para outro processo, as sessões poderão ser recebidas a
qualquer momento. Não podemos ficar distraídos em nenhum instante durante o nosso teste
de invasão, pois, do contrário, corremos o risco de perder uma sessão
Agora iremos utilizar um script chamado migrate.rb que permite transferir o
Meterpreter da memória de um processo para outro, que é exatamente o que precisamos nesse
caso. Para executar um script do Meterpreter em uma sessão Meterpreter ativa, utilizamos o
comando run migrate para poder rodar o script.
Figura 19 - utilização do run migrate

Além das informações e parâmetros obtidos através do comando run migrate os


módulos do Metasploit nos permite acessar uma lista de parâmetros avançados. Podemos
acessar esses parâmetros através do comando show advanced dentro do aurora, como
mostrado nas figuras a seguir.

Figura 20 - parâmetros avançados do run migrate


Figura 21 - parâmetros avançados do run migrate

Após acessarmos a lista completa de parâmetros podemos partir para o próximo passo
que é escolher um desses parâmetros para executar algum exploit na nossa máquina alvo. O
parâmetro escolhido foi o AutoRunScript que nos permite executar automaticamente um
script do Meterpreter quando uma sessão for aberta. Para configurar vamos utilizar o
comando set AutoRunScript migrate -f.

Figura 22 - configurando o AutoRunScript

Esse comando utiliza a flag “-f” que é responsável por dizer ao migrate que vamos
efetuar o spawn de um novo processo para o qual será feita a migração. Dessa forma, quando
o navegador morrer ou for fechado a sessão estará a salvo. Feito isso, a máquina alvo deve
acessar o endereço malicioso que foi gerado, que no caso é a URL da figura 20. Após acessar
o endereço, vamos obter uma sessão ativa mostrando que o parâmetro AutoRunScript foi
gerado automaticamente.
Figura 23 - sessão iniciada ao acessar a URL maliciosa

Outra informação importante é a última mensagem do print. Nela podemos perceber


que a migração foi feita com sucesso para o processo. Dessa forma, quando o Internet
Explorer morrer nossa sessão permanecerá ativa, pois o migrate efetuou um spawn de um
processo notepad.exe e se transferiu para ele.
Agora vamos passar para outro contexto e explorar um software para PDF. No caso do
Windows o visualizador de PDF mais utilizado é o Adobe Reader. O módulo do Metasploit
responsável por explorar as vulnerabilidades em PDFs é o windows/fileformat/
adobe_utilprintf.

Figura 24 - exploit do Metasploit para PDF

Depois que acessamos o módulo digitamos o comando show options para mostrar
todas as opções que o módulo nos fornece. Feito isso, podemos perceber que a única opção
que temos é o nome do arquivo malicioso que vai ser gerado, neste caso optamos por deixar o
nome padrão “msf.pdf”. Também utilizamos o payload padrão do Metasploit, que no caso é o
“windows/meterpreter/reverse_tcp” na porta 4444. Enfim podemos utilizar o comando exploit
para criar o arquivo PDF malicioso na nossa máquina alvo Windows XP. A última linha do
print nos mostra que o arquivo foi armazenado como /home/kali/.msf4/local/msf.pdf.
Agora vamos capturar nossa seção utilizando o módulo multi/handler. Através dele
vamos setar o payload como windows/meterpreter/reverse_tcp e também setar o LHOST para
o endereço IP da máquina Windows XP alvo. Feito isso vamos digitar o comando exploit
para iniciar a sessão com a máquina alvo. Ao abrir o arquivo PDF na máquina alvo vamos
receber uma mensagem dizendo que a sessão está ativa (figura 23).

Figura 25 - utilizando o módulo multi/handler

A partir de agora, vamos explorar os exploits do Java. As falhas e possibilidades de


ataques que surgem com recursos que utilizam o java são predominantemente exploradas no
lado do cliente, já diversos dispositivos são capazes de executar aplicações Java, como
computadores de diversos sistemas operacionais, tablets, smartphones e outros dispositivos
que utilizam da ferramenta; os problemas são tantos, que existem especialistas que
recomendam até mesmo a desativação da ferramenta quando não utilizada.
Utilizamos um exemplo de exploit utilizando Java que, assim como o Aurora, instala
um servidor malicioso que explora uma vulnerabilidade de qualquer dispositivo que acesse o
servidor e tenha o Java 7u11 ou anterior.
Figura 26- Configurações do servidor para o exploit Java

Assim que o usuário acessa o endereço IP através do navegador, ele se torna


vulnerável a um ataque que utiliza uma vulnerabilidade do Java com um payload carregado
por uma operação http, que pode ser visualizada na imagem abaixo.

Figura 27- Definição do payload e inicialização do servidor

A utilização de uma falha explorada com os payloads do Meterpreter que utilizam


HTTP e HTTPS são de certa forma eficazes, já que podem passar por filtros de tráfego de
dados e constituem uma requisição legítima, além de ser capaz de reestabelecer conexão com
uma sessão desfeita.

Figura 28- Restabelecimento de conexão com o servidor


Os payloads que utilizam o protocolo HTTP não são os únicos exploits que
exploramos, assim como é possível enviar um executável malicioso em um PDF, podemos
utilizar algo semelhante para o Java, enviando um applet capaz de causar danos ao usuário,
apesar dos navegadores avisarem que o endereço deseja executar algo na máquina do usuário,
alguns usuários ainda permitem que fontes desconhecidas possam realizar esse procedimento.
É possível explorar o exploit o exploit/multi/browser/java_signed_applet, que oferece
essa possibilidade, as configurações são semelhantes aos outros exploits citados, o seu
comportamento pode ser retratado na próxima imagem.

Figura 29- Ataque de um applet Java

Existe uma técnica que se chama browser_autopwn, que se demonstra muito eficaz
para os invasores, já que carrega todos os plugins e softwares utilizados pelo navegador em
um servidor, listando todos os exploits capazes de serem explorados em um cliente que se
conecta ao endereço.
Figura 30- Ataque de um applet Java

Existe uma técnica que se chama browser_autopwn, que se demonstra muito eficaz para os
invasores, já que carrega todos os plugins e softwares utilizados pelo navegador em um
servidor, listando todos os exploits capazes de serem explorados em um cliente que se
conecta ao endereço. Quanto mais extensões e plugins o usuário possuir instalados, mais
vulnerável ele se torna para esse tipo de exploit, já que podem existir exploits em todos os
plugins que ele utiliza. A ideia é sempre utilizar o mínimo de extensões desnecessárias
possível, para não correr tanto risco assim.

Figura 31- Autopwn explorando exploits possíveis


O último exploit explorado por nós foi utilizando um software de reprodução de
áudio, denominado Winamp. Neste software é possível fazer download de skins para alterar a
aparência do programa, algo que pode ser muito atrativo para alguns usuários que desejam
temas personalizados. O Winamp possui uma falha que pode ser explorada justamente nesse
ponto atrativo, utilizando um arquivo de skin malicioso, que pode ser instalado pelo usuário
que recebe um ataque utilizando engenharia social. Imagine um usuário em um fórum que
poste screenshots falsas de um tema que você goste muito; o usuário então, disponibiliza o
arquivo para download e posta um tutorial para a instalação da skin; você segue todos os
passos e utiliza o arquivo malicioso, sem perceber, você acaba de ser alvo de um ataque de
uma pessoa que te influenciou.

Você também pode gostar