Como aluguei o OSCP



Meus colegas e eu fizemos o curso OSCP e passamos no exame. Neste artigo, descreverei em detalhes como o exame é aprovado, quais são as armadilhas e se o jogo vale a pena.

Como tudo começou


Meu colega c4nhá dois anos, ele disse que deveríamos aprovar a OSCP e eu concordei, mas, como costuma ser o caso de boas idéias, pontuamos essa ideia.

Um ano depois, nossa empresa teve a oportunidade de liberar treinamento sobre coisas úteis para os funcionários (infelizmente, meu entendimento não coincide com os cursos de administração e sommelier ainda se recusam a me pagar). Pela gloriosa tarefa de passar OSCP puxadoGolovnyaD, disse que nossas desculpas sobre o emprego são mais ou menos e que precisamos prosseguir.

E nós começamos.

O que sabíamos sobre OSCP


Sabíamos que o OSCP consiste, de fato, em 3 partes: material teórico (daqui em diante vou chamá-lo em pdf), acesso a um laboratório com máquinas virtuais (daqui em diante vou chamar de laboratório) e um exame.

O começo do caminho


Como se viu, o acesso ao laboratório pode ser comprado por 30, 60 ou 90 dias, custa US $ 999, US $ 1199, US $ 1349. Como não queremos dedicar todo o nosso tempo livre apenas ao OSCP, e a diferença entre 30 dias e 90 é de apenas US $ 350), escolhemos o acesso por 90 dias.

Em 9 de outubro de 2019, paguei o curso, esperando me divertir por 3 meses, como eu estava errado, me diverti por 5 meses. E aqui está o porquê: a

primeira configuração: você não pode começar o treinamento amanhã. No meu caso, a data de início mais próxima era 20 de outubro (como dizem nos fóruns, o tempo médio para começar após o pagamento é de 2 semanas).

Em 9 de outubro, eles enviaram um pacote de teste (pacote de conectividade) para conectar-se a uma VPN. A julgar pelos seus testes, não tive problemas com a conexão VPN (como se viu, eles fizeram o chamado teste, depois eu digo). Em seguida, eles enviaram um link para sua assembléia Kali (na aparência não é diferente do habitual), que é especialmente preparado para a passagem.

Início do curso


Formalmente, o curso começou às 03:00 do dia 20 de outubro, mas uma carta com o material do curso chegou às 03:09 (notei essa discrepância apenas agora quando estava escrevendo o artigo). A carta com os materiais do curso contém links para:

  • 380 pages pdfku
  • imagens de vídeo para este pdfk
  • Pacote de conectividade VPN

E aqui nos deparamos com uma segunda configuração: os links de download são válidos por 72 horas e, se não tiverem tempo para fazer o download, pedirão US $ 100 adicionais, após o que eles cuidadosamente dizem fazer um backup e inserir uma piada: " Lembre-se do ditado sábio:" Existem dois tipos de pessoas. Aqueles que fazem backup e aqueles que ainda precisam perder tudo em uma falha no sistema. »
Além disso, em todos os fóruns, é recomendável iniciar o curso com as tarefas do pdfk. Todos nós fizemos exatamente isso.

Tarefas do PDF


As tarefas do pdfk precisam ser realizadas para aprender novas ferramentas e técnicas, lembrar como usar as ferramentas e, possivelmente, obter 5 pontos extras no exame. Do surpreendente: em pdfk, não há uma palavra sobre Burp Suite e PowerShell Empire (deveria ter sido adicionado na atualização de fevereiro).

O conduz sua história do básico: somos ensinados a pesquisar no Google, usar nc.exe (netcat), tcpdump e wireshark e outras ferramentas que têm mais probabilidade de estar relacionadas à engenharia de sistemas do que à segurança. Somente na página 113 de 380 nos familiarizamos com o nmap!

Também somos ensinados a usar ferramentas como o OpenVAS, que não podem ser usadas no exame. Além disso, os exemplos costumam usar o meterpreter, o que também é proibido (pode ser usado apenas em uma máquina). Em geral, eu ainda não entendi o que causou essa proibição no meterpreter, é claro que você pode proibi-lo de aumentar com sua ajuda, mas seria conveniente manter o inverso com vários consoles.

