Configuración del host Linux/Kali, udev rules, comparativa de hardware (Proxmark3, Flipper, Chameleon), sintonización de antenas, taxonomía completa de Magic Cards Gen1a-Gen4 y sniffing pasivo.
Configurar un entorno de auditoría profesional en Linux/Kali, dominar el cliente Iceman de Proxmark3 sin dependencias fallidas, seleccionar las Magic Cards idóneas para evadir filtros de lectores y capturar tráfico RF en tiempo real sin ser detectado.
Un laboratorio de pentesting RFID en Linux requiere una configuración meticulosa para evitar que el kernel o servicios del sistema operativo secuestren el puerto serie virtual del hardware de radio.
El problema más frecuente al conectar un Proxmark3 es que el demonio ModemManager intenta abrir el dispositivo pensando que es un módem 3G/4G antiguo, enviando comandos Hayes AT que corrompen el flujo o dejan el puerto /dev/ttyACM0 ocupado.
# 1. Crear el grupo de acceso a periféricos y añadir al usuario actual
sudo usermod -aG dialout,plugdev $USER
# 2. Desactivar o desinstalar ModemManager en la estación de pentesting
sudo systemctl stop ModemManager
sudo systemctl disable ModemManager
# Opcional en distros dedicadas: sudo apt purge -y modemmanager
# 3. Crear regla udev para Proxmark3 (Vid 2d2d / 9ac4)
sudo tee /etc/udev/rules.d/77-pm3-usb-device.rules > /dev/null << 'EOF'
# Proxmark3 RDV4 / Easy
ATTRS{idVendor}=="2d2d" , ATTRS{idProduct}=="504d", MODE="0660", GROUP="dialout", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="9ac4" , ATTRS{idProduct}=="4b8f", MODE="0660", GROUP="dialout", ENV{ID_MM_DEVICE_IGNORE}="1"
EOF
# 4. Recargar el subsistema de udev
sudo udevadm control --reload-rules
sudo udevadm trigger
| Dispositivo | Frecuencias | Sniffing Pasivo | Emulación Standalone | Crackeo Cripto | Uso Táctico |
|---|---|---|---|---|---|
| Proxmark3 Easy (512K) | LF (125 kHz) + HF (13.56 MHz) | ✅ Excelente (Crudo) | ❌ Requiere PC o PowerBank | ✅ Nativo (Iceman autopwn) | El estándar del laboratorio. Máxima relación calidad/precio (~40€). |
| Flipper Zero | Sub-GHz + LF + HF + IR + iButton | ⚠️ Muy Limitado (HF) | ✅ Excelente con pantalla | ⚠️ Diccionario básico | Táctico / Reconocimiento rápido en campo. Muy discreto. |
| Chameleon Ultra | LF + HF (Bluetooth) | ✅ MF Sniffing | ✅ 8 Ranuras simultáneas | ✅ Vía App Android/iOS | El rey de la emulación multi-tarjeta en bolsillo. |
| ACR122U / PN532 | HF (13.56 MHz exclusivamente) | ❌ Imposible | ❌ No standalone | ⚠️ Parcial (libnfc/mfoc) | Económico para iniciación en software y libnfc. |
En el mercado asiático se comercializan dos variantes de bajo coste del microcontrolador AT91SAM7S:
• AT91SAM7S256 (256 KB Flash): ¡OBSOLETO! El firmware moderno Iceman NO CABE en 256 KB. Para compilarlo hay que desactivar los módulos de Hardnested, FSK y simulación avanzada.
• AT91SAM7S512 (512 KB Flash): OBLIGATORIO. Soporta el 100% de los comandos y ataques modernos. Exige siempre al vendedor confirmación fotográfica del chip serigrafiado con AT91SAM7S512.
Meta del Lab: Verificar que las bobinas LC de LF y HF resuenan a sus frecuencias nominales exactas midiendo los voltajes de pico en el cliente Proxmark3.
# Lanzar el cliente Iceman conectándose al puerto serie
pm3 -p /dev/ttyACM0
[usb] pm3 --> hw tune
# Salida esperada en el analizador de resonancia:
[=] Measuring antenna characteristics, please wait...
[+] LF antenna: 29.85 V @ 125.00 kHz
[+] LF antenna: 22.40 V @ 134.00 kHz
[+] LF optimal: 31.20 V @ 127.65 kHz
[+] HF antenna: 28.65 V @ 13.56 MHz
[+] Displaying LF tuning graph...
Interpretación de Voltajes de Pico:
Antenas sintonizadas correctamente sin desajuste por metales circundantes.
En las tarjetas comerciales genuinas de NXP (MIFARE Classic), el Bloque 0 del Sector 0 (que almacena el UID de 4 o 7 bytes, el BCC y los datos del fabricante) está grabado físicamente por láser durante la fase de empaquetado del silicio (Wafer Fabrication). El estándar ISO 14443 bloquea las operaciones de escritura en este bloque.
Para clonar una tarjeta en un ejercicio de Red Team es indispensable utilizar Tarjetas Mágicas chinas (Magic Cards) con microcódigo modificado que permita sobreescribir el Bloque 0.
Meta del Lab: Identificar con exactitud la generación de una tarjeta desconocida usando el cliente Iceman y evaluar si pasaría desapercibida ante un lector corporativo con filtro anti-clon.
[usb] pm3 --> hf mf cdetect
# Si la tarjeta es Gen1a (Backdoor presente):
[+] Checking for Magic Chinese backdoor commands (APDU 0x40/0x43)...
[+] Magic capabilities : Gen 1a / backdoor card found!
[+] Writing block 0 without keys is POSSIBLE.
[!] Warning: This card will be BLOCKED by modern security readers.
# Si la tarjeta es Gen2 (CUID) o Genuina:
[-] No Chinese backdoor detected.
[+] Testing direct block 0 write with default keys (Gen2 test)...
[+] Gen2 (CUID) detected: Block 0 writable via standard 0xA0 command.
[usb] pm3 --> hf 14a info
[+] UID: A4 1B 89 22
[+] ATQA: 00 04
[+] SAK: 08 [ MIFARE Classic 1K ]
[+] Fingerprint: NXP Originality Check FAILED (Clon no genuino de silicio)
Detección exacta del tipo de chip mágico presente en la tarjeta de prueba.
El sniffing pasivo consiste en situar una bobina sintonizada dentro del campo magnético compartido entre el lector y la credencial sin emitir señal alguna (operación en alta impedancia), registrando las fluctuaciones de carga y la modulación de amplitud.
Para descifrar la conversación, el receptor digital debe separar el canal descendente del ascendente:
Meta del Lab: Colocar la antena del Proxmark3 tipo sándwich entre la tarjeta y el lector mural para interceptar el handshake criptográfico completo y exportar la captura a Wireshark.
Coloca la antena HF del Proxmark3 pegada a la tarjeta legítima y aproxima ambas al lector del torno o puerta. Ejecuta:
[usb] pm3 --> hf mf sniff
[#] Waiting for reader signal... Press PM3 button to abort.
Al pasar la tarjeta, el lector emite el campo, la tarjeta responde y el Proxmark3 almacena las muestras de radiofrecuencia en su búfer circular SRAM interno de 40 KB.
# Detener la captura pulsando el botón del Proxmark3
# Visualizar la traza de tramas en pantalla
[usb] pm3 --> hf mf list
# Salida de la traza de radiofrecuencia:
Time | Src | Resp | Data
-------+-----+------+------------------------------------------
0 | Rdr | | 26 (REQA)
128 | Tag | | 04 00 (ATQA)
450 | Rdr | | 93 20 (ANTICOLLISION CL1)
612 | Tag | | a4 1b 89 22 14 (UID + BCC)
920 | Rdr | | 93 70 a4 1b 89 22 14 c2 d1 (SELECT)
1100 | Tag | | 08 (SAK)
1450 | Rdr | | 60 04 (AUTH Sector 1 with Key A)
1650 | Tag | | 78 a2 41 9b (Nonce de la Tarjeta: nT)
2100 | Rdr | | e4 f1 22 09 88 1a cc bb (nR + aR cifrados con Crypto-1)
A partir del nonce de la tarjeta ($n_T$) y la respuesta cifrada del lector ($a_R$), el atacante puede derivar la clave secreta mediante criptoanálisis offline (Nested/Hardnested) sin tocar el lector nunca más.
Captura de tramas Auth con lector (Reader Nonce Nr y Card Nonce Nc).