Em 2016 tive o primeiro contato com um sistema pentest (Kali Linux) e uma ferramenta (SQLmap) apenas por diversão e sem quaisquer experiência. Então no mesmo ano comecei uma jornada mais profissional como programador em JavaScript e, em 2017, como programador de jogos e de aplicativos mobile. Publiquei alguns jogos e aplicativos na Google Play. Em 2019 desenvolvi minhas primeiras ferramentas de pentesting em Python, mas ainda não me considerava um pentester e desenvolvia apenas por diversão. Lia tópicos de Buffer Overflow e conseguia entender grande parte dos procedimentos, mas não aplicava em termos práticos. No começo de 2022 eu concluí duas certificações práticas, uma da Desec Security (DCPT) e outra da eLearnSecurity (eJPT). A eJPT fiz depois de concluir várias máquinas do TryHackMe. Dias depois resolvi comprar o curso da Offensive Security, o PEN-200, e assim começar a preparação para o exame OSCP. Fiz todas as 6 máquinas do exame em apenas 8 horas na primeira tentativa.
Metodologia de aprendizagem que utilizei?
No meu caso eu comprei o PEN-200 com 60 dias de laboratório, usei 1 mês para completar mais ou menos 41 máquinas e o outro mês que sobrou para documentar todos os exercícios e os 10 laboratórios para garantir meus 10 pontos extras no exame.
Antes de tudo, eu concluí 65 salas no TryHackMe e fiz anotações de coisas que eu ainda não sabia e que podiam me atrapalhar em qualquer exame, por exemplo, no cliente do FTP existem diversas coisas que podem prender muitas pessoas e que vão ser citados posteriormente nesse post.
Salas concluídas no TryHackMe: https://tryhackme.com/p/firedragon9511
Depois comprei o curso PEN-200 com 60 dias de laboratório, no primeiro mês fiz 41 máquinas e o segundo mês usei para documentar todos os exercícios e laboratórios requeridos para garantir os 10 pontos extras no exame. Recomendo muito garantir seus 10 pontos extras, pois se você conseguir fazer 60 pontos no exame os 10 pontos vão te salvar, já que a pontuação mínima é 70 pontos. Depois assinei um serviço chamado Proving Grounds Practice que é um serviço oferecido pela Offensive Security que te dá uma VPN e diversas máquinas realistas para treinar, muitas delas são semelhantes ao exame OSCP e fiz 40 máquinas, logo em seguida agendei e fiz meu exame OSCP.
Link para assinar o PG Practice: https://www.offensive-security.com/labs/individual/
Máquinas que eu concluí no PG Practice abaixo. Lembrando que você deve fazer elas sem ler o passo a passo, se não você vai acostumar com esse hábito de sempre ler o passo a passo quando ficar preso em tal máquina sendo que no exame não tem como fazer isso, no meu caso eu só li um apenas uma vez para escalar privilégios em uma máquina, e outras poucas vezes apenas pedi dicas no Discord da Offsec em relação ao FTP, que no caso eu anotei e citei posteriormente nesse post.
Sempre anote oque você descobrir e ainda não sabia durante os seus estudos e treinos.
Testando uma exploit
- O Wireshark é um dos seus melhores amigos em qualquer exame, sempre use-o caso você tenha dúvida do que está acontecendo na execução de tal exploit;
- Para testar exploits você pode usar o payload “ping [SEU_IP]” e filtrar por ICMP no Wireshark ao invés de inicialmente tentar abrir uma shell ou testar com netcat. Caso você receba os pacotes, significa que sua exploit funcionou. Caso nada aconteça, você pode usar telnet, netcat, wget ou curl para ver se a exploit funciona e pelo menos atinge o seu host.
Lembrando
- Você só pode usar Metasploit em apenas 1 máquina de sua escolha, no meu caso não usei em nenhuma máquina;
- Você pode usar WinPEAS, LinpEAS, PrivescCheck, PowerUp e outros para enumerar o sistema a fim de escalar privilégios, desde que a ferramenta não automatize a exploit;
- Enumere o host ao máximo;
- Dica: Explore o host e se em 2 horas você não encontrar uma forma de abrir uma shell inicial, pule para outro host. Caso consiga abrir a shell em menos de 2 horas, aí você tem mais 2 horas para a escalação de privilégios (caso necessite);
- 24 horas é mais do que suficiente, então explore o sistema como se não tivesse um tempo máximo, no meu caso eu concluí todas as máquinas em 8 horas e com algumas pausas;
- Tenha uma boa noite de sono;
- Deixe uns petiscos e água do seu lado para evitar que a fome te atrapalhe, e, em alguns momentos, você pode dar algumas pausas;
- A prova é monitorada por um supervisor para provar que é você que está fazendo o exame e sem ajuda, isso é bom, pois isso faz com que a certificação seja bastante valorizada pelas empresas já que ela possui um monitoramento e antifraude.
Por algum motivo eu senti que alguém me vigiando o tempo todo pela webcam me ajudou a se concentrar mais no exame, isso fez com que eu enumerasse os hosts o máximo possível. Isso faz até sentido, pois quando alguém está olhando você fazer algo, você quer fazer direito o máximo possível e devagar afim de garantir que dê tudo certo, no caso do pentest o certo é primeiramente enumerar todos as portas de forma granular para depois começar a exploração usando o que encontrou.
Lendo Flags
Você precisa mostrar o caminho completo da flag, o conteúdo e também o IP da máquina:
Linux:
- cat /home/UserABCD/local.txt && ifconfig && whoami;
- cat /root/proof.txt && ifconfig && whoami.
Windows:
- type C:\Users\UserABCD\local.txt && ipconfig && whoami;
- type C:\Users\Administrator\proof.txt && ipconfig && whoami.
Dicas FTP
Dicas relacionadas ao FTP, lembrando que isso me fez desistir e pedir dicas em certas máquinas do curso, do PG Practice e do TryHackMe, mas aproveitei o meu erro para aprender, anotar e compartilhar com todos:
- Sempre use “ls -la” porque o ftp nem sempre mostra arquivos ocultos por padrão;
- Sempre use o modo “binary” ao fazer upload ou download de arquivos binários, exemplo: arquivos exe, arquivos zip e outros, caso contrário o seu arquivo vai ser corrompido;
- Sempre teste as permissões de escrita usando “mkdir” e “put”, não apenas “mkdir”;
- Quando você se conecta ao FTP e digita “dir” às vezes isso trava, tente habilitar o modo “passivo” e tente novamente “dir”.
Active Directory
No meu caso, o conteúdo do curso sobre o Active Directory junto com o aprendizado dos laboratórios de AD foram suficientes para comprometer o AD no exame. Recomendo anotar e explicar todos os comandos que você usar no Active Directory durante seus estudos e treinos. Segue abaixo alguns links que podem te ajudar.
https://lukasec.ch/posts/oscpadcheatsheet.html
https://github.com/Orange-Cyberdefense/arsenal/blob/master/mindmap/pentest_ad_dark.png
Bom aprendizado e bom exame!