Torna-se interessante na página 148, onde o estouro de buffer começa, e aqui peguei o problema com a conexão VPN. Como se viu, meu ISP mata o tamanho dos pacotes, e a VPN no laboratório é criada usando UDP e meus pacotes com estouros de buffer simplesmente não rastejam e desaparecem. A solução é simples - corrija a configuração adicionando as linhas:

tun-mtu 1492
mssfix 1370

Mas é uma pena que essas verificações não sejam realizadas pelos organizadores do OSCP, porque em seu fórum, muitos reclamam. Perdi 5 horas e muitos nervos sobre isso (alcançando a solução, encontrei um monte de ramos no fórum sobre isso).

Para gravar estouros de buffer e fazer todo tipo de experimentos com o Windows, eles nos fornecem uma máquina virtual dentro do laboratório, isso é bastante conveniente. Durante todo o curso, não instalei uma única máquina virtual (uma vez que tentei instalar o Windows XP SP2, mas não encontrei um torrent funcionando).

Em geral, as tarefas para estouros de buffer são muito bem escritas (para Windows e Linux), seria legal fazer isso em etapas, ensinadas nas universidades. O curso OSCP obviamente diz que ignorar o DEP e o ASLR não está incluído no curso.

Eles nos dizem como preparar explorações, transferir arquivos, falar sobre escalação de privilégios, mas com isso ainda jogamos o suficiente no laboratório, então tudo bem.

Em seguida, vem o bloqueio de ataques aos usuários (ataques do lado do cliente), onde eu peguei o problema com uma máquina Kali “especialmente preparada”, que tinha uma versão mais recente do Java e meu Java Appet não funcionava na máquina de teste. Outras 5 horas pesquisando e resolvendo o problema por conta própria e, é claro, há um tópico no fórum sobre isso)

Geralmente, tudo pode ser encontrado no fórum, este é um local muito útil se você estiver preso em um beco sem saída, mas eu entendi isso apenas no final do curso.

Em seguida, vêm os ataques na web - XSS, LFI, RFI, injeção de SQL e muito mais. Está escrito claramente e bem, dê exemplos de cutucadas. Eles falam sobre o sqlmap, que também não pode ser usado no exame, mas é claro que é útil saber.

Outros ataques a senhas (força bruta e obtenção de hashes para Windows e Linux) são muito estendidos para mim; deixei algumas tarefas para mais tarde (e já as fiz dentro do laboratório). No final, há uma história sobre o metasplit e como usá-lo, em grandes detalhes, ao escrever seu próprio módulo. Ele também fornece um exemplo de invasão a uma empresa fictícia que usa muitas das técnicas descritas (leva 34 páginas).

Em geral, de todos os pdfs no caso de 100 páginas (e há um grande número de capturas de tela). Levei duas semanas para lê-lo e concluir as tarefas (mas não tinha pressa).

- , , , .


Resolvendo o laboratório, decidiu-se não usar o Metasploit e o Meterpreter, porque eles não podem ser (apenas possíveis uma vez) utilizados no exame.

Laba consiste em aproximadamente 60 máquinas virtuais, todas as máquinas são divididas em 4 sub-redes (rede pública, rede de desenvolvedores, rede de departamentos de TI, rede de administradores). Inicialmente, o acesso é apenas na rede pública (na verdade, o acesso é em todas as redes, não podemos reverter as máquinas de uma rede não pública). No laboratório (escrevo sobre os eventos antes da atualização de fevereiro), todas as máquinas são bastante antigas, o Windows mais recente é o servidor Windows 2012R2 (bastante Windows XP), as máquinas Linux são o Ubuntu 14 (o Ubuntu 8 também estava no laboratório), o Centos 7 (o Centos 5 também conheceu )

Em teoria, todo o laboratório deve ser resolvido usando vulnerabilidades publicadas antes de 2016, mas eu não estabeleci essas restrições.

Laba (acesso não privilegiado estava ativado)


Em geral, o laboratório corresponde bem ao que foi declarado em pdfk. Em termos de obtenção de acesso não privilegiado, você precisa usar várias técnicas (incluindo ataques a clientes), coletar senhas de máquinas quebradas e reutilizá-las, iniciar brutos e assim por diante. Provavelmente, o pior tópico é injeção SQL e injeção cega - eles nunca foram vistos antes.

