
Sfida di buffer overflow su ARM che sfrutta l'input di tag NFC su Raspberry Pi. Include guida all'assemblaggio hardware, codice del server e recupero della bandiera per CTF e formazione sulla sicurezza embedded.
Questo progetto è una sfida a basso livello open-source (e divertente da realizzare).
Sentiti libero di migliorarlo o usarlo nei tuoi progetti.
Ogni file è distribuito "così com'è" nella speranza che sia utile, ma senza alcuna garanzia esplicita o implicita.
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
⚠ Questo progetto è stato sviluppato in un ambiente Python2.
pip install -r requirements.txt
Sul tuo Raspberry Pi 3 puoi installare libnfc, mfoc e wiringPi con l'archivio in 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
Sul Raspberry Pi:
sudo systemctl start
python3 ./nfc_listener.py
Ora, basta flashatare il tuo tag NFC ;-)

Con il KKmoon ACR122U collegato in USB al RPi.