29 de maio de 2013

GXPN - GIAC Exploit Researcher and Advanced Penetration Tester



Hoje venci um desafio que havia planejado desde fevereiro: tirar a certificação GXPN.

Enfim, depois de 3 meses de estudo intensivo, mais de 1.400 páginas de material, diversos desafios online vencidos nos Labs via VPN da SANS, incluindo um CTF final, fiz a prova com conteúdo bem puxado, e consegui passar.

Vou contar um pouco sobre esse curso e essa certificação...

O conteúdo abordado por essa formação é o seguinte:

Exam Certification Objectives

ObjectivesObjective Outcome Statement
Accessing the NetworkThe candidate will demonstrate an understanding of how to bypass network access control systems.
Advanced Fuzzing TechniquesThe candidate will be able to develop custom fuzzing test sequences using the Sulley framework.
Advanced Stack SmashingThe candidate will demonstrate an understanding of how to write advanced stack overflow exploits against canary-protected programs and ASLR.
Crypto for Pen TestersThe candidate will be able to attack and exploit common weaknesses in cryptographic implementations.
Escaping Restricted EnvironmentsThe candidate will demonstrate an understanding of restricted environments in Linux and Windows, Desktop restriction techniques, as well as tools and techniques for bypassing them.
Exploiting the NetworkThe candidate will demonstrate an understanding of how to exploit common vulnerabilities in modern networks attacking client systems and common network protocols.
Fuzzing Introduction and OperationThe candidate will demonstrate an understanding of the benefits and practical application of protocol fuzzing to identify flaws in target software systems.
Introduction to Memory and Dynamic Linux MemoryThe candidate will demonstrate a basic understanding of X86 processor architecture, Linux memory management, assembly and the linking and loading process.
Introduction to Windows ExploitationThe candidate will demonstrate an understanding of Windows constructs required for exploitation and the most common OS and Compile-Time Controls.
Manipulating the NetworkThe candidate will demonstrate an understanding of how to manipulate common network systems to gain escalated privileges and the opportunity to exploit systems.
Network Boot AttacksThe candidate will be able to attack and exploit common weaknesses in network boot environments, including DHCP, BOOTP, and PXE.
Python and Scapy For Pen TestersThe candidate will demonstrate an understanding of the ability to read and modify Python scripts and packet crafting using Scapy to enhance functionality as required during a penetration test.
ShellcodeThe candidate will demonstrate the ability to write shellcode on the Linux operating system, and demonstrate an understanding of the Windows shellcode methodology.
Smashing the StackThe candidate will demonstrate an understanding of how to write basic exploits against stack overflow vulnerabilities.
Windows OverflowsThe candidate will demonstrate an understanding of how to exploit Windows vulnerabilities on the stack, and bypass memory protections.
O que posso dizer, é que esse conteúdo REALMENTE é cobrado na prova. Apesar da prova ser do tipo "open book", onde podemos levar as apostilas e/ou anotações, optei por não usar esse recurso por dois motivos:
- deixar que a prova realmente comprovasse pra mim mesmo meu nível de conhecimento;
- é balela a história do open book, prq não serve pra muita coisa, e obviamente só percebi isso quando já estava fazendo a prova.

Agora, por que o open book não ajuda muito? Simplesmente porque o conteúdo não é decoreba, mas sim análise de casos, tráfego de rede, mapa de rede, resultado de debugging e análise do porque um exploit ou shellcode não funcionou, e o que fazer para que funcionem, análise de scripts de fuzzing e etc. Com isso, a maioria das questões apresenta print de telas para que sejam analisados e uma resposta seja dada.

A prova possui um total de 75 questões, com 180 minutos para realização da mesma. O que dá em média menos de 2 minutos e meio para cada questão. Felizmente finalizei com uma 1h30, pois nunca tive muita paciência com provas, ou sei a resposta ou não, afinal a resposta não cai do céu :-)

Voltando ao curso...

Optei fazer na modalidade SelfStudy, na qual recebemos as apostilas pelo correio, impressas, os mp3 das aulas (equivalente à 5 dias de curso, mais o CTF), e os DVDs com algumas VMs e ferramentas para não precisar fazer downloads para as práticas.

Assim que nos inscrevemos, também recebemos as credenciais para acesso via VPN aos labs da SANS e realizarmos as práticas de cada módulo do curso (são 5 ao todos, e o mesmo número de apostilas). E esse acesso dura 4 meses, que é o tempo que temos entre o estudo e a realização da prova. Se não realizar os labs e a prova nesse período, perdemos o acesso e o voucher, e precisamos pagar uma taxa para reagendar a mesma. Por esse motivo, não quis correr o risco e agendei a prova para três meses após receber todo o material e iniciar os estudos.

