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://osintframework.com/

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:

  1. Enumeração NetBios
  2. Enumeração SNMP
  3. Enumeração LDAP
  4. Enumeração NTP
  5. Enumeração SMTP
  6. Enumeração DNS
  7. Enumeração do Windows
  8. 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:

  1. 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.
  2. 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
  3. 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
  4. 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:

  1. Procurar brechas no sistema, seja uma vulnerabilidade no kernel que permite comprometer o sistema
  2. 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
  3. 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
  4. 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://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md

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

https://payatu.com/blog_12

https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Linux%20-%20Privilege%20Escalation.md

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

  1. No inicio é necessário colocar o título, requerente, profissionais, data da realização dos testes
  2. Inserir o Sumário do teste, sobre padrões e normas e até mesmo um pouco sobre a equipe
  3. Introdução do relatório é necessário colocar informações das metodologias usadas, escopo e o contexto do PenTest
  4. Depois catalogar as ameaças de nivel, informativa, baixa, media, alta e crítica
  5. 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
  6. Colocar as ferramentas utilizadas para cada método e quem testou
  7. 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.

Autor

  • joas

    8 years of academic and professional experience, Cyber Security Analyst, Cyber and Information Security Consultant, Information Security, Ethical Hacking and PenTester, OWASP Member and Researcher, Cybrary Teacher Assistant, Microsoft Instructor, Web Developer, Bug Hunter by HackerOne and OBB, Python Developer, has over +440 technology courses and +42 certifications, SANS Member, CIS Member and Research, Infosec Competence Leader in Security Awareness, Cyber Security Mentor, Writer Professional in Blog and Magazines, Exploit Developer, EC-COUNCIL Voluntary Blog Writer and IT Lover.

    Ver todos os posts

Views: 370