Capítulo 5: Aircrack-ng y la wifi del vecino de arriba

Por la mañana, el dongle traidor seguía colgando del USB como un garrapato en un perro. La vecina, ya café en mano, había leído un wiki de la Debian y venía pidiendo «poner la tarjeta en modo monitor», con la misma seriedad con que una semana antes había pedido un cargador. Evolucionaba a velocidad de systemd-journald llenando un disco.

# apt-get install aircrack-ng -y
# airmon-ng check kill
# airmon-ng start wlan1
(monitor mode vif enabled on wlan1mon)

Primera lección: airmon-ng check kill mata a NetworkManager y wpa_supplicant, porque esos dos, en cuanto ven una tarjeta, quieren conectarse a algo como adolescentes en discoteca. Y nosotros queríamos espiar, no ligar.

# airodump-ng wlan1mon --band bg

BSSID              CH  PWR  ESSID
AA:BB:CC:11:22:33   6  -62  Movistar_A1B2
FE:DE:AD:BE:EF:F2   1  -28  GrupoV-IoT
F2:CA:FE:BA:BE:00  11  -58  vodafone-x

-28 dBm. El AP de GrupoV-IoT estaba pegando más fuerte que ningún otro en la casa. Es decir: estaba literalmente encima de mí. Capturamos beacons durante cinco minutos. No había clientes asociados aparte de mi dongle. El AP, por tanto, se llevaba la conexión solo con el dongle. Una relación monógama y cifrada.

Pasamos al ataque controlado. No, no íbamos a crackear una wifi para robarla — GNU/Linux, para ser más exactos, también tiene su ética — íbamos a tirar del handshake para identificar por dónde salía la señal. Primero lanzamos airodump fijo:

# airodump-ng -c 1 --bssid FE:DE:AD:BE:EF:F2 \
            -w /tmp/grupov wlan1mon

En otra terminal, desautentiqué mi propio dongle una vez (es mi dongle, le puedo hacer lo que quiera, faltaría más) para forzar un handshake:

# aireplay-ng --deauth 1 \
             -a FE:DE:AD:BE:EF:F2 \
             -c F2:F2:F2:DE:AD:BE wlan1mon

Bingo. WPA handshake: FE:DE:AD:BE:EF:F2. Con eso podría hacer un aircrack-ng -w diccionario.txt grupov-01.cap de manual, pero el password no me importaba. Me importaba la dirección. Usé kismet, que vale para geolocalizar APs con triangulación de RSSI:

# apt-get install kismet -y
# kismet -c wlan1mon

Kismet, paseado con el portátil en las manos por el piso como un zahorí con péndulo, hizo su trabajo. La señal subía al caminar hacia el salón y subía más bajo la lámpara de techo. Saqué un cat5 tester improvisado (bueno, un destornillador) y señalé hacia arriba:

  • El AP está directamente sobre nuestro techo.
  • Pero arriba vive...
  • La señora Remedios, 82 años, teléfono de tapa, y una botella de anís en el microondas desde 1998.

La señora Remedios no había tocado un router en su vida. Pero alguien, del edificio o de fuera, había subido al 4º B con una excusa buena (probablemente vestido del gas, de nuevo) y había dejado un AP oculto dentro de su piso, colgando de su bombilla del salón. Llamé al subcomisario Linares:

  • Linares, soy Linux.
  • GNU/Linux, para ser más exactos.
  • Me lo ha dicho alguna vez, sí. Dígame.
  • Tengo un AP no autorizado encima de mi piso. La inquilina es una abuela de Cuenca. Usted y yo sabemos quién lo ha puesto.
  • ¿La B de...?
  • Blue Pantallaz, sí.

Linares suspiró como solo suspiran los subcomisarios a los que alguien a quien aprecian les cita por cuarta vez un grupo terrorista cibernético antes del café de la mañana.

  • Voy con una orden. Dadme treinta minutos.

Subió él, un agente, un cerrajero, y mi vecina, que pidió venir. Remedios, un encanto, nos abrió, y entre todos localizamos el dispositivo: una Raspberry Pi 4B, escondida en la caja de empalmes del pasillo, alimentada por un poe-splitter chupándole corriente al cableado que va al telefonillo. La Raspberry tenía hot-glue pegado a una segunda pegatina donde se leía, escrito a lápiz: «bp-agent v1.7».

# ssh pi@192.168.178.1 (adivinada por nmap)
pi@192.168.178.1's password: raspberry

La clave era raspberry. La puta clave por defecto. Los Blue Pantallaz se habían profesionalizado, sí, pero seguían habiendo subcontratado a un junior que no sabía cambiar la contraseña. Dios los cría.

Dentro, un servicio systemd manejaba todo el tinglado. Y tras cruzar miradas con la vecina, supe que el capítulo siguiente tocaba al Profesor. Porque si había systemd, había que ir a pedir consejo al único hombre al que yo conocía capaz de insultar a Poettering en latín.