Cada módulo, ao todo 5, tem uma apostila específica, com teoria, exercícios práticos, e um bootcamp final para reforçar o conteúdo estudado no módulo. Os módulos são:
- Exploração de Redes
- Criptografia para Pentesters
- Python, Scapy e Fuzzing
- Linux Exploitation
- Windows Exploitation

Apenas para constar: os pdfs que estão disponíveis para download na internet, já estão desatualizados e sem uma série de conteúdos, além de não possibilitar o acesso de quem baixá-los aos labs da SANS.

Como o material é bem extenso (quase 1.400 páginas no total), decidi adotar uma estratégia para agilizar e facilitar meus estudos em um período curto. Afinal, o conteúdo além de complexo, é muito extenso para absorver tudo em 3 meses.

Comecei estudando toda a parte teórica, de todos os 5 módulos, e só depois que terminei, fiz as práticas, pois ajudou-me a concentrar esforços em duas fases distintas (só teoria e depois só prática), sendo que a segunda fase (prática) ajudou-me a relembrar e fixar a primeira parte (teoria).

É muito importante conseguir montar um lab da forma correta para que os exercícios dêem os resultados esperados e possamos entender a lógica da coisa toda. Por exemplo, sem ter um Windows XP SP0, um Windows XP SP3, um Windows Seven, um Windows Server 2003 e um Server 2008, ficará difícil entender o porque de um exploit funcionar em um, e não em outro, e ainda pode ter a possibilidade de readequar um exploit e/ou shellcode para funcionar em mais de uma versão de Windows, ou. no caso do Linux, em versões diferentes do kernel.

O investimento é alto, mas o conteúdo estudado compensa. Infelizmente no Brasil não ganhamos tão bem a ponto de tirar o escorpião do bolso e sacar $4,555.00 para bancar um curso e uma prova dessas, mas as vezes essas oportunidades caem do céu, como no meu caso, onde a empresa onde trabalho decidiu custear essa certificação. E como forma de reconhecimento, vi-me obrigado a passar na prova na primeira tentativa.

Uma coisa que achei interessante, foi o diferencial entre a certificação GXPN e a OSCE, onde na primeira é englobado técnicas de exploração tanto de Windows quanto de Linux, enquanto que na segunda, apenas sistemas Windows são explorados. De qualquer forma, a OSCE já está em meu radar para os próximos meses :-)

Agora tenho novos planos de certificações, para poder aprofundar-me em alguns assuntos de interesse pessoal, e outros que além de interesse pessoal, também envolve os interesses de meu empregador. No primeiro grupo, está a GREM, que infelizmente será deixada para o início do ano que vem, enquanto que aquelas que são de meu interesse, mas também envolvem minhas atividades do dia a dia, já estão agendadas para os próximos meses, e pagas.

Os próximos passos são: OSCP, através de treinamento presencial na Black Hat, e a OSCE, logo após a prova da OSCP. Ambas certificações já estão pagas, e só estão esperando a chegada da Black Hat e esse descanso merecido pós-GXPN. E inclusive sei que a GXPN está servindo como base para a OSCP e OSCE, pois sei do alto nível técnico cobrado por elas em suas avaliações. Esse foi o motivo por decidir seguir essa sequência de certificações.

Confesso que nesses últimos meses (de fevereiro à maio), deixei todos os livros de lado, até mesmo qualquer leitura para espairecer a cabeça, e foquei todo meu esforço nas apostilas, que somadas davam em torno de 3 livros bem técnicos e todos em inglês. Esse é outro ponto importante: o inglês precisa estar afiado, pois todo o material, bem como a prova, está em inglês, sem opção alternativa de tradução.

Bem, essa foi minha experiência, e alguns de meus planos futuros. Se alguém precisar de alguma ajuda, ou tirar dúvidas, sinta-se à vontade, que durante meu escasso tempo livre tentarei ajudar.

OBS1: a prova da GXPN tem 75 questões e é necessário acertar pelo menos 66% da prova para passar. Isso dá 50 questões.

OBS2: não colocarei meu score aqui, pois mesmo que eu diga que tirei 99% vai ter gente falando besteira, dizendo que não sei nada porque não tirei 100% ;-)