O algoritmo para inicialização de acesso foi em toda parte como na vida:

  1. Enumeração de portas e serviços
  2. diretórios brutos para a web
  3. definindo produtos e versões
  4. explorar pesquisa e modificação

Algumas máquinas exigem a criação de suas próprias explorações com uma caixa preta, mas nada complicado - LFI / RFI. Acima de tudo, fiquei feliz por quase não haver carros da categoria CTF, onde há uma imagem, dentro da qual também há uma imagem, dentro da qual um arquivo zip está oculto e assim por diante.

Laba (escalonamento de privilégios)


Para mim, foi a parte mais interessante e demorou a maior parte do tempo (no início).

janelas


Nas máquinas Windows, usei esses conjuntos de divisões,

mas em algumas máquinas Windows todas as vulnerabilidades do “kernel” foram corrigidas especialmente e tive que descobrir como me levantar. Existem carros para todos os gostos, serviços, startups, tarefas programadas, software instalado. O software instalado é obviamente uma grande falha, porque é óbvio que os carros estão preparados e, se apenas um aplicativo estiver instalado no sistema, você poderá escalá-lo.

Linux


Para o Linux, é claro, você sempre pode usar as vulnerabilidades do kernel, a vaca suja amada de todos trabalha em metade das máquinas, eu usei esta versão , embora ela esteja presente em quase todas as máquinas do laboratório, cria com êxito um usuário com acesso ssh.

Mas em quase todos os lugares onde você pode se deparar com vulnerabilidades na configuração, o LinEnum ajuda aqui e, para preguiçosos linux-smart-enumeration

Em geral, não vale a pena abusar das vulnerabilidades do kernel no laboratório, se você deseja se preparar para o exame, é melhor usar as vulnerabilidades de configuração, porque todas as máquinas do exame estarão com kernels novos e atualizações instaladas (pelo menos eu as adquiri).

Pós-plotagem no laboratório


Deixei parte da pós-exploração para mais tarde, mas depois de coletar todas as senhas e visualizar todos os bancos de dados, arquivos de configuração e logs, você pode acessar facilmente muitas máquinas (especialmente em uma rede não pública).

Muitas máquinas quebram a cadeia, é importante entender isso, especialmente para ataques a clientes, se o carro for chamado de correio, então talvez alguém se apegue a ele como um cliente de email) e, se HELPDESK, abrir bilhetes.

Os quatro grandes


Existem 4 carros no laboratório que são considerados os mais complexos e alguns recomendam deixá-los no final, são eles: Dor, Sofrimento, Gh0st e Humilde. Eu sabia da presença deles desde o começo, mas não os fugi especificamente ou não os procurei. Quando decidi voltar para eles, dois dos quatro que eu já havia quebrado.

Minha impressão deles:

  • A dor é um carro bacana, complicado tanto na obtenção da concha inicial quanto na elevação.
  • Sufferance - uma complexa caminhada inicial, em várias etapas, obtive algo semelhante no exame. Impulso simples.
  • Gh0st - o início e a inicialização foram como máquinas CTF, mas uma das mais belas melhorias em todo o laboratório.
  • Humilde - sem dúvida a caminhada de inicialização mais complexa do laboratório, mas um simples impulso.

Em geral, esses são carros legais, e tenho quase certeza de que, se você os quebrou em seu laboratório, você passará no exame sem problemas, eu quebrei o Humble por mais tempo do que fiz no exame.

Meu top incluiria:

  • A prova de Sherlock acontece em alguns minutos, e você pode ficar sentado por um longo tempo para reverter.
  • beta é uma máquina muito vital, tanto na obtenção de acesso primário quanto em atualizações (bash limitado).

Resultados laboratoriais


Em geral, o laboratório causou uma boa impressão, quebrei todos os carros que peguei (cerca de 45 carros).

Em geral, lembrei-me de muitas coisas que nem sempre são usadas.

Preparação para exames


Alguns dias antes do final do acesso ao laboratório, decidi que era hora de me inscrever para o exame. Aqui eu estava errado, é melhor fazer isso com antecedência. A data mais próxima no dia de folga era apenas um mês depois, em 23 de fevereiro (e depois às 9 da manhã).

A conclusão e a configuração são três - se você quiser fazer o exame em um horário conveniente e se inscrever para o fim de semana com antecedência.

