
Strumento automatizzato per exploit ret2win per sfide CTF. Trova l'offset dello stack, genera payload, supporta lo sfruttamento remoto e collega GDB per il debug di binari x86.
____ ________ __________ __
/ __ \_ ______ / ____/ /_/ __/_ __/___ ____ / /
/ /_/ / | /| / / __ \/ / / __/ /_ / / / __ \/ __ \/ /
/ ____/| |/ |/ / / / / /___/ /_/ __/ / / / /_/ / /_/ / /
/_/ |__/|__/_/ /_/\____/\__/_/ /_/ \____/\____/_/
By: DiegoAltF4 and Dbd4
Può essere utilizzato sia localmente che in remoto (indicando IP e porta). Trova automaticamente l'offset rispetto al Instruction Pointer memorizzato nello stack.
Inoltre, può essere configurato per restituire una shell. Per impostazione predefinita, stampa i dati ricevuti dalla connessione (possibile flag).
Permette inoltre di visualizzare l'offset rispetto al instruction pointer nello stack e supporta l'architettura x86 sia a 32 bit che a 64 bit e può essere utilizzato per eseguire il debug dell'exploit con GDB.
| Parametro | Informazione |
|---|---|
| -f | indica il binario da sfruttare (parametro obbligatorio). |
| -t | indica la funzione target a cui vogliamo saltare (parametro obbligatorio). |
| -v | indica la modalità di informazioni verbose. |
| -vv | indica il valore massimo di verbosità, modalità di debug. |
| -g | consente di collegare GDB per scopi di debug. |
| --offset | stampa l'offset rispetto all'Instruction Pointer. |
| --shell | consente di mantenere una sessione interattiva dopo lo sfruttamento. |
| --remote | consente di sfruttare su un server remoto. |
| --before | consente di aggiungere contenuto da un file prima del payload. |
| --after | consente di aggiungere contenuto da un file dopo il payload. |
./PwnCtfTool.py -f vuln.bin -t flag_func
In questa parte, spiegheremo i diversi usi dello strumento con esempi. Abbiamo caricato una lista di binari vulnerabili e aggiorneremo questa lista man mano che includeremo nuove opzioni nello strumento. Per facilitare la ricerca delle informazioni, indicheremo i parametri utilizzati nel comando finale che ci permette di sfruttare il binario. Inoltre, classificheremo la difficoltà delle sfide usando l'emoji 💣. Una singola bomba significa che è molto facile, cinque bombe indicano che la difficoltà è molto alta. Per ogni sfida abbiamo incluso un piccolo writeup che spiega in molti più dettagli come possiamo arrivare alla soluzione.
Utilizzando i parametri
-f-t--shell--offset
Per tutta la spiegazione puoi leggere il writeup:
Comando finale:
python3 ../../PwnCtfTool.py -f ./vuln1 -t win --shell --offset
Utilizzando i parametri
-f-t--before--shell
Per tutta la spiegazione puoi leggere il writeup:
Comando finale:
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 |
Creato da DiegoAltF4 e Dbd4