В этой статье мы познакомимся с популярными методами взлома Wi-Fi сетей. Надеюсь после прочтения, вы сделает более безопасной свою сеть. Как говориться : предупрежден значит вооружен )
WPA/WPA2.
WPA и WPA2 (Wi-Fi Protected Access) собственно это протокол авторизации и шифрования данных в Wi-Fi сетях. На данный момент это самый популярный, самый надежный протокол. Часто в домашних условиях и маленьких сетях используют WPA2-PSK(Pre-Shared Key). В начале 2018 года международный альянс Wi-Fi Alliance анонсировал новейший протокол беспроводной безопасности — WPA3.
Основной и самый популярный метод атаки на этот протокол является брутфорс(метод грубой силы, перебор паролей).
handshake.
Для того, чтобы устройство получило маркер доступа в сеть, на устройстве необходимо ввести специальную парольную фразу, называемую Pre-Shared Key . Длина должна быть от 8 до 32 символов, притом можно использовать специальные символы, а также символы национальных алфавитов. После ввода парольной фразы она помещается в специальный пакет ассоциации (пакет обмена ключами, handshake), который передается на точку доступа. Если парольная фраза верна, то устройству выдается маркер доступа в сеть.
Уязвимостью является возможность перехвата пакетов handshake, в которых передается Pre-Shared Key при подключении устройства к сети. По скольку Pre-Shared key шифруется, у злоумышленника остается только одна возможность – атака грубой силой на захваченные пакеты. Также стоит обратить внимание, что для того, чтобы перехватить handshake злоумышленнику совсем не обязательно ждать того момента, как к сети будет подключено новое устройство. На некоторых беспроводных адаптерах, при использовании нестандартных драйверов, есть возможность посылки в сеть пакетов, которые будут прерывать сетевые соединения и инициировать новый обмен ключами в сети между клиентами и точкой доступа. В таком случае, для того, чтобы захватить требуемые пакеты, необходимо, чтобы к сети был подключен хотя бы один клиент.
Взлом.
В наших примеров я использую Kali Linux (Kali Linux — GNU/Linux-LiveCD, возникший как результат слияния WHAX и Auditor Security Collection. Проект создали Мати Ахарони (Mati Aharoni) и Макс Мозер (Max Moser). Предназначен прежде всего для проведения тестов на безопасность). И пакет уже установленных программ Airocrack-ng (Это полный набор инструментов для оценки безопасности сети Wi-Fi.)
Первым этапом нам надо перевести наш Wi-Fi адаптер в режим мониторинга. То есть чип адаптера переводиться в режим прослушивания эфира. Все пакеты которые отсылают друг другу в округе.
Сначала мы убьем все процессы которые используют Wi-Fi интерфейс:
airmon-ng check kill
Запустите беспроводной интерфейс в режиме мониторинга:
airmon-ng start wlan0
В результате у вас появиться новый интерфейс wlan0mon с ним дальше мы и будем работать (посмотреть доступные интерфейсы можно командой ifconfig ). Теперь мы можем посмотреть что же происходит вокруг:
airodump-ng wlan0mon

- BSS >airodump-ng —manufacturer —uptime—wps wlan0mon
Запускаем airodump-ng для беспроводного интерфейса wlan0mon, кроме основной информации мы задаём отображать производителя (—manufacturer), время работы (—uptime) и информацию о WPS (—wps).
-c номер канал.
—bssid мас адрес точки доступа
-w файл в который будут сохранены все перехваченные пакты.
wlan0mon Название беспроводного интерфейса интерфейса.
После удачного захвата рукопожатий в правом углу будет надпись WPA handshake

