
Ferramenta automatizada de exploit ret2win para desafios CTF. Encontra o offset da pilha, gera payloads, suporta exploração remota e anexa GDB para depuração de binários x86.
____ ________ __________ __
/ __ \_ ______ / ____/ /_/ __/_ __/___ ____ / /
/ /_/ / | /| / / __ \/ / / __/ /_ / / / __ \/ __ \/ /
/ ____/| |/ |/ / / / / /___/ /_/ __/ / / /_/ / /_/ / /
/_/ |__/|__/_/ /_/\____/\__/_/ /_/ \____/\____/_/
By: DiegoAltF4 and Dbd4
Pode ser utilizado tanto localmente quanto remotamente (indicando IP e porta). Ele encontra automaticamente o offset para o Instruction Pointer armazenado na pilha.
Além disso, pode ser configurado para retornar um shell. Por padrão, ele exibe os dados recebidos pela conexão (possível flag).
Também permite exibir o offset para o instruction pointer na pilha e suporta arquitetura x86 em 32 e 64 bits, podendo ser usado para depurar o exploit com GDB.
| Parâmetro | Informação |
|---|---|
| -f | indica o binário a ser explorado (parâmetro obrigatório). |
| -t | indica a função alvo para onde queremos pular (parâmetro obrigatório). |
| -v | indica o modo de informação verboso. |
| -vv | indica o valor máximo de verbosidade, modo de depuração. |
| -g | permite anexar o GDB para fins de depuração. |
| --offset | exibe o offset para o Instruction Pointer. |
| --shell | permite que uma sessão interativa seja mantida após a exploração. |
| --remote | permite explorar em um servidor remoto. |
| --before | permite adicionar conteúdo de um arquivo antes do payload. |
| --after | permite adicionar conteúdo de um arquivo após o payload. |
./PwnCtfTool.py -f vuln.bin -t flag_func
Nesta parte, explicaremos os diferentes usos da ferramenta com exemplos. Disponibilizamos uma lista de binários vulneráveis e atualizaremos essa lista conforme incluirmos novas opções na ferramenta. Para facilitar a localização das informações, indicaremos os parâmetros usados no comando final que permite explorar o binário. Além disso, classificaremos a dificuldade dos desafios usando o emoji 💣. Uma única bomba significa que é muito fácil; cinco bombas indicam que a dificuldade é muito alta. Para cada desafio, incluímos um pequeno writeup que explica com muito mais detalhes como podemos chegar à solução.
Usando os parâmetros
-f-t--shell--offset
Para toda a explicação, leia o writeup:
Comando final:
python3 ../../PwnCtfTool.py -f ./vuln1 -t win --shell --offset
Usando os parâmetros
-f-t--before--shell
Para toda a explicação, leia o writeup:
Comando final:
python3 ../../PwnCtfTool.py --before before2.txt -f vuln2 -t rce --shell
git clone https://github.com/Diego-AltF4/PwnCtfTool.git
cd ./PwnCtfTool
pip3 install -r requirements.txt
chmod +x PwnCtfTool.py
./PwnCtfTool.py
|
David Billhardt |
Criado por DiegoAltF4 e Dbd4