Também comecei a escrever um relatório no laboratório (preciso descrever 10 carros, se você quiser obter 5 pontos extras), o exemplo padrão do relatório é muito inteligente, então comecei a usá- lo. Para uma descrição detalhada, escolhi carros interessantes ou casos em que você obtém a raiz imediatamente.

Eu precisava tirar de 10 a 15 capturas de tela adicionais, por isso recomendo ter acesso ao laboratório enquanto escrevia este relatório.

Preparação para exames. Treinamento. Binarismo


No exame, um dos componentes está escrevendo uma exploração para estourar o buffer, dá 25 pontos e, sem saber como fazê-lo rapidamente e bem, ir para o exame não faz muito sentido, vale a pena tentar.

Boas pessoas já montaram um conjunto de softwares para praticar.

Decidi cerca de 7 peças e, se eu passasse duas horas na primeira, decidi a sétima em 20 minutos, na verdade, com a velocidade de escrever código e digitar comandos. Um algoritmo que não me falhou:

  1. estamos eliminando a queda com as letras A (no exame, essa etapa já será feita para nós)
  2. procurando deslocamento, normalmente através de pattern_create.rb e pattern_offset.rb
  3. verifique o comprimento, altere normalmente A para B no lugar certo e depois de B insira muito C para ver o tamanho possível da carga útil sem pular no buffer
  4. ( \x00, 99% )
  5. “jmp esp” ( , )
  6. ,
  7. ( 20 — \x90)

. .


Em um dos procedimentos de exame vraytaps , encontrei esta foto:



Esta imagem mostra quais carros no hackthebox.eu parecem carros do exame (o carro do cérebro não parece nada, eu recomendo não treiná-lo). Para ativar os carrinhos de mão, é necessária uma assinatura paga (10 dólares por mês, não se esqueça de cancelá-la imediatamente ).

Passei 8 horas e decidi por 10 máquinas, alternando entre Windows e Linux. E ele decidiu que é o suficiente para mim, mas, provavelmente, aqui, como com o estouro de buffer, é necessário trazer para o automatismo. Esses carros são mais simples que os carros do exame, pelo menos em termos de escalonamento de privilégios (algumas cópias de carros do laboratório, não sei quem emprestou de ninguém).

Preparação para exames. Treinamento. Escalonamento de privilégios


Você pode treinar nas mesmas máquinas com hackthebox.eu, mas em geral será suficiente ler vraytapy para entender quais técnicas existem; existem exemplos de todas as técnicas que você pode precisar no exame.

Preparação para exames. Parte organizacional


Para passar no exame, você precisará de:

  1. passaporte estrangeiro (seu nome e sobrenome devem ser escritos em inglês)
  2. Webcam
  3. internet estável

É bom ter mais:

  1. Internet de backup (usei celular)
  2. um computador sobressalente (eu tinha um laptop sobressalente ao meu lado totalmente configurado para fazer um exame)
  3. Instantâneo da VM com Kali
  4. cópia da VM com Kali (coloquei uma cópia no disco rígido, a segunda no disco rígido externo)

Exame!


O exame é considerado em período integral (Proctored Exam) e, portanto, é iniciado 15 minutos antes do horário selecionado. Você se conecta a uma plataforma web especial, vasculha suas telas. Em um bate-papo por texto, elas começam a fazer tarefas e perguntas:

  1. mostre o passaporte pela webcam
  2. mostrar que ninguém está na sala
  3. fornecer resultados de script de teste para conexão

Então eu tinha um arquivo e quando tentei copiar um novo pacote de usuário final para uma máquina virtual com Kali, ele caiu. Eu estava pronto para isso, revirei a máquina virtual, copiei o pacote, o iniciei e comecei a esperar as 9 da manhã.

Eu tenho acesso às 9:01.

Eu tinha um plano de ação simples:

  1. iniciar numeração de serviços
  2. faça um carro para o estouro de buffer em 1 hora
  3. faça um carro por 10 pontos em 1 hora
  4. faça o primeiro carro por 20 pontos em 2 horas
  5. faça um segundo carro por 20 pontos em 2 horas
  6. faça um carro por 25 pontos em 3 horas

Como você pode ver no meu plano, levei 9 horas para passar no exame, mas não foi conforme o planejado desde o início :) Esqueci de levar em conta um importante fator inibidor - anotar em etapas tudo o que foi feito com todas as capturas de tela do relatório.

O resultado final que obtive é o seguinte:

  1. estouro de buffer - 2,5 horas. Eu perdi uma hora, porque não notou alguns caracteres ruins, outros 30 minutos para relatórios
  2. carro em 10 a 30 minutos: 10 minutos de hackers, 20 minutos de screenshots
  3. primeiro carro em 20 a 2,5 horas: 1,5 horas de hacking, capturas de tela e relatório de 40 minutos, intervalo de 20 minutos
  4. segundo carro em 20 - 2 horas: 1,5 horas de hacking, capturas de tela de 30 minutos e relatório.
  5. carro por 25 a 3,5 horas: 3 horas de hackers (com duas pausas), 30 minutos de capturas de tela e relatório

Em geral, o exame é muito mais interessante que os laboratórios, as vulnerabilidades são todas bastante recentes - 2018-2019. Os aprimoramentos não estão em toda parte através das vulnerabilidades do kernel.

Fiquei sentado por mais tempo, esperando a escalada de privilégios, todas as conchas não privilegiadas foram recebidas em 10 a 30 minutos.

O exame fez muitos caminhos falsos que não levarão ao sucesso. Se tudo é facilmente descartado para o shell de inicialização (por exemplo, uma exploração pelo estouro de buffer no Windows XP SP2, embora o próprio serviço esteja sendo executado no Windows 10), então na atualização eu fiquei preso nesses caminhos falsos algumas vezes. O principal aqui é dizer a tempo que vale a pena mudar esse vetor e escolher um novo.

Após 11 horas, terminei o exame, quebrando tudo e fui beber alguns copos de cerveja (apenas alguns, já que no dia seguinte ainda temos que escrever um belo relatório formal).

Escrevendo e enviando um relatório


Peguei o modelo no mesmo repositório onde o modelo para os laboratórios e preenchi em 4 horas.Em

seguida, a diversão começou com para onde enviá-lo e como. Primeiro, você precisa criptografá-lo usando 7z com uma senha, a senha não é aleatória e seu ID está no sistema (5 dígitos, voa em 0,3 segundos na CPU). Pesquisei informações por um longo tempo sobre onde colocar o relatório no laboratório no mesmo arquivo ou em outro (Resposta: você precisa colocá-lo no mesmo arquivo). Então, me deparei com o fato de que o formato para definir a senha no arquivo 7z, o sinalizador -p, após o qual a senha deve ser escrita juntos, ou seja, algo como -pPassword. De fato, todas as etapas estão descritas no guia , você só precisa procurá-las.

O arquivo resultante deve ser carregado no site, obter um link e enviar esse link para correio especial! Por que essas dificuldades em 2020 são um mistério para mim.

Depois de algumas horas, você receberá uma carta de resposta que: “Recebemos o seu link, mas não verificamos se ele possui um arquivo normal, se está descriptografado e se contém os dados necessários. E que informaremos os resultados do exame em 10 dias úteis ".

Total


Exatamente uma semana após o exame, no domingo, 1º de março, recebi uma alegre carta de que compilei o arquivo corretamente:



Depois disso, preenchi os dados para me enviar um certificado físico e um cartão de certificação OSCP.

Quem precisa dessa certificação?


Eu obtive a seguinte lista (classificada pela significância do recebimento e pelos requisitos deste certificado):

  1. Alunos de 4-5 anos. Para eles, essa é uma prática muito legal.
  2. aqueles que decidiram mudar para a segurança de indústrias relacionadas. Tudo é descrito em um bom nível, muitos exemplos, há algo a aprender.
  3. Empregador. O certificado mostra que uma pessoa sabe alguma coisa e sabe como fazer algo com as mãos (em nossas vagas, indicamos isso como um plus).
  4. pessoas do setor que desejam atualizar / testar seus conhecimentos
  5. pentesters experientes. Talvez uma bela crosta permita que eles se tornem mais interessantes para os empregadores.

Planos adicionais para aprovação do OSWE (Offensive Security Web Expert). Quanto a mim, ele é mais interessante que o OSCE (especialista em segurança ofensiva certificado). E para aqueles que estão interessados ​​em ler sobre os vários tipos de certificação no campo da segurança da informação, escrevemos um artigo separado .

All Articles