К стати мы можем попытаться ускорить процесс , заставив клиента переподключиться к точки доступа :
aireplay-ng —deauth 100 -a 00:11:22:33:44:55 -c AA:BB:CC:DD:EE:FF wlan0mon
—deauth — отправка запроса деаунтифицировать. (0 не ограниченное число пакетов)
-a — Мас адрес точки доступа.
-с — Мас адрес клиента.
wlan0mon — интерфейс.
Другие виды атак :
Теперь нам надо расшифровать его и узнать PSK:
aircrack-ng -w wordlist.dic -b C0:4A:00:F0:F4:24 WPA.cap
-w — Указываем словарь для перебора паролей.
-b — Мас адрес точки доступа.
WPA.cap — Файл с handshake.

aircrack-ng всем хорош, но у него нету функции паузы и запоминания места где вы остановились. Это очень не удобно когда у вас огромный словарь ) Мы это справим программой John The Ripper (свободная программа, предназначенная для восстановления паролей по их хешам. Основное назначение программы — аудит слабых паролей в UNIX системах путем перебора возможных вариантов.Она уже есть в дистрибутиве).
john —session=foo —stdout —wordlist=wordlist.dic | aircrack-ng -w — -b 00:11:22:33:44:55 WPA.cap
То есть мы будем брать пароли из словаря этой программной и направлять их в aircrack-ng.
—session — Имя сессии.
— stdout — Путь к словарю.
Для паузы нам надо нажать q или ctrl+c. Программа создаст специальный файл с сессией и запомнит место где мы остановились. Продолжить сессию мы можем командой :
john —restore=foo | aircrack-ng -w — -b 00:11:22:33:44:55 WPA.cap
Создание своих словарей.
При атаках типа брутфорс словари играют очень важную роль. Я думаю вы с легкость найдете в интернете куча всяких не понятных словарей. Но еще можно и нужно делать самому.
Для этого в дистрибутиве Kali Linux есть интересная утилита, называется Crunch. Синтаксис ее довольно прост:
- min = минимальная длина пароля;
- max = максимальная длина;
- characterset = символы, которые будут использоваться для генерации паролей;
- -t
= возможность создавать паттерны. Давай на примере. Скажем, ты знаешь, что у человека день рождения 28 июля и эти цифры есть в пароле вида 0728, но перед этим числом есть еще какие-то символы. Поэтому ты пишешь что-то вроде @@@@@@@0728, и получается, что лист будет сгенерирован на 11 -значный пароль. Семь символов, которые будут генериться, а четыре будут фиксированными. По мне, так весьма крутая и удобная фишка;
crunch 4 8
Как сам понимаешь, кранч будет генерить пароли от 4 до 8 символов. Как видишь, ничего сложного, теперь давай что-нибудь поинтереснее:
crunch 6 8 1234567890 -о /гооt/wordlist.txt
Здесь будет сгенерирован словарь от 6 до 8 символов, в пароле только цифры и зальются они во внешний файл, что мы указали. Остается только воспользоваться получившимся словарем.
crunch 1 1 -p Alex Company Position
Словарь состоит из всех возможных комбинаций слов Alex, Company и Position.

