В прошлой статье о беспроводных сетях мы рассмотрели первый этап — сбор информации, или wardriving. Сейчас же, продемонстрируем несколько способов получения несанкционированного доступа к беспроводным сетям, а также рекомендации по защите от них.
Сначала перечислим варианты защиты, которые могут быть использованы на точке доступа для ограждения сети от чужих пользователей:
Важно отметить, что эти методы не обеспечивают конфиденциальности данных, передаваемых по сети, они просто ограничивают доступ к сети. То есть, даже если все эти средства включены на точке доступа, злоумышленник сможет, включив свой беспроводной адаптер в «monitor mode», слушать эфир и вылавливать всю передаваемую информацию. Следующие методы криптографически защищают данные:
Сегодня мы рассмотрим обход первых четырех систем защиты. Основной инструмент для подобных манипуляций — программный пакет Aircrack-ng suite. Мы рекомендуем использовать ОС Linux, так как этот пакет более развит в Linux версии, и что более важно — подходящие драйверы, позволяющие атаковать беспроводные сети, более широко представлены под Linux (На Windows платформах поддерживаются только адаптеры компании CACE — Airpcap). Подробные инструкции по установке правильных драйверов и самого Aircrack-ng вы найдете здесь. Теперь приступим к самому процессу.
Для удобства в дальнейшем будем использовать такие обозначения:
00:aa:aa:aa:aa:aa — MAC адрес точки доступа
00:cc:cc:cc:cc:cc — MAC адрес подключенного к этой точке клиента
00:ff:ff:ff:ff:ff — MAC адрес нашего адаптера
wlan0 — имя нашего беспроводного интерфейса
При подключении к точке доступа, на которой активировано скрытие имени, клиент всегда отправит это имя. Поэтому нам достаточно дождаться одного клиента и все. Для этого запускаем
airodump-ng wlan0 -c <канал, на котором находится точка доступа>
и если в крайней колонке вы видите <Length:X>, где Х — некое число, то эта сеть скрывает свое имя. Далее нужно подождать немного, пока кто-то подключиться, и тогда значение в колонке изменится на имя сети автоматически. Либо, если долго не удается ничего словить, то можно запустить деаутентификацию командой
aireplay-ng wlan0 -0 100 -b 00:aa:aa:aa:aa:aa, где 100 — количество деаутентификаций клиентов
Эта операция начнет рассылать пакеты, приказывающие клиентам, подключенным к точке доступа, отключиться от нее. Они отключатся и через несколько секунд начнут подключаться вновь, отсылая в запросе на подключение имя сети. Соответственно airodump-ng его сразу покажет. Для большей эффективности деаутентификации лучше атаковать конкретного подключенного клиента
aireplay-ng wlan0 -0 100 -b 00:aa:aa:aa:aa:aa -с 00: сс: сс: сс: сс: сс
Также для целей раскрытия имени сети можно использовать kismet. Эта программа автоматически выдает имя сети при подключении к ней клиента.
Для подключения к точке доступа, которая фильтрует пользователей по MAC адресу их адаптера, необходимо знать лишь MAC адрес уже подключенного клиента. Зная адрес, в ОС Linux выполните
ifconfig wlan0 down
ifconfig wlan0 hw ether 00:cc:cc:cc:cc:cc
ifconfig wlan0 up
либо для OC Windows, воспользуйтесь утилитой MAC changer. Далее необходимо дождаться пока
легитимный клиент отключится, и тогда подключиться, либо использовать атаку деаутентификации на легитимного клиента.
Если вы пытаетесь проделать фальшивую аутентификацию командой
aireplay-ng wlan0 -1 4000 -a 00:aa:aa:aa:aa:aa
и вместо сообщения об успехе получаете
Sending Authentication Request
AP rejects open-system authentication
Please specify a PRGA-file (-y),
то необходимо получить екземпляр аутентификации с общим ключом. Программа airodump-ng это умеет. Запускаем её и ожидаем, пока поле AUTH для выбранной сети не станет равно SKA. Это значит, что программа словила аутентификацию и сохранила ее в файл с именем sharedkey-*.xor. Далее выполняем
aireplay-ng -1 4000 -e <имя сети> -y sharedkey-<ваш файл>.xor -a 00:aa:aa:aa:aa:aa -h 00:ff:ff:ff:ff:ff wlan0
и вы аутентифицируетесь. Если же долго не появляется SKA в airodump-ng, то можно, как и в случае с раскрытием имени, деаутентифицировать существующего клиента.
Алгоритм шифрования используемый WEP еще в начале этого века был взломан, и после этого уже несколько раз в нём находились еще большие уязвимости, позволяющие восстанавливать ключ шифрования еще быстрее. Первая программа, осуществляющая взлом WEP ключа, называлась airsnort и могла это сделать, словив 8-10 миллионов пакетов. Позже, aircrack-ng это позволяла сделать в 10 раз быстрее. А в 2005 году с приходом aircrack-ptw необходимое количество пакетов уменьшилось до 20-80 тысяч, в зависимости от длины ключа.
Для того, чтобы не ждать, пока адаптер словит 80 000 пакетов, мы будем эти пакеты генерировать сами. И самый лучший для этой цели пакет — ARP. Его можна добыть несколькими способами. Но начнем мы с фальшивой аутентификации, без которой точка доступа будет просто игнорировать наши отправляемые пакеты.
aireplay-ng wlan0 -1 4000 -a 00:aa:aa:aa:aa:aa
И запускаем Airodump-ng, чтоб сохранять пакеты
airodump-ng wlan0 -c 6 -w save, где 6 — канал сети, save — сохранение
Далее самый простой способ:
aireplay-ng wlan0 -3 -a 00:aa:aa:aa:aa:aa
В этом случае адаптер ловит пакеты и ожидает ARP пакеты. Когда же он появится программа, автоматически начинает его ретранслировать, генерируя новые пакеты, необходимые нам для взлома ключа. После этого запускаете программу:
aircrack-ng save-*.cap
и ждете пока она вам не выдаст ключ сети.
Так же можно самим создать этот ARP пакет. Для этого нам понадобится поток ключа (keystream). Достать его можна двумя способами. Первый — chop-chop атака, более медленная но срабатывает чаще.
aireplay-ng wlan0 -4 -b 00:aa:aa:aa:aa:aa
Вскоре программа словит пакет и, если его размер больше 56 байт, можете нажимать 'y'. Через некоторое время поток будет добыт и сохранен в replay_dec-*.xor. Если же программа выдала ошибку, попробуйте запустить её так:
aireplay-ng wlan0 -4 -b 00:aa:aa:aa:aa:aa -h 00:ff:ff:ff:ff:ff
И обязательно перед этим запустите фальшивую аутентификацию.
Другой вариант — фрагментационная атака. Она значительно быстрее, но работает не на всех точках доступа.
aireplay-ng wlan0 -5 -b 00:aa:aa:aa:aa:aa
После успешного выполнения вы также получите файл fragment-*.xor
Далее, имея файл с потоком ключа, мы создаем пакет:
packetforge-ng -0 -a 00:aa:aa:aa:aa:aa -h 00:ff:ff:ff:ff:ff -k 255.255.255.255 -l 255.255.255.255 -y <файл с потоком> -w arp, где arp — файл для сохранения пакета.
Теперь мы этот пакет будем постоянно отправлять:
aireplay-ng wlan0 -2 -r arp
И также, как и в первом варианте, запускаем aircrack-ng и ожидаем вывода ключа сети.
Как видите, все эти 4 метода имеют уязвимости и легко обходятся, так что даже комбинация SSID cloaking + Mac filtering + SKA +WEP займет у злоумышленника больше времени, но в итоге своего он добьется. Поэтому мы рекомендуем использовать исключительно WPA2 с длинными ключами в случае PSK и надежной системой внешней аутентификации в случае WPA2-Enterprise. Остальные методы не предоставляют достаточного уровня безопасности.
В следующей статье мы рассмотри более экзотические атаки на WEP (caffe-latte, client fragmentation и подключение к сети, не зная wep ключа), а также атаки на WPA и способы защиты от них.
Сначала перечислим варианты защиты, которые могут быть использованы на точке доступа для ограждения сети от чужих пользователей:
- SSID Cloaking — скрытие имени сети. Доступ разрешается только клиентам, которые знают это имя.
- MAC Filtering — фильтрация по MAC адресам. Доступ разрешается только клиентам, адреса сетевых адаптеров которых записаны в точке доступа.
- Shared key Authentication — аутентификация с общим ключом. Доступ разрешается лишь тем клиентам, которые прошли проверку, используя общий ключ.
Важно отметить, что эти методы не обеспечивают конфиденциальности данных, передаваемых по сети, они просто ограничивают доступ к сети. То есть, даже если все эти средства включены на точке доступа, злоумышленник сможет, включив свой беспроводной адаптер в «monitor mode», слушать эфир и вылавливать всю передаваемую информацию. Следующие методы криптографически защищают данные:
- WEP — статистически самый используемый метод защиты беспроводной сети. Предоставляет шифрование всех передаваемых по сети данных. Аутентификации, как таковой не имеет — если вы не знаете ключа, вы не сможете расшифровать данные. Недостаток этого метода — очень слабый алгоритм, ключ взламывается злоумышленником менее чем за 5 минут.
- WPA и WPA2 Pre-Shared Key — сильная система аутентификации и шифрования данных. Доступ производится через общий ключ. Уровень защиты равен сложности общего ключа, так как система подвержена brute force атакам.
- WPA и WPA2 Enterprise — вариант предыдущей системы, но для подтверждения личности используется внешний аутентификатор 802.1x EAP, что позволяет использовать сертификаты, смарт карты и т.д.
Сегодня мы рассмотрим обход первых четырех систем защиты. Основной инструмент для подобных манипуляций — программный пакет Aircrack-ng suite. Мы рекомендуем использовать ОС Linux, так как этот пакет более развит в Linux версии, и что более важно — подходящие драйверы, позволяющие атаковать беспроводные сети, более широко представлены под Linux (На Windows платформах поддерживаются только адаптеры компании CACE — Airpcap). Подробные инструкции по установке правильных драйверов и самого Aircrack-ng вы найдете здесь. Теперь приступим к самому процессу.
Для удобства в дальнейшем будем использовать такие обозначения:
00:aa:aa:aa:aa:aa — MAC адрес точки доступа
00:cc:cc:cc:cc:cc — MAC адрес подключенного к этой точке клиента
00:ff:ff:ff:ff:ff — MAC адрес нашего адаптера
wlan0 — имя нашего беспроводного интерфейса
1.Обход SSID Cloaking
При подключении к точке доступа, на которой активировано скрытие имени, клиент всегда отправит это имя. Поэтому нам достаточно дождаться одного клиента и все. Для этого запускаем
airodump-ng wlan0 -c <канал, на котором находится точка доступа>
и если в крайней колонке вы видите <Length:X>, где Х — некое число, то эта сеть скрывает свое имя. Далее нужно подождать немного, пока кто-то подключиться, и тогда значение в колонке изменится на имя сети автоматически. Либо, если долго не удается ничего словить, то можно запустить деаутентификацию командой
aireplay-ng wlan0 -0 100 -b 00:aa:aa:aa:aa:aa, где 100 — количество деаутентификаций клиентов
Эта операция начнет рассылать пакеты, приказывающие клиентам, подключенным к точке доступа, отключиться от нее. Они отключатся и через несколько секунд начнут подключаться вновь, отсылая в запросе на подключение имя сети. Соответственно airodump-ng его сразу покажет. Для большей эффективности деаутентификации лучше атаковать конкретного подключенного клиента
aireplay-ng wlan0 -0 100 -b 00:aa:aa:aa:aa:aa -с 00: сс: сс: сс: сс: сс
Также для целей раскрытия имени сети можно использовать kismet. Эта программа автоматически выдает имя сети при подключении к ней клиента.
2.Обход MAC Filtering
Для подключения к точке доступа, которая фильтрует пользователей по MAC адресу их адаптера, необходимо знать лишь MAC адрес уже подключенного клиента. Зная адрес, в ОС Linux выполните
ifconfig wlan0 down
ifconfig wlan0 hw ether 00:cc:cc:cc:cc:cc
ifconfig wlan0 up
либо для OC Windows, воспользуйтесь утилитой MAC changer. Далее необходимо дождаться пока
легитимный клиент отключится, и тогда подключиться, либо использовать атаку деаутентификации на легитимного клиента.
3.Обход Shared Key Authentication
Если вы пытаетесь проделать фальшивую аутентификацию командой
aireplay-ng wlan0 -1 4000 -a 00:aa:aa:aa:aa:aa
и вместо сообщения об успехе получаете
Sending Authentication Request
AP rejects open-system authentication
Please specify a PRGA-file (-y),
то необходимо получить екземпляр аутентификации с общим ключом. Программа airodump-ng это умеет. Запускаем её и ожидаем, пока поле AUTH для выбранной сети не станет равно SKA. Это значит, что программа словила аутентификацию и сохранила ее в файл с именем sharedkey-*.xor. Далее выполняем
aireplay-ng -1 4000 -e <имя сети> -y sharedkey-<ваш файл>.xor -a 00:aa:aa:aa:aa:aa -h 00:ff:ff:ff:ff:ff wlan0
и вы аутентифицируетесь. Если же долго не появляется SKA в airodump-ng, то можно, как и в случае с раскрытием имени, деаутентифицировать существующего клиента.
4. Взлом Wep ключа
Алгоритм шифрования используемый WEP еще в начале этого века был взломан, и после этого уже несколько раз в нём находились еще большие уязвимости, позволяющие восстанавливать ключ шифрования еще быстрее. Первая программа, осуществляющая взлом WEP ключа, называлась airsnort и могла это сделать, словив 8-10 миллионов пакетов. Позже, aircrack-ng это позволяла сделать в 10 раз быстрее. А в 2005 году с приходом aircrack-ptw необходимое количество пакетов уменьшилось до 20-80 тысяч, в зависимости от длины ключа.
Для того, чтобы не ждать, пока адаптер словит 80 000 пакетов, мы будем эти пакеты генерировать сами. И самый лучший для этой цели пакет — ARP. Его можна добыть несколькими способами. Но начнем мы с фальшивой аутентификации, без которой точка доступа будет просто игнорировать наши отправляемые пакеты.
aireplay-ng wlan0 -1 4000 -a 00:aa:aa:aa:aa:aa
И запускаем Airodump-ng, чтоб сохранять пакеты
airodump-ng wlan0 -c 6 -w save, где 6 — канал сети, save — сохранение
Далее самый простой способ:
aireplay-ng wlan0 -3 -a 00:aa:aa:aa:aa:aa
В этом случае адаптер ловит пакеты и ожидает ARP пакеты. Когда же он появится программа, автоматически начинает его ретранслировать, генерируя новые пакеты, необходимые нам для взлома ключа. После этого запускаете программу:
aircrack-ng save-*.cap
и ждете пока она вам не выдаст ключ сети.
Так же можно самим создать этот ARP пакет. Для этого нам понадобится поток ключа (keystream). Достать его можна двумя способами. Первый — chop-chop атака, более медленная но срабатывает чаще.
aireplay-ng wlan0 -4 -b 00:aa:aa:aa:aa:aa
Вскоре программа словит пакет и, если его размер больше 56 байт, можете нажимать 'y'. Через некоторое время поток будет добыт и сохранен в replay_dec-*.xor. Если же программа выдала ошибку, попробуйте запустить её так:
aireplay-ng wlan0 -4 -b 00:aa:aa:aa:aa:aa -h 00:ff:ff:ff:ff:ff
И обязательно перед этим запустите фальшивую аутентификацию.
Другой вариант — фрагментационная атака. Она значительно быстрее, но работает не на всех точках доступа.
aireplay-ng wlan0 -5 -b 00:aa:aa:aa:aa:aa
После успешного выполнения вы также получите файл fragment-*.xor
Далее, имея файл с потоком ключа, мы создаем пакет:
packetforge-ng -0 -a 00:aa:aa:aa:aa:aa -h 00:ff:ff:ff:ff:ff -k 255.255.255.255 -l 255.255.255.255 -y <файл с потоком> -w arp, где arp — файл для сохранения пакета.
Теперь мы этот пакет будем постоянно отправлять:
aireplay-ng wlan0 -2 -r arp
И также, как и в первом варианте, запускаем aircrack-ng и ожидаем вывода ключа сети.
5.Защита
Как видите, все эти 4 метода имеют уязвимости и легко обходятся, так что даже комбинация SSID cloaking + Mac filtering + SKA +WEP займет у злоумышленника больше времени, но в итоге своего он добьется. Поэтому мы рекомендуем использовать исключительно WPA2 с длинными ключами в случае PSK и надежной системой внешней аутентификации в случае WPA2-Enterprise. Остальные методы не предоставляют достаточного уровня безопасности.
В следующей статье мы рассмотри более экзотические атаки на WEP (caffe-latte, client fragmentation и подключение к сети, не зная wep ключа), а также атаки на WPA и способы защиты от них.