Capítulo 4: Wireshark y la vecina aprende a leer paquetes

Desperté a la vecina con un café solo y una promesa:

  • Hoy aprendes a leer paquetes.
  • ¿Paquetes de qué?
  • De red. Como las cartas, pero sin sobre. Y nos van a decir quién se está metiendo en nuestra casa.

La senté delante de mi portátil, le puse auriculares (ambientación, porque el rumor del ventilador pone nervioso a cualquiera) y abrí Wireshark con sudo. Porque GNU/Linux, para ser más exactos, solo enseña paquetes a quien tiene los privilegios del maestro.

# apt-get install wireshark tshark -y
# usermod -aG wireshark vecina
# su - vecina
$ wireshark &

Empezó por lo fácil: un filtro de captura, no de display, que es la primera lección que da la vida:

tcp and not port 22 and not port 53 and not net 192.168.1.0/24

Traducción: «quiero el tráfico que sale fuera de esta casa, que no sea ssh ni DNS». Con ese filtro capturamos dos minutos clavados, porque los minutos de Wireshark se miden en nervios, no en segundos.

A las 03:33 de esa noche (¡claro, 3:33 otra vez!) dejamos el sniffer grabando en disco. A las 4 de la mañana paramos la captura y nos pusimos a diseccionar. Abrí Statistics → Conversations → TCP y apareció lo que buscaba: una sola conversación de 114 KB salida y 600 bytes entrada. Saliendo, como decía .(punto)Antúnez, «hacia ningún sitio conocido».

$ tshark -r captura.pcap -Y 'tcp.dstport == 9001' \
        -T fields -e frame.interface_name -e ip.src
wlan1   192.168.178.14
wlan1   192.168.178.14
wlan1   192.168.178.14

La vecina, que es lista cuando quiere, se quedó mirando la primera columna.

  • Espera. Aquí pone «wlan1».
  • Correcto.
  • Pero tú sólo tienes «wlan0», lo dijiste ayer.
  • GNU/Linux, para ser más exactos. Eso pensaba yo.

Comprobé la lista de interfaces:

$ ip -brief link
lo     UNKNOWN  00:00:00:00:00:00
eth0   DOWN     ...
wlan0  UP       aa:bb:cc:dd:ee:ff
wlan1  UP       f2:f2:f2:de:ad:be

Wlan1. Existía. No estaba en mi listado porque el driver la registraba con el nombre phy1 y no salía por defecto, pero ahí estaba. Pasé a iw:

$ iw dev
phy#1
    Interface wlan1
        type managed
        ssid GrupoV-IoT
        freq 2412 (channel 1)
        txpower 20.00 dBm

Conectada. A un SSID llamado GrupoV-IoT. Lo miré como si mirara un insecto: «Grupo V». El primer capítulo ya olía a Vargas. «IoT». Como queriendo pasar por inocente. La cara de la vecina, al verlo, habría podido ilustrar una nueva página del urbandictionary.com en la entrada «traición vecinal».

  • ¿Pero quién ha puesto eso ahí?
  • Alguien con acceso a mi máquina. Alguien que ha conseguido, sin permiso, meterme un USB-Wifi pequeñito escondido en algún puerto que no uso.

Y me fui a mirar, literalmente, la parte de atrás del portátil. Entre el puerto HDMI y el jack, un dongle USB-C diminuto, color gris oscuro, pegado con cinta de doble cara. Ni se veía.

$ dmesg | grep -iE 'usb|wireless' | tail
[23145.112] usb 2-3: new high-speed USB device
[23145.298] usb 2-3: Product: MT7612U
[23145.412] mt76x2u 2-3:1.0: wlan1: renamed from ...

MT7612U. Un dongle wifi USB barato, de los que te venden a 12 euros en AliExpress, con driver libre. Lo habían metido, posiblemente, el día que vino el del gas. «El del gas» es, en mi experiencia, la figura más sospechosa del imaginario español.

Desasocié y desactivé el enlace:

# ip link set wlan1 down
# rmmod mt76x2u
# echo "blacklist mt76x2u" > /etc/modprobe.d/bye.conf
# update-initramfs -u

Pero lo dejé conectado físicamente. Lo necesitaba vivo para la siguiente fase. La vecina no entendía.

  • Pero si es el traidor, ¿por qué no lo tiras?
  • Porque ahora mismo, vecina, ese dongle es un espía que no sabe que lo hemos descubierto. Y vamos a usarlo para ver a quién habla.

Le guiñé el ojo. Ella sonrió. Le serví medio dedo de Marqués de Paparrucha 2010 GA en una copa muy bonita. Hacía meses que no se sentía tan linuxera. Aprendía rápido.

Mañana tocaba poner la wlan1 en modo monitor. Iba a necesitar aircrack-ng, tres cafés, y una silla más cómoda, porque ese dongle tenía pinta de conectarse a una wifi vecina. Y la vecina, ejem, ya no era solo ella.