
Défi de débordement de tampon ARM exploitant l'entrée d'étiquette NFC sur Raspberry Pi. Comprend un guide d'assemblage matériel, un code serveur et la récupération de drapeau pour les CTF et l'éducation à la sécurité embarquée.
Ce projet est un défi bas niveau open-source (et amusant à réaliser).
N'hésitez pas à l'améliorer ou à l'utiliser dans vos propres projets.
Chaque fichier est distribué "tel quel" dans l'espoir qu'il sera utile, mais sans aucune garantie expresse ou implicite.
nfc_listener
├── cli
├── nfc_listener.py
├── packages
│ ├── __init__.py
│ ├── log.py
│ └── time.py
├── README.md
├── requirements.txt
├── ressources
│ ├── config.json
│ ├── dump.sh
│ ├── img
│ │ ├── assembly.jpg
│ │ └── rpi_pinout.jpg
│ ├── libs.zip
│ ├── nfc_backup
│ │ ├── carte.mfd
│ │ └── hope.mfd
│ ├── services
│ │ └── server_nfc.service
│ └── sources
│ ├── cli.c
│ ├── flag.c
│ ├── oops.c
│ ├── server.c
│ └── welcome.c
├── RPi_messages
│ ├── example
│ ├── oops
│ ├── printFlag
│ └── welcome
└── server
7 directories, 25 files
⚠ Ce projet a été développé dans un environnement Python2.
pip install -r requirements.txt
Sur votre Raspberry Pi 3, vous pouvez installer libnfc, mfoc et wiringPi avec l'archive dans ressources/libs :
git clone https://gitlab.com/AperiKube/pwn-arm-nfc.git /opt/nfc_listener
cd /opt/nfc_listener/ressources
unzip libs.zip
cd libs/libnfc
make && sudo make install
cd ../mfoc
make && sudo make install
cd ../wiringPi
./build
sudo cp /opt/nfc_listener/ressources/services/server_nfc.service /etc/systemd/system/
sync
Sur le Raspberry Pi :
sudo systemctl start
python3 ./nfc_listener.py
Maintenant, il suffit de flasher votre étiquette NFC ;-)

Avec le KKmoon ACR122U branché en USB sur le RPi.