Проникване в Wi-Fi мрежа: невидимата заплаха WPS

Когато заговорим за сигурност, няма как да не споменем безжичните мрежи. Те са навсякъде около нас, в офиса, парка, кафенетата, у дома. Благодарение на тях успяваме бързо и лесно да достъпим необходимата ни важна информация, от всякъде и по всяко време. Но замисляли ли сте се, какво може да стане, ако тази информация попадне в ръцете на някой, да речем, недоброжелател?

Безжичните мрежи, като такива, премахват необходимостта от чист физически достъп до мрежата, нужно е само да сме в обсега им. Единствената защита на данните ни, остава криптографския алгоритъм. Първият такъв, използван масово в безжичните мрежи, се нарича WEP. Напълно несигурен в днешно време и изместен от WPA и WPA2 протоколите.

За сравнително добро ниво на защита, най-често започна да се използва WPA2-Personal с CCMP(AES) криптиране. Разбиването на една такава дълга и сложна парола(с различни символи и големина на буквите) би отнело години на обикновена компютърна система. Ако паролата се променя всеки месец, то мисията става невъзможна.

Преди няколко години Wi-Fi Alliance представи стандартът WPS(Wi-Fi Protected Setup). Той е създаден, за да се улесни настройката и да гарантира сигурността на безжична домашна мрежа. Характерното за него, е наличието на 8 цифров PIN код, който е уникален за всяко безжично устройство и не може да се променя.

Всичко изглеждаше прекрасно, но в края на месец декември 2011, американски изследовател откри опасна уязвимост в PIN кода на WPS. Обикновено, за да се налучка кода, трябва да се пробват десетки милиони комбинации, което изисква огромно време. Дупката в WPS съкращава броя на комбинациите до 11 хиляди.

Проблемът идва от дизайна и изпълнението на стандарта.  При въвеждането на неправилен код, системата показва валидността на първата и втората половина на кода поотделно. Последната цифра от PIN кода играе ролята на контролна сума. Така възможните комбинации стават 104 + 103 =11 000.

Уязвимостта засяга всички производители на безжични устройства. Единствения начин да се предпазим , е да спрем напълно WPS функционалността. Още един проблем е, че не всички рутери поддържат това. Решението е да се обнови фърмуер-а до последна версия, ако и там функцията не е налична, може да се пробва и неофициален фърмуер(напр. dd-wrt, openwrt…).

По-опасното в случая, идва от това, че много хора, дори и ИТ специалисти, не знаят за тази уязвимост, което създава фалшиво чувство за сигурност.

Tactical Network Solutions са разработили програма на име reaver-wps с цел да покажат, че атаката е възможна. В следващите няколко реда ще демонстрирам как се използва на практика. Така ще видите колко лесно може да се разбие иначе неразбиваема парола. Също така, искам да наблегна на факта, че проникването в частни безжични мрежи, е незаконно в България!

За целта ще използвам Linux дистрибуцията Backtrack 5 R2, която е специално създадена за тестване на сигурността на компютърни системи. Програмата Reaver-1.4 е инсталирана предварително, но ако използвате по-стара версия на Backtrack или друга дистрибуция, ще ви се наложи да си я изтеглите и инсталирате. Ако нещо не се получава при вас, е възможно проблемът да е от Wi-Fi карата ви. В случая използвам Broadcom 4318. Рутерът е Linksys E1000, на който не може да бъде спряна WPS функционалността,  както се вижда от картинката:

1.Трябва да пуснем безжичната карта в режим за следене(monitor mode). За целта ще използваме програмата airmon-ng, която е налична в aircrack-ng пакета. Първо изпълняваме:

#airmon-ng

Това ни показва наличните wifi карти. В случая е една – wlan0. Пускаме я в режим за следене:

#airmon-ng start wlan0

Както виждате картата е пусната в монитор мод на интерфейс mon0. Оттук нататък ще работим с него.

2. Сега ще използваме програмата wash, която е включена в Reaver-1.4(в по-старите версии я няма), за да видим кои безжични мрежи са с активиран WPS:

#wash -i mon0

wash

Всички изредени мрежи са уязвими. Всяка една от тях може да бъде разбита за от 4 до 10 часа. BSSID-то ни показва MAC адреса на безжичното устройство, което държи мрежата. Виждаме канала на който работи и нивото на шума. WPS Locked ни показва дали WPS-а на дадената мрежа е заключен. Някои рутери имат защита, така че при наличието на много заявки за PIN кодове, спират WPS за няколко минути(WPS Lock). Това забавя съвсем малко атаката.

Мрежата в която ще проникваме е Victim_Wifi, която предварително съм настроил със сравнително сложна парола и WPA2-AES криптиране.

3. Време е да пуснем Reaver в действие. Синтаксиса е много лесен.С  b задаваме BSSID-то на мрежата която тестваме. Използваме –v, за да ни покаже PIN кодовете, които се пробват в момента. Може да използвате и –vv за по-подробна информация. Канала на мрежата нарочно не го фиксираме, защото е възможно да се променя.

#reaver -i mon0 -b 58:6D:8F:04:CD:62 -v

В случая, изреждането на PIN-овете става много бързо(3-4 seconds/pin). Това зависи от силата на сигнала и възможностите на рутера(колко бързо може да обработва кодовете). По-принцип, силата на сигнала е от доста по-голямо значение при WPS в сравнение с разбиването на WEP криптирани мрежи. При WPS се интересуваме от отговорите на рутера и не можем да си позволим загуба на пакети. При WEP събираме много пакети данни, без значение дали са цели.

След няколко часа имаме успех:

Скрил съм PIN кода. Не, че е голяма тайна де 😀

По-късно, WPA паролата може да бъде променена, но това не е проблем, тъй като вече имаме PIN кода:

#reaver -i mon0 -b 58:6D:8F:04:CD:62 –v –p пин_код

Както казах и преди, единствената защита е спирането на WPS. Избирате си сложна и дълга парола(повече от 13 символа), която да не съдържа думички. Криптирането трябва да е WPA2-CCMP(AES) и това ще е предостатъчно за една домашна мрежа. Няма никакъв смисъл от филтриране по MAC адреси, защото се заобикаля много лесно. А ако можете да си го позволите, то най-добре преминете на WPA2-Enterprise с RADIUS сървър 😉

 

Вашият отговор на Stancho Stankov Отказ

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *