
Desafio de estouro de buffer ARM explorando entrada de tag NFC no Raspberry Pi. Inclui guia de montagem de hardware, código do servidor e recuperação de flag para CTF e educação em segurança embarcada.
Este projeto é um desafio de baixo nível de código aberto (e divertido de fazer).
Sinta-se à vontade para melhorá-lo ou usá-lo em seus próprios projetos.
Cada arquivo é distribuído "como está" na esperança de que seja útil, mas sem qualquer garantia expressa ou 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 projeto foi desenvolvido em um ambiente Python2.
pip install -r requirements.txt
No seu Raspberry Pi 3 você pode instalar libnfc, mfoc e wiringPi com o arquivo em 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
No Raspberry Pi:
sudo systemctl start
python3 ./nfc_listener.py
Agora, basta gravar sua etiqueta NFC ;-)

Com o KKmoon ACR122U conectado via USB ao RPi.