
Outil d'exploitation ret2win automatisé pour les défis CTF. Trouve le décalage de la stack, génère des payloads, supporte l'exploitation à distance et attache GDB pour déboguer les binaires x86.
____ ________ __________ __
/ __ \_ ______ / ____/ /_/ __/_ __/___ ____ / /
/ /_/ / | /| / / __ \/ / / __/ /_ / / / __ \/ __ \/ /
/ ____/| |/ |/ / / / / /___/ /_/ __/ / / /_/ / /_/ / /
/_/ |__/|__/_/ /_/\____/\__/_/ /_/ \____/\____/_/
By: DiegoAltF4 and Dbd4
Il peut être utilisé à la fois localement et à distance (en indiquant IP et port). Il trouve automatiquement le décalage vers le pointeur d'instruction stocké dans la pile.
De plus, il peut être configuré pour renvoyer un shell. Par défaut, il affiche les données reçues par la connexion (flag potentiel).
Il permet également d'afficher le décalage vers le pointeur d'instruction dans la pile et prend en charge l'architecture x86 en 32 et 64 bits, et peut être utilisé pour déboguer l'exploit avec GDB.
| Paramètre | Informations |
|---|---|
| -f | indique le binaire à exploiter (paramètre obligatoire). |
| -t | indique la fonction cible vers laquelle sauter (paramètre obligatoire). |
| -v | indique le mode d'information verbeux. |
| -vv | indique la valeur de verbosité maximale, mode débogage. |
| -g | permet d'attacher GDB à des fins de débogage. |
| --offset | affiche le décalage vers le pointeur d'instruction. |
| --shell | permet de maintenir une session interactive après l'exploitation. |
| --remote | permet d'exploiter sur un serveur distant. |
| --before | permet d'ajouter du contenu depuis un fichier avant la charge utile. |
| --after | permet d'ajouter du contenu depuis un fichier après la charge utile. |
./PwnCtfTool.py -f vuln.bin -t flag_func
Dans cette partie, nous expliquerons les différentes utilisations de l'outil avec des exemples. Nous avons téléchargé une liste de binaires vulnérables et nous mettrons à jour cette liste à mesure que nous inclurons de nouvelles options dans l'outil. Pour faciliter la recherche d'informations, nous indiquerons les paramètres utilisés dans la commande finale qui permet d'exploiter le binaire. De plus, nous allons classer la difficulté des défis à l'aide de l'emoji 💣. Une seule bombe signifie que c'est très facile, cinq bombes indiquent que la difficulté est très élevée. Pour chaque défi, nous avons inclus un petit writeup qui explique plus en détail comment parvenir à la solution.
Utilisation des paramètres
-f-t--shell--offset
Pour toutes les explications, vous pouvez lire le writeup :
Commande finale :
python3 ../../PwnCtfTool.py -f ./vuln1 -t win --shell --offset
Utilisation des paramètres
-f-t--before--shell
Pour toutes les explications, vous pouvez lire le writeup :
Commande 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
Créé par DiegoAltF4 et Dbd4