15 comentários:

  1. Tenho uma dúvida sobre o seu background. Ele foi muito necessário para a realização da certificação?

    Digo isso pq já trabalhei com pentest uma grande empresa e, apesar de estudar as técnicas, metodologias e ferramentas, sentia que a minha falta de experiência em infraestrutura me prejudicava em vários pontos. Seja eles em descobrir falhas, ou até mesmo para consertar pontos críticos.

    ResponderExcluir
  2. Olá Enry! Foi necessário sim, prq o curso supões que vc tem um conhecimento avançado em redes (o equivalente ao CCNP da Cisco), na parte de infra, que já saiba o mínimo de programação, fundamentos de criptografia, conhecimento de arquitetura e S.O.
    Tanto que eles indicam que se faça primeiro outros cursos da SANS como base preparatória para esse. Os cursos como pré-requisito são:
    SEC504: Hacker Techniques, Exploits, and Incident Handling
    SEC560: Network Penetration Testing and Ethical Hacking
    SEC610: Reverse-Engineering Malware: Malware Analysis Tools and Techniques

    Essa questão da necessidade de conhecimento que vc cita, é justamente uma preocupação minha na formação de profissionais. Justamente por isso, coloquei em minha formação de profissionais de pentest, o curso de hardening, que fala da segurança no aspecto da infraestrutura do cliente.

    [ ]'s

    ResponderExcluir
  3. Parabéns Luiz que bom que deu certo o seu Certificado. PARABENS....

    ResponderExcluir
  4. Parabéns pela certificação, raríssima aqui no Brasil, aliás profissional GIAC no Brasil contam-se nos dedos, tem empresas patéticas que nunca ouviram falar, o material que rola na internet é o de 2011 e o 2012, eu tenho o vídeo on demand inclusive, que é raro, porque participo de um grupo no skype que comprou dois cursos, o de 2011 e também compramos o 575 (esse jamais vazou), o grupo estava discutindo se vai adquirir o 642, já que uma forma geral os cursos da SANS são bons, mas não valem U$ 4000,oo até porque 99% dos participantes não compram do próprio bolso.

    onde você realizou a prova?

    Em um mês realizo o GCIH e provavelmente meses depois o GCIA, GXPN não está muito no meu radar, mas OSCP está.

    ResponderExcluir
    Respostas
    1. Fred, muito interessante a iniciativa desse grupo. Já havia ouvido falar de grupos assim, e acho interessante, por possibilitar o acesso ao material que tem um custo bem alto mesmo. No meu caso mesmo, quem bancou foi a empresa, prq do próprio bolso isso seria inimaginável... a não ser que eu bancasse só a prova...rs. Aqui no RJ fiz a prova na Infnet, por ter uma boa estrutura e ser perto de casa e do trabalho.
      [ ]'s

      Excluir
  5. Parabéns, Luis! Admiro quem tem essa força de vontade e esse foco nos estudos!

    Você usa alguma técnica específica pra estudar? Vi ali que você optou por ler toda a parte teórica e só depois partir para a prática, isso já é interessante. Mas você usa alguma outra técnica?

    Digo isso porque possuo um sério problema em manter o foco nos estudos durante muito tempo.

    Abração e parabéns novamente!

    ResponderExcluir
    Respostas
    1. Derik, utilizo algumas técnicas sim, que ajudam um pouco mais. por exemplo, ouvir música barroca enquanto leio os textos, pois ajuda a estimular ambos hemisférios do cérebro.
      Estudar por 60 min. Separando em dois período de 30 min, onde 20 minutos eu estudo e 10 reviso o que foi estudado. Isso ajuda a fixar o conteúdo.

      Abraço e obrigado pelos parabéns!

      Excluir
  6. Congratulations Pentester ! Parabéns professor realmente não é mole, qual a parte que vc achou mais cansativo na prova, eles abordam metodologia de outras instituições ou é só restrita somente GXPN , demorou para chegar o material selfStudy.

    ResponderExcluir
    Respostas
    1. Nilson, não é abordada nenhuma metodologia na prova. O foco é muito técnico, e não metodológico. Eles não se importam com a forma com que vc faz o pentest, mas sim com as técnicas que pode usar para chegar ao seu objetivo.

      O material chegou muito rápido, por volta de uma semana depois de tudo pago.

      E a parte mais complicada pra mim foi a de criptografia, acredito que porque não seja um assunto que muito me agrade e justamente por isso dei menos importância nos estudos :-(

      O restante, como são assuntos com que lido no dia a dia, ou tem a ver com reais interesses meus, alem de ter muita prática, foi bem mais tranquilo.

      Excluir
  7. Parabéns Luiz! ganhamos todos com isso, você como professor, profissional e nós como alunos.

    ResponderExcluir
  8. Gostei do "ouvir musica barroca"!! parabéns pela certificação! Pelo que pude perceber foi tudo muito técnico, dai sua opção pelo não "open book" abs!!

    ResponderExcluir