Ponownie problem dotyczy mechanizmu WiFi Protected Setup (WPS),wykorzystywanego powszechnie do łączenia routerów z urządzeniamimobilnymi i będącego nierzadko jedynym sposobem podłączenia się donieskonfigurowanego urządzenia dla osób, które nie mają portuEthernetu w komputerze (jak to jest w wielu ultrabookach), albo wogóle nie mają komputera, tylko tablet czy smartfon. OśmiocyfrowyPIN, używany do łączenia się z routerem z WPS, dość szybko jednakrozpracowano– okazało się, że liczba kombinacji jest daleko mniejsza, niżmogłoby się wydawać, wynosi zaledwie ok. 11 tys. Kolejne aktualizacjefirmware wprowadziły więc do routerów zabezpieczenie w postaciograniczenia liczby prób podania kodu.
W niektórych modelach routerów nie trzeba jednak bawić się wtysiące prób z WPS. Craig, który szukał metody na wstrzyknięcieswojego kodu w firmware D-Linka 810L, trafił na ciekawyfragment kodu w usłudze ncc, wykorzystywanej jako backend m.in.dla serwerów HTTP i UPnP. Było tam m.in. wywołanie dla kodu PINmechanizmu WPS.
Kod ten zwykle jest umieszczany fabrycznie w pamięci NVRAM, jednakprocedura nie pytała pamięci NVRAM, zamiast tego sprawdzała adres MACroutera, który przechodził następnie sekwencję (odwracalną) operacjiarytmetycznych – przesunięć, mnożeń i sum poprzecznych –by wygenerować PIN.
Sprawa staje się więc prosta – każdy, kto pozna adres MACroutera, jest w stanie wyliczyć PIN. Gotowe narzędzie do tego jużjest, Craig opublikował na GitHubie skryptw Pythonie, który zwraca nam właściwe PIN-y dla routerów D-Linka.Podatne na ten atak są modele DIR-810L, DIR-826L, DIR-632, DHP-1320,DIR-835, DIR-615 w wersjach B2, C1, E1 i E3, DIR-657, DIR-827,DIR-857, DIR-451, DIR-655 w wersjach A3, A4, B1, DIR-825 w wersjachA1, B1, DIR-651, DIR-855, DIR-628, DGL-4500, DIR-601 w wersjach A1,B1, DIR-836L, DIR-808L, DIR-636L, DAP-1350 oraz DAP-1555.
Jeśli posiadacie któryś z tych routerów, działający pod kontroląoryginalnego oprogramowania D-Linka, polecamy jak najszybciejwyłączyć obsługę WPS i zmienić dotychczas używane hasło.