
Desafío de desbordamiento de búfer ARM que explota la entrada de etiqueta NFC en Raspberry Pi. Incluye guía de ensamblaje de hardware, código de servidor y recuperación de banderas para CTF y educación en seguridad embebida.
Este proyecto es un desafío de bajo nivel de código abierto (y divertido de hacer).
Siéntete libre de mejorarlo o usarlo en tus propios proyectos.
Cada archivo se distribuye "tal cual" con la esperanza de que sea útil, pero sin ninguna garantía expresa o implícita.
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
⚠ Este proyecto ha sido desarrollado en un entorno Python2.
pip install -r requirements.txt
En tu Raspberry Pi 3 puedes instalar libnfc, mfoc y wiringPi con el archivo en 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
En la Raspberry Pi:
sudo systemctl start
python3 ./nfc_listener.py
Ahora, solo flashea tu etiqueta NFC ;-)

Con el KKmoon ACR122U conectado por USB a la RPi.