Для тега -t есть шаблоны :
- ^ — спецсимволы.
- @ — буквы в нижнем регистре.
- , — буквы в верхнем регистре.
- % — цифры.
Обход фильтра MAC адреса.
Иногда в точках доступа включают фильтрации по пользователе по MAC. Так вот, это совсем бесполезна штука.
В Linux системах вы можете свободно поменять ваш МАС адрес на любой:
ifconfig wlan0 down
ifconfig wlan0 hw ether 00:11:22:AA:AA:AA
ifconfig wlan0 up
Предварительно нужно отключить любые mon-интерфейсы. Проверить, заработала ли подмена, можно вызвав ifconfig wlan0 — в строке Hwaddr должен быть указанный выше MAC.
Кроме того, в *nix есть macchanger — с его помощью можно выставить себе случайный MAC. Если поставить его в init.d, то неприятель будет совершенно сбит с толку, так как при каждой загрузке наш MAC будет другим (работает для любых проводных и беспроводных адаптеров, как и ifconfig).
# Случайный MAC:
macchanger -r wlan0
# Определённый MAC:
macchanger -m 11:22:33:AA:BB:CC wlan0
# Показать MAC:
macchanger -s wlan0
В Kali Linux есть база данных валидных MAC адресов:
- /var/lib/ieee-data/oui.txt
- /var/lib/ieee-data/oui36.txt.
- /var/lib/ieee-data/iab.txt
- /var/lib/ieee-data/mam.txt
А обновить базу данных можно командой
airodump-ng-oui-update
Атака на WPS.
Wi-Fi Protected Setup (защищённая установка), WPS — стандарт (и одноимённый протокол) полуавтоматического создания беспроводной сети Wi-Fi.
В декабре 2011 Стефан Фибёк (англ. Stefan Viehböck) и Крейг Хеффнер (англ. Craig Heffner) рассказали о серьёзных прорехах в протоколе WPS. Оказалось, что если в точке доступа активирован WPS c PIN ( который по умолчанию включен в большинстве роутеров ), то подобрать PIN-код для подключения можно за считанные часы.
PIN-код состоит из восьми цифр — следовательно, существует 108 (100 000 000) вариантов PIN-кода для подбора. Однако количество вариантов можно существенно сократить. Дело в том, что последняя цифра PIN-кода представляет собой контрольную сумму, которая можно вычислить на основании первых семи цифр. Таким образом количество вариантов уже сокращается до 107 (10 000 000).
Авторизация по WPS предполагает отправку клиентом последовательности цифр PIN-кода и пакетов M4 или M6 и ответы на них от базовой станции. Если первые 4 цифры PIN-кода некорректны то получив их точка доступа отправит EAP-NACK сразу после получения M4, а если была ошибка в последних 3 цифрах правой части (8-ое число не считаем так как оно легко генерируется атакующим по формуле) — то после получения M6. Таким образом, недостаток протокола позволяет разделить PIN-код на две части, 4 начальные цифры и 3 последующие.
Также были обнаружены уязвимости в генераторе случайных чисел маршрутизаторов некоторых производителей. Уязвимость получила название pixie dust. Для уязвимых роутеров можно получить pin после первой попытки и оффлайн-брутфорса.
Алгоритм атаки:
- Переводим беспроводной интерфейс в режим монитора.
- Ищем цели для атаки.
- Проверяем на подверженность Pixie Dust.
- Запускаем полный перебор, если предыдущие шаги не дали результата.
- Если получен ПИН, но не показан WPA пароль, то запускаем команды для получения пароля от Wi-Fi.
Для поиска точек доступ можем воспользоваться удобной программой Wash. Wash — это утилита для идентификации точек доступа с включённым WPS. Она может искать с живого интерфейса и уже есть в Kali Linux.
Или может сканировать список pcap файлов:
wash -f capture1.pcap

Нас интересует опция Lck (No не блокирован WPS) и Vendor (производитель). Pixie Dust подвержены Ralink, Broadcom и Realtek.
Перейдем к пункту Pixie Dust. Для проверки мы будем использовать программу reaver (Reaver предназначен для подборки пина WPS (Wifi Protected Setup) методом перебора. Уже есть в Kali Linux).
reaver -i интерфейс -b MAC_адрес_точки -K

Как можно увидеть на скриншоте, Точка Доступа оказалась уязвимой, и получен её WPS пин.
Теперь нам надо узнать пароль. Для получения пароля Wi-Fi сети вам нужно в Reaver использовать опцию -p, после которой указать известный ПИН.
reaver -i wlan0 -b EE:43:F6:CF:C3:08 -p 36158805
Все пошло не так!
Попробуем сразу вдарить молотком и запустим полный перебор пина.
reaver -i интерфейс -b MAC_адрес
Перебор WPS пинов может идти неудачно по многим причинам, поэтому для более подробного вывода, чтобы определить, в чём проблема, используются опции -v, -vv или -vvv. Как можно догадаться, чем больше букв v, тем больше будет выведено подробной информации.
При полном переборе reaver показывает но только WPS но пароль доступа к WiFi. для получения пароля Wi-Fi сети вам нужно в Reaver использовать опцию -p, после которой указать известный ПИН.
Если будут какие то проблемы можно поиграть с дополнительными опциями reaver , например так :
reaver -i wlan0mon -c 6 -a MAC —no-nacks -T .5 -d 15
—no-nacks Не отправлять сообщения NACK когда получены пакеты о неисправности.
-c Номер канала точки доступа.
-T Установить период таймаута M5/M7 по умолчанию [0.20].
-d Установить задержку между попытками пина, по умолчанию [1]
-x Установить время для паузы после 10 неожиданных неудач, по умолчанию [0].
*Особая заметка: если вы атакуете ТД Realtek, НЕ используйте малые ключи DH (-S)
Список инструментов для тестирования на проникновение и их описание
Описание Airmon-ng
airmon-ng — это баш скрипт, созданный для перевода беспроводных карт в режим наблюдения.
Автор: Thomas d’Otreppe, Первоначальная работа: Christophe Devine
Справка по Airmon-ng
Руководство по Airmon-ng
airmon-ng — это скрипт, который может использоваться для включения режима наблюдения на беспроводном интерфейсе. Он также может использоваться для перевода из режима наблюдения в режим управляемости. Ввод команды airmon-ng без параметров отобразит статус интерфейсов. Она может выводить список/убивать программы, которые могут вмешиваться в беспроводную карту и также устанавливает верные источники в /etc/kismet/kismet.conf.
start [канал]
Включает режим наблюдения на интерфейсе (и задаёт канал).
check [kill]
Список программ, которые могут вмешиваться в беспроводную карту. Если указать ‘kill’, то будет сделана попытка убить их всех.
Примеры запуска Airmon-ng
Просматриваем доступные сетевые интерфейсы:
Проверяем процессы, которые могут нам помешать
Перед переводом в режим наблюдения, убиваем процессы, которые нам могут помешать:
Пытаемся перевести интерфейс wlan0 в режим наблюдения:
Проверяем, была ли беспроводная карта переведена в режим монитора:
Сетевая карта изменила название интерфейса и переведена в режим монитора, наблюдения (об этом свидетельствует строка Monitor).
Возврат в режим управляемости
Альтернативный способ перевода в режим монитора
Вы можете использовать альтернативный вариант перевода беспроводного интерфейса в режим наблюдения:
Или в одну строку
Всё прошло успешно — сетевая карта переведена в режим наблюдения (об этом говорит строка Mode:Monitor).
Возврат в управляемый режим:
Перевод в режим монитора с помощью команд ip и iw
Команды ifconfig и iwconfig признаны устаревшими. Поэтому хотя предыдущий способ попрежнему прекрасно работает, доступна альтернативная его реализация с помощью новых программ. Узнайте имя беспроводного интерфейса:
Далее выполните последовательность команд
заменив на действительное имя вашего беспроводного интерфейса (у меня это wlan0):
В BlackArch (имя интерфейса wlp2s0), последовательность команд выглядит так:
Команда в одну строку:
Следующая большая команда должна сама определять имя беспроводного интерфейса и переводить его в режим монитора:
Возврат в управляемый режим:
Для интерфейса wlan0 реальные команды выглядят так:
NetworkManager препятствует переводу беспроводной карты в режим наблюдения
При определённых условиях NetworkManager может не дасть Wi-Fi адаптеру перевестись в режим монитора. Более того, уже переведённую в режим монитора беспроводную карту он может вернуть в управляемый режим. Поэтому рекомендуется отключать NetworkManager при тестировании на проникновение беспроводных сетей.
В Kali Linux и BlackArch это делается так:
Примечание, после отключения NetworkManager пропадёт Интернет!
Установка Airmon-ng
Программа предустановлена в Kali Linux.
Установка в другие операционные системы
Эта программа из пакета Aircrack-ng. Т.е. для её установки нужно установить Aircrack-ng.
User Tools
Site Tools
Table of Contents
Description
This script can be used to enable monitor mode on wireless interfaces. It may also be used to go back from monitor mode to managed mode. Entering the airmon-ng command without parameters will show the interfaces status.
Usage
usage: airmon-ng [channel] or airmon-ng
Usage Examples
Typical Uses
Check status and/or listing wireless interfaces
Checking for interfering processes
When putting a card into monitor mode, it will automatically check for interfering processes. It can also be done manually by running the following command:
Killing interfering processes
This command stops network managers then kill interfering processes left:
Enable monitor mode
Note: It is very important to kill the network managers before putting a card in monitor mode!
As you can see, it created a monitor mode interface called wlan0mon and it notified there are a few process that will interfere with the tools.
Disable monitor mode
Don’t forget to restart the network manager. It is usually done with the following command:
Madwifi-ng driver monitor mode
This describes how to put your interface into monitor mode. After starting your computer, enter “iwconfig” to show you the current status of the wireless interfaces. It likely looks similar the following output.
If you want to use ath0 (which is already used):
And the system will respond:
Now, if you do “iwconfig”:
You can see ath0 is gone.
To put wifi0 in monitor mode:
Now enter “iwconfig”
You can see ath0 is in monitor mode. Also make sure the essid, nickname and encryption have not been set. The access point shows the MAC address of the card. The MAC address of the card is only shown when using the madwifi-ng driver. Other drivers do not show the MAC address of the card.
If ath1/ath2 etc. is running then stop them first prior to all the commands above:
You can set the channel number by adding it to the end: airmon-ng start wifi0 9
Usage Tips
Confirming the Card is in Monitor Mode
To confirm that the card is in monitor mode, run the command “iwconfig”. You can then confirm the mode is “monitor” and the interface name.
For the madwifi-ng driver, the access point field from iwconfig shows your the MAC address of the wireless card.
Determining the Current Channel
To determine the current channel, enter “iwlist channel”. If you will be working with a specific access point, then the current channel of the card should match that of the AP. In this case, it is a good idea to include the channel number when running the initial airmon-ng command.
How Do I Put My Card Back into Managed Mode?
It depends on which driver you are using. For all drivers except madwifi-ng:
For madwifi-ng, first stop ALL interfaces:
Where X is 0, 1, 2 etc. Do a stop for each interface that iwconfig lists.
For mac80211 drivers, nothing has to be done, as airmon-ng keeps the managed interface alongside the monitor mode one (mac80211 uses interface types rather than modes of operation). If you no longer need the monitor interface and want to remove it, use the following:
X is the monitor interface number — 0 unless you run multiple monitoring interfaces simultaneously.
Debugging issues
airmon-ng has two options to show more information, which can be useful when reporting or debugging issues.
—verbose flag
It gives information about the system as well as details about the wireless card.
In this case, the following additional information can be seen:
—debug flag
It will give the same information as verbose and add more details:
Usage Troubleshooting
Madwifi-ng
Quite often, the standard scripts on a linux distribution will setup ath0 and or additional athX interfaces. These must all be removed first per the instructions above. Another problem is that the script set fields such as essid, nickname and encryptions. Be sure these are all cleared.
Airmon-ng says the interface is not in monitor mode
It most likely mean the interface mode was changed from monitor to managed mode by a network manager. In this case, when stopping monitor mode, this is not a problem.
My interface was put in monitor mode but tools says it is not
It usually means the interface was put in monitor mode prior to killing network managers. And the network manager put the card back in managed mode.
Refer to the documentation above to kill network managers and put it back into monitor mode.
Interface athX number rising (ath0, ath1, ath2. ath45..)
The original problem description and solution can be found in this forum thread.
Problem: Every time the command “airmon-ng start wifi0 x” is run, a new interface is created as it should, but there where two problems. The first is that for each time airmon-ng is run on wifi0 the interface number on ath increases: the first time is ath1, the second ath2, the third ath3, and and so on. And this continues so in a short period of time it is up to ath56 and continuing to climb. Unloading the madwifi-ng driver, or rebooting the system has no effect, and the number of the interface created by airmon-ng continues to increase.
The second problem is that if you run airmon-ng on wifi0 the athXX created does not show as being shown as in Monitor mode, even though it is. This can be confirmed via iwconfig.
All these problem related to how udev assigns interface names. The answer is in this ticket: http://madwifi-project.org/ticket/972#comment:12 Thanks to lucida. The source of the problem comes from the udev persistent net rules generator.
Each distro is different… So here is a solution specifically for Gentoo. You should be able to adapt this solution to your particular distribution.
Gentoo 2.6.20-r4 Udev 104-r12 Madwifi 0.9.3-r2 Aircrack-ng 0.7-r2
Change the file /etc/udev/rules.d/75-persistent-net-generator.rules
From: KERNEL==“eth*|ath*|wlan*|ra*|sta*…….. To: KERNEL==“eth*|Ath*|wlan*|ra*|sta*…….
In other words, you just capitalize the a. ath* becomes Ath*. Save the file.
Now delete the file /etc/udev/rules.d/70-persistent-net.rules.
Remove the driver and insert back.
Removing ath also works: KERNEL==“eth*|wlan*|ra*|sta*….
This is also on Gentoo, both 2.6.19-gentoo-r5 and 2.6.20-gentoo-r6
For Ubuntu, see this Forum posting. The modified version of /etc/udev/rules.d/75-persistent-net-generator.rules is:
Interface ath1 created instead of ath0
This troubleshooting tip applies to madwifi-ng drivers. First try stopping each VAP interface that is running (“airmon-ng stop IFACE” where IFACE is the VAP name). You can obtain the list from iwconfig. Then do “airmon-ng start wifi0”.
If this does not resolve the problem then follow the advice in this thread.
Why do I get ioctl(SIOCGIFINDEX) failed?
If you get error messages similar to:
Error message: "wlanconfig: command not found"
If you receive “wlanconfig: command not found” or similar then the wlanconfig command is missing from your system or is not in the the path. Use locate or find to determine if it is on your system and which directory it is in.
If it is missing from your system then make sure you have done a “make install” after compiling the madwifi-ng drivers. On Ubuntu, do “apt-get install madwifi-tools”.
If it is not in a directory in your path then move it there or add the directory to your path.
airmon-ng shows RT2500 instead of RT73
Error "add_iface: Permission denied"
You receive an error similar to:
or similar to this:
This means you have an old version of airmon-ng installed. Upgrade to at least v1.0-rc1. Preferably you should upgrade to the current version. See the installation page for more details. Also, don’t forget you need to be root to use airmon-ng (or use sudo).
check kill fails
Distros from now on are going to adopt ‘upstart’ which is going to replace the /sbin/init daemon which manages services and tasks during boot.
and then proceed with greping and killing the pids of dhclient and wpa_supplicant.
This is the only way to kill ALL of the potentially problematic pids for aireplay-ng permanently. The trick is the kill the daemons first and then terminate the ‘tasks’.
SIOCSIFFLAGS: Unknown error 132
If you have an output similar to:
It indicates that RF are blocked. It needs to be enabled by using the switch on your laptop and/or using the following command:
ERROR adding monitor mode interface: command failed: Operation not supported (-95)
It is known to happen on the Raspberry Pi, when using airmon-ng . When that happens, the following can be seen in dmesg:
There may be instances of the following in dmesg as well prior to the above output:
Even though dmesg says the interface is already in monitor mode and “iw dev wlan0 info” confirms it is, airodump-ng will fail and report the interface data linktype is Ethernet. This is a bug in the driver and/or firmware, and the workaround is to reboot the system or to reload the driver:





