(modifié le 20 janvier 2020 à 15:23)

Voici comment utiliser le lecteur NFC ACR122U, fabriqué par ACS, sous GNU/Linux et plus particulièrement avec Kali Linux (2019.x).

Ce lecteur NFC est pas cher et facile à utiliser mais cette erreur peut apparaître : "error libnfc.driver.acr122_usb Unable to claim USB interface".

Voyons comment corriger ça !

Symptôme et erreur

Voici l'erreur obtenue avec nfc-list :

# nfc-list
nfc-list uses libnfc 1.7.1
error libnfc.driver.acr122_usb Unable to claim USB interface (Device or resource busy)
nfc-list: ERROR: Unable to open NFC device: acr122_usb:002:010

D'ailleurs la LED s'allume en rouge si aucun tag NFC n'est présent sur le lecteur, et jaune quand un tag est posé.

Pour fonctionner les LED doivent rester éteintes et aucun bip ne doit être émis (bien qu'on puisse couper le buzzer en dur via un programme).

Si vous êtes sous VirtualBox

N'essayez pas de faire marcher le lecteur USB dans une machine virtuelle Kali sous VirtualBox, cela n'a jamais fonctionné dans mon cas. Bien que le message soit identique ce tutoriel ne règlera pas ce problème.

Peut-être qu'avec VMware player/workstation ça marchera mieux, mais l'USB sous VirtualBox est toujours très capricieux.

Pour ma part j'utilise une clé USB persistante, mais vous pouvez aussi installer Kali en dur sur un vieux PC qui traine... c'est encore mieux.

La solution

Pour corriger le tir nous devons blacklister des modules.

Mais avant tout, débranchez votre lecteur du port USB.

Puis dans le fichier /etc/modprobe.d/blacklist-libnfc.conf ajoutez ceci :

blacklist nfc
blacklist pn533
blacklist pn533_usb

Il se peut que les 2 premières lignes soient déjà présentes.

Il faudra redémarrer le PC sous Kali pour la prise en compte, ou pour une prise en compte immédiate :

modprobe -r pn533_usb
modprobe -r pn533
modprobe -r nfc

La dernière commande peut renvoyer "modprobe: FATAL: Module nfc is in use", ceci n'est pas un problème.

Vérification

Reconnectez votre lecteur ACR122U en USB à votre ordinateur sous Kali, et tada :

# nfc-list 
nfc-list uses libnfc 1.7.1
NFC device: ACS / ACR122U PICC Interface opened
1 ISO14443A passive target(s) found:
ISO/IEC 14443A (106 kbps) target:
ATQA (SENS_RES): 00 04 
UID (NFCID1): 9a 81 a5 1e 
SAK (SEL_RES): 08

Si vous rencontrez encore des soucis, vérifiez que le service pcscd n'est pas en exécution, il se peut qu'il gène l'accès au lecteur :

systemctl stop pcscd.socket
systemctl stop pcscd.service

Et pour le retirer du démarrage automatique :

systemctl disable pcscd.*

Conclusion

Je vous ferai quelques autres billets sur comment écrire un tag NFC, avec ce lecteur ACR122U c'est très accessible, que ce soit en terme de prix ou de complexité. Pour commencer à jouer avec du NFC pas besoin d'investir dans un proxmark, celui-ci est largement suffisant.

MàJ : il existe un portage des outils pour Windows disponible ici

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter

Tags: , ,