А вы задумывались когда нибудь, сколько стоит разгадать пароль вашего Wi-Fi? Понятно, что все прекрасно помнят, что с увеличением длины парольной фразы - увеличивается сложность и при достаточной длине, перебор занимает ХХХХ - лет.
Давайте вместе разберемся - сколько это стоит в $$$ деньгах
Итак, как все мы прекрасно знаем, что самое уязвимое место двери - это замок, а самое не защищенное место в нашей беспродной сети (после физического доступа к роутеру) - это момент установления соединения.
Немного про установление соединение
Процесс установления защищенного соединения в сети Wi-Fi с использованием протокола WPA2 (Wi-Fi Protected Access 2) включает в себя несколько этапов:
Поэтому если злоумышленнику получится подслушать эфир, то есть далеко не теоретическая возможноость получить дамп рукопожатий, и попробовать получить пароль перебором разных вариантов паролей.
Вот примерный механизм получения дампа
Перехват рукопожатия в беспроводной сети WPA2 происходит на этапе обмена ключами 4-Way Handshake. Вот как это происходит:
Если атакующий слушает эфир, то может произвести Перехват рукопожатия. Те перехватить этот обмен сообщениями (M1, M2, M3, M4) между клиентом и точкой доступа. Если получить полный 4-Way Handshake, он сможет использовать этот дамп рукопожатие для дальнейшей атаки, такой как атака перебором пароля с использованием словаря (dictionary attack) или атака методом перебора (brute-force).
Как на практике поймать рукопожатие.
В сети огромное количество описаний с использованием Kali Linux, внешних чувствительных сетевых карт. В данном случае - это было не важно, и нужно было просто получить само рукопожатие. Поэтому будем использовать встроенную карточку и MacOS.
В качестве простого и удобного интерфейса я выбрал
Запуск тоже происходит совсем не сложно
Выбираем нашу сеть и просто ждем.
Получили рукопожатие.
После получения рукопожатия, в папке будет сохранен файл - capture.hc22000 , который уже готов к брутфорсу.
Давайте проверим, сколько выдаст"попугаев" хешей в секунду, наш мобильный CPU - i5-7360U.
Всего 2415 H/s
Далее попробуем перебор на облачном сервере.
Возьмём самую жирную комплектацию, а именно - 96 ядер IceLake - цена 1,27$/h (127,95 ₽ в час)
Уже гораздо лучше, 240 кH/s
Теперь попробуем разные GPU, для проверки скорости, возьмем не очень известного, но очень лояльного клауд провайдера.
Тест 2080TI - цена 0,2843$/h (28,43 ₽ в час)
Начали бодро с 859 kH/s
Начали бодро с 859 kH/s и по мере прогрева карты снизились до 841
Тест RTX 3090 - цена 0,6456$/h (64,56 ₽ в час)
1074 kH/s на старте
1068.6 kH/s - в конце
Начали с 1074 kH/s и после прогрева 1068.6 kH/s к окончанию.
Тест RTX 4090 - цена 0,7915$/h (79,15 ₽ в час)
Начали с 2522 kH/s
После прогрева скорость - 2477.5 kH/s
Начали с 2522 kH/s и после прогрева 2477.5 kH/s
Думаю тут не вооруженным взглядом будет понятно, что хоть закон Мура и не соблюдается в полной мере, но точно каждый год видим прогресс в скорости вычислений.
А что у нас со скоростью на профессиональных картах?
Тест Tesla A2 - цена 0,2328$/h (23,28 ₽ в час)
130.7 kH/s
Никак не уменьшает хеш при прогреве
Тест Tesla A10 - цена 0,3271$/h (32,71 ₽ в час)
762,8 kH/s
Тест Tesla A100 - цена 1,7824$/h (178,24 ₽ в час)
1115,4 kH/s
В отличии от десктопных игровых карт, данные карты максимально холодные, однако и имеет меньшую производительность под нашу задачу за сопоставимую стоимость.
Тест Tesla V100 - цена 0,9424$/h (94,24 ₽ в час)
802,9 kH/s
Так же, очень холодная карта, но и показывает всего. 802,9 kH/s
Все тесты проводились на последней версии hashcat, на системе ubuntu 20.04, используя последнею версию hashcap и последнею версию драйвера.
Немного про hashcat
Очень полезная программа, для восстановления паролей.
Немного о синтаксисе. В нашем случае это hashcat [ тип ключа ] [тип работы - в нашем случае брутфорс] файл с хешами и маска перебора.
hashcat -m 22000 -a 3 capture.hc22000 \?d\?d\?d\?d\?d\?d\?d\?d
Однако сам hashcat в не умеет рекурсивную комбинацию масок, поэтому накидал скрипт на Python 3. Для создания списка всех масок, которые нужно перебрать.
# Комбинатор варинтов для hashcat
# ?l - представляет собой одну букву нижнего регистра (a-z).
# ?u - представляет собой одну букву верхнего регистра (A-Z).
# ?d - представляет собой одну цифру (0-9).
import itertools
# Элементы перебора
mask_elements = ['?l', '?u', '?d']
# Длина пароля
position_count = 8
# Создаем файл my.hcmask для записи
with open('my.hcmask', 'w') as file:
# Генерируем комбинации для всех возможных комбинаций элементов включая все позиции
combinations = itertools.product(mask_elements, repeat=position_count)
# Записываем комбинации в файл
for combo in combinations:
mask = ''.join(combo) + '\n'
file.write(mask)
В процессе поиска дешевого облачного вычисления, нашел несколько совсем чумовых предложений. Например, RTX 4090 - за 0.35$ в час. Но там рынок, поэтому в расчетах взят среднее значение в 0.4$ в час.
Для сравнения сведём все данные в таблицу по цене хеша, условно примем, что дополнительных затрат на масштабирование у нас нет, а оценку сложности будем брать максимальной.
Таблица цен - в стоимости 1 Гига хеш.
Формула расчета
Расчет идет по формуле (Цена за 1 час) / (Производительность * 3600) и для лучшего представления переводим в Гига Хеши (GH) из kH
Теперь давайте вспомним, сколько комбинаций в пароле в зависимости от использовании разных символов.
Формула расчета
У нас в таблице сверху есть цена в Гига Хешах, в долларах.
Значит нам нужно сложность в цифрах разделить на 10^9 и умножить минимальную цену в GH
А насколько дорогой у тебя ВайФай?
Выводы, для себя, сделает каждый самостоятельно. Однако при дальнейшей снижении стоимости вычисления, старые подходы к безопастности уже не кажутся такими не вероятными.
Давайте вместе разберемся - сколько это стоит в $$$ деньгах
Итак, как все мы прекрасно знаем, что самое уязвимое место двери - это замок, а самое не защищенное место в нашей беспродной сети (после физического доступа к роутеру) - это момент установления соединения.
Немного про установление соединение
Процесс установления защищенного соединения в сети Wi-Fi с использованием протокола WPA2 (Wi-Fi Protected Access 2) включает в себя несколько этапов:
- Поиск сети: Когда устройство пытается подключиться к беспроводной сети, оно сначала сканирует доступные сети и идентифицирует их по именам (SSID).
- Аутентификация: Клиент (подключающееся устройство) отправляет запрос на аутентификацию к точке доступа (AP) или маршрутизатору. Точка доступа может быть настроена на использование предварительно установленного пароля (PSK - Pre-Shared Key) или может быть настроена на работу с сервером аутентификации (обычно RADIUS-сервером).
- Обмен ключами 4-Way Handshake: После успешной аутентификации клиент и точка доступа начинают обмениваться ключами, используемыми для защиты передачи данных. Этот обмен называется "4-Way Handshake". Он включает в себя генерацию общего ключа (Pairwise Transient Key, PTK), который используется для шифрования данных.
- Установление защищенного канала: После завершения 4-Way Handshake клиент и точка доступа могут начать использовать общий ключ (PTK) для защиты данных, передаваемых по беспроводной сети. Вся передача данных между ними теперь зашифрована и аутентифицирована.
- Обновление ключей: Периодически, для усиления безопасности, ключи могут быть обновлены с помощью генерации новых ключей и их обмена между клиентом и точкой доступа.
Поэтому если злоумышленнику получится подслушать эфир, то есть далеко не теоретическая возможноость получить дамп рукопожатий, и попробовать получить пароль перебором разных вариантов паролей.
Вот примерный механизм получения дампа
Перехват рукопожатия в беспроводной сети WPA2 происходит на этапе обмена ключами 4-Way Handshake. Вот как это происходит:
Если атакующий слушает эфир, то может произвести Перехват рукопожатия. Те перехватить этот обмен сообщениями (M1, M2, M3, M4) между клиентом и точкой доступа. Если получить полный 4-Way Handshake, он сможет использовать этот дамп рукопожатие для дальнейшей атаки, такой как атака перебором пароля с использованием словаря (dictionary attack) или атака методом перебора (brute-force).
Тестовый стенд
В качестве тестового оборудования будет использоваться ноутбук - macbook pro 2017 (а1708).Как на практике поймать рукопожатие.
В сети огромное количество описаний с использованием Kali Linux, внешних чувствительных сетевых карт. В данном случае - это было не важно, и нужно было просто получить само рукопожатие. Поэтому будем использовать встроенную карточку и MacOS.
В качестве простого и удобного интерфейса я выбрал
Для просмотра ссылки необходимо нажать
Вход или Регистрация
. Возможно, на более новых Маках, это уже не сработает. Процесс установки простой и описан на ГитХабе.Запуск тоже происходит совсем не сложно
Выбираем нашу сеть и просто ждем.
Получили рукопожатие.
После получения рукопожатия, в папке будет сохранен файл - capture.hc22000 , который уже готов к брутфорсу.
Давайте проверим, сколько выдаст
Всего 2415 H/s
Далее попробуем перебор на облачном сервере.
Возьмём самую жирную комплектацию, а именно - 96 ядер IceLake - цена 1,27$/h (127,95 ₽ в час)
Уже гораздо лучше, 240 кH/s
Теперь попробуем разные GPU, для проверки скорости, возьмем не очень известного, но очень лояльного клауд провайдера.
Тест 2080TI - цена 0,2843$/h (28,43 ₽ в час)
Начали бодро с 859 kH/s
Начали бодро с 859 kH/s и по мере прогрева карты снизились до 841
Тест RTX 3090 - цена 0,6456$/h (64,56 ₽ в час)
1074 kH/s на старте
1068.6 kH/s - в конце
Начали с 1074 kH/s и после прогрева 1068.6 kH/s к окончанию.
Тест RTX 4090 - цена 0,7915$/h (79,15 ₽ в час)
Начали с 2522 kH/s
После прогрева скорость - 2477.5 kH/s
Начали с 2522 kH/s и после прогрева 2477.5 kH/s
Думаю тут не вооруженным взглядом будет понятно, что хоть закон Мура и не соблюдается в полной мере, но точно каждый год видим прогресс в скорости вычислений.
А что у нас со скоростью на профессиональных картах?
Тест Tesla A2 - цена 0,2328$/h (23,28 ₽ в час)
130.7 kH/s
Никак не уменьшает хеш при прогреве
Тест Tesla A10 - цена 0,3271$/h (32,71 ₽ в час)
762,8 kH/s
Тест Tesla A100 - цена 1,7824$/h (178,24 ₽ в час)
1115,4 kH/s
В отличии от десктопных игровых карт, данные карты максимально холодные, однако и имеет меньшую производительность под нашу задачу за сопоставимую стоимость.
Тест Tesla V100 - цена 0,9424$/h (94,24 ₽ в час)
802,9 kH/s
Так же, очень холодная карта, но и показывает всего. 802,9 kH/s
Все тесты проводились на последней версии hashcat, на системе ubuntu 20.04, используя последнею версию hashcap и последнею версию драйвера.
Немного про hashcat
Очень полезная программа, для восстановления паролей.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Немного о синтаксисе. В нашем случае это hashcat [ тип ключа ] [тип работы - в нашем случае брутфорс] файл с хешами и маска перебора.
hashcat -m 22000 -a 3 capture.hc22000 \?d\?d\?d\?d\?d\?d\?d\?d
Однако сам hashcat в не умеет рекурсивную комбинацию масок, поэтому накидал скрипт на Python 3. Для создания списка всех масок, которые нужно перебрать.
# Комбинатор варинтов для hashcat
# ?l - представляет собой одну букву нижнего регистра (a-z).
# ?u - представляет собой одну букву верхнего регистра (A-Z).
# ?d - представляет собой одну цифру (0-9).
import itertools
# Элементы перебора
mask_elements = ['?l', '?u', '?d']
# Длина пароля
position_count = 8
# Создаем файл my.hcmask для записи
with open('my.hcmask', 'w') as file:
# Генерируем комбинации для всех возможных комбинаций элементов включая все позиции
combinations = itertools.product(mask_elements, repeat=position_count)
# Записываем комбинации в файл
for combo in combinations:
mask = ''.join(combo) + '\n'
file.write(mask)
В процессе поиска дешевого облачного вычисления, нашел несколько совсем чумовых предложений. Например, RTX 4090 - за 0.35$ в час. Но там рынок, поэтому в расчетах взят среднее значение в 0.4$ в час.
Для сравнения сведём все данные в таблицу по цене хеша, условно примем, что дополнительных затрат на масштабирование у нас нет, а оценку сложности будем брать максимальной.
Таблица цен - в стоимости 1 Гига хеш.
Формула расчета
Расчет идет по формуле (Цена за 1 час) / (Производительность * 3600) и для лучшего представления переводим в Гига Хеши (GH) из kH
Оборудование | Производительность kH/s | Цена $/h | Цена за $ / GH |
i5-7360U | 2 .415 | 1 | 113,3786848 |
96 ядер IceLake | 240 | 1,27 | 2,777777778 |
2080TI | 841 | 0,2843 | 0,09390276126 |
3090 | 1068,5 | 0,6456 | 0,167836531 |
4090 | 2477,5 | 0,4 | 0,04484807714 |
Tesla A2 | 130,7 | 0,2328 | 0,4947717419 |
Tesla A10 | 762,8 | 0,3271 | 0,1191152479 |
Tesla A100 | 1115,4 | 1,7824 | 0,4438865977 |
Tesla V10 | 802,9 | 0,9424 | 0,326040326 |
Формула расчета
У нас в таблице сверху есть цена в Гига Хешах, в долларах.
Значит нам нужно сложность в цифрах разделить на 10^9 и умножить минимальную цену в GH
Тип | Сложность в цифрах и Gh | Цена перебора |
8 символов, только цифры | 100,000,000 комбинаций 0,1 GH | ≈ 0,01 $ |
8 символов, только маленькие буквы латинского алфавита | 208,827,064,576 комбинаций ≈ 209 GH | ≈ 9,373 $ |
8 символов, из маленьких букв латинского алфавита, больших букв латинского алфавита и цифр | 218,340,105,584,896 комбинаций ≈ 218340 GH | ≈ 9.792 $ |
8 символов, из маленьких букв латинского алфавита, больших букв латинского алфавита, цифр и спец символов | 6,095,689,385,410,816 комбинаций ≈ 6095689 GH | ≈ 273.380 $ |
Выводы, для себя, сделает каждый самостоятельно. Однако при дальнейшей снижении стоимости вычисления, старые подходы к безопастности уже не кажутся такими не вероятными.
Для просмотра ссылки необходимо нажать
Вход или Регистрация