Um PenTest tem como objetivo testar vulnerabilidades de um ambiente e ver até aonde você consegue comprometer. Simulando um ataque real dependendo da ocasião.
Existe 3 tipos de PenTest, sendo esses:
1) Black Box: Simula um ataque real, aonde o profissional só vai ter geralmente o nome da empresa ou apenas a url do site
2) White Box: O profissional tem conhecimento total do ambiente a ser testado
3) Gray Box: O profissional tem conhecimento parcial do alvo, sabendo talvez alguns ips e nada mais do que isso.
Nesse exemplo vamos fazer um PenTest em um laboratório simulando um ataque real.
Baixe e configure os laboratórios:
Windows 7 e Server 2008 ou 2012
Linux de sua preferência, pode ser até mesmo laboratórios como Metasploitable ou PenTest Lab
Utilize um software de virtualização como desejar, seja vmware ou virtual box
Agora vamos brincar um pouco de PenTest
Temos o nosso cliente X, definimos um contrato comercial e técnico, definimos também o Escopo, também temos um cronograma e agora vamos efetuar os testes.
Fase de Reconhecimento
Vamos entrar na parte de reconhecimento que é essencial em um PenTest, para isso vou utilizar as seguintes ferramentas:
Google Hacking
Bing
Maltegoce
Whois
Recon-ng
TheHaverster
SpiderFoot
Caso seja um website é essencial a utilização dessas ferramentas para levantar mais informações sobre o alvo e conhecer devidas informações que possam ser útil futuramente em um PenTest
Podemos efetuar a busca de sistemas operacionais no alvo, para isso você pode utilizar ferramentas como
Shodan
Censys
Nmap
Assim você pode procurar sistemas dentro de um dominio ou realizar algum tipo de varredura a procura de saber o serviços e o tipo de sistema operacional que está sendo utilizado por trás daquele alvo.
Geralmente as empresas que utilizam hospedagem de site já faz com que descartamos qualquer tipo de varredura no ip do servidor do website, mas podemos pesquisar mais informações sobre o alvo por meio do Maltegoce e outras ferramentas de OSINT, para ter alguma informação relevante da organização e até mesmo achar funcionários que trabalham na empresa para tentar técnicas de comprometimento por meio de engenharia social.
Mandando e-mails para o RH, funcionários e até mesmo alguém do TI de uma forma que ninguém desconfie que é um e-mail falso, assim você pode utilizar de IP Logger para ter acesso ao ip da vítima ou até mesmo acesso aos tipos de serviços que ela utiliza.
Por isso a parte de reconhecimento é essencial para que você possa ter mais de uma possibilidades de comprometimento na hora da exploração, então quanto mais informações você obter e realizar reconhecimento de formas mais profundas, ai sim, fica mais fácil de analisar um ambiente e explorar mais ainda.
Consulte no Github as ferramentas de OSINT e de Footprinting para você efetuar analises com outras ferramentas.
https://github.com/search?q=osint
https://securitytrails.com/blog/top-20-intel-tools
Varredura e Enumeração
Então na hora de realizar uma varredura para buscar informações do alvo, seja serviços de rede, sistema operacional, tipo de máquina se é um servidor ou uma máquina comum, quais portas estão abertas e para qual finalidade geralmente é utilizado aquele servidor e os mecanismos de segurança por trás.
Então usando um Nmap com comandos mais avançados e tentativas de utilizar pacotes fragmentados para coibir um firewall e afins.
Então geralmente utilizado ferramentas como Nmap ou Nikto, você consegue obter informações do alvo caso seja um host ou uma rede ou e até mesmo um website.
https://hkh4cks.com/blog/2018/01/22/common-enumeration-tools/
Você pode fazer a enumeração que é a fase crucial antes da exploração que permite
- Nomes de usuários, nomes de grupos
- Nomes de host
- Compartilhamentos e serviços de rede
- Tabelas IP e Tabelas de Roteamento
- Configurações de serviço e configurações de auditoria
- Aplicativo e banners
E você pode enumerar serviços como por exemplo:
- Enumeração NetBios
- Enumeração SNMP
- Enumeração LDAP
- Enumeração NTP
- Enumeração SMTP
- Enumeração DNS
- Enumeração do Windows
- Enumeração UNIX / Linux
Para mais detalhes: https://resources.infosecinstitute.com/what-is-enumeration/#gref
Exploração
Agora vamos para a parte de exploração, assim depois de reunir o maior número de informações o momento de comprometer um sistema é agora.
Caso o sistema seja um Windows, recomendo:
- Procurar brechas no sistema alvo, geralmente a versão do sistema pode conter exploits que explora algum serviço vulnerável, exemplo: Windows 7 (Eternalblue e Bluekeep), realizando uma breve varredura do alvo você vai saber se tem ou não vulnerabilidade.
- Verificar o tipo de softwares que o alvo utiliza, exemplo: Uma versão do adobe reader vulnerável, uma versão java vulnerável, falta de aplicações de patches, algum serviço de rede sem nenhuma configuração, versão de pacote office e até mesmo softwares utilizados constantemente
- Analisar a forma que o usuário leva a sério a segurança, assim você pode gerar um payload malicioso para infectar o alvo e comprometer o sistema operacional dele
- Caso tenha conhecimentos avançados você pode tenta explorações mais profunda como um Buffer Overflow.
https://github.com/yeyintminthuhtut/Awesome-Advanced-Windows-Exploitation-References
https://www.youtube.com/watch?v=fgoZcGtT6SY
https://www.youtube.com/watch?v=tFoXTeABfHE
https://www.youtube.com/watch?v=CBTlIluX41w
https://www.youtube.com/watch?v=y_zCF0q2KRY
https://www.youtube.com/watch?v=4QCA8smosjA
https://www.youtube.com/watch?v=v3xn9MDmTaY
Caso seja um Linux, recomendo:
- Procurar brechas no sistema, seja uma vulnerabilidade no kernel que permite comprometer o sistema
- Fazer a varredura no sistema a procura de serviços e portas abertas para efetuar uma varredura e procurar vulnerabilidades, por exemplo: Se a porta 21 que é a de FTP estiver aberta que esteja rodando um serviço de VSFTPD, você pode efetuar uma varredura mais profunda para verificar se esse serviço tem alguma vulnerabilidade ou você pode pegar só a versão do serviço e procurar um exploit para explorar tal vulnerabilidade
- Analisar a forma que o usuário leva a sério a segurança, se ele fez as mitigações de riscos no sistema ou não, além dos mecanismos de segurança que ele implementou e as regras de firewall
- Efetuar a explorações mais avançadas como Buffer Overflow e tentar comprometer o alvo de alguma maneira.
https://www.youtube.com/watch?v=_LtZ0w_X1bE
https://github.com/SecWiki/linux-kernel-exploits
https://github.com/xairy/linux-kernel-exploitation
https://www.hackingarticles.in/ssh-penetration-testing-port-22/
https://github.com/RustyShackleford221/OSCP-Prep
Pós Exploração
A pós exploração é necessário quando você consegue uma shell com poucos privilégios ou até mesmo limitada, então para isso é necessário realizar técnicas para realizar bypass dessas limitações, vamos conhecer?
Windows
- Procure métodos para explorar o WindowsUAC e garantir acesso administrativo
- Migrar de uma simples shell para um Meterpreter
- Enumerar processos e migrar um processo para outro
- Quebrar a senha de usuários windows
- Utilizar o powershell para uma exploração mais eficiente
https://medium.com/@rahmatnurfauzi/windows-privilege-escalation-scripts-techniques-30fa37bd194
Linux
- Procure métodos para explorar o chroot ou para adquirir acesso root ao sistema
- Procure métodos para realizar o bypass de uma shell limitada
- Quebrar a senha de usuários linux
- Enumerar informações do sistema
Esses são alguns conceitos de pós exploração, mas geralmente em um PenTest só tendo uma shell já é necessário para colocar em um relatório, porém é mais engraçado quando você consegue explorar mais ainda o sistema.
Relatório
Algumas ferramentas geram uma relatório automático, já outras você precisa gerar manualmente até mesmo utilizam ferramentas do próprio kali como o Dradis ou Faraday
Eu recomendo a utilização do Dradis por ser uma ferramenta ótima para registrar o seu PenTest e gerenciar os relatórios, seja de linha de tempo como até mesmo o report final.
Em um relatório é necessário
- No inicio é necessário colocar o título, requerente, profissionais, data da realização dos testes
- Inserir o Sumário do teste, sobre padrões e normas e até mesmo um pouco sobre a equipe
- Introdução do relatório é necessário colocar informações das metodologias usadas, escopo e o contexto do PenTest
- Depois catalogar as ameaças de nivel, informativa, baixa, media, alta e crítica
- Inserir as informações separadas pela parte de reconhecimento, varredura, exploração e pós exploração e catalogar o nível de cada um
- Colocar as ferramentas utilizadas para cada método e quem testou
- Fazer um relatório menos técnico, mais resumido, com gráficos e conceitos mais leigos para apresentar ao pessoal que não entende muito da área.
Esse é o básico de um relatório, mas recomendo consultar mais informações de como montar um relatório de PenTest.
Views: 370