Взлом WPA2-PSK паролей при помощи Aircrack-ng
С возвращением, мои хакеры!
Когда в конце 1990-х годов создавался Wi-Fi, для обеспечения конфиденциальности беспроводной связи был также создан Wired Equivalent Privacy (WEP — «эквивалент проводной конфиденциальности»). WEP, как позже выяснилось, оказался дырявым и был легко взломан. Вы можете узнать об этом больше в нашей статье для начинающих по взлому Wi-Fi.
В качестве замены WEP, для беспроводной безопасности большинство точек доступа теперь использует Wi-Fi Protected Access II с предварительно опубликованным ключом, известным как WPA2-PSK. Он использует более сильный алгоритм шифрования — AES, который взломать очень сложно, но возможно. В нашем руководстве по взлому Wi-Fi для новичков мы также даем об этом больше информации.
Слабостью в системе WPA2-PSK является то, что зашифрованный пароль используется совместно с так называемым 4-сторонним рукопожатием. Когда клиент аутентифицируется в точке доступа, клиент и точка доступа проходят через 4-шаговый процесс для аутентификации пользователя в этой точке. Если мы сможем захватить пароль в это время, то сможем попытаться взломать его.
В этой статье из нашей серии по хакингу Wi-Fi мы рассмотрим использование aircrack-ng и атаку по словарю против зашифрованного пароля после того, как захватим его во время четырехстороннего рукопожатия. Если вы ищете более быстрый способ, то мы предлагаем вам также посмотреть нашу статью о том, как взламывать пароли WPA2-PSK с помощью coWPAtty.
Шаг 1. Переключите Wi-Fi адаптер в режим мониторинга при помощи Airmon-Ng
Начнем с того, что включим беспроводной адаптер в режиме мониторинга.
Как открыть зашифрованные ZIP-файлы без пароля
Для этого нам нужно будет использовать беспроводной сетевой адаптер, который поддерживает эту функцию. Ознакомьтесь с нашим списком адаптеров беспроводных сетей, поддерживаемых Kali Linux и Backtrack, за 2017 год или можете сразу приобрести самый популярный адаптер для начинающих на амазоне наш самый популярный адаптер для начинающих здесь.
Это похоже на переключение проводного адаптера в так называемый «неразборчивый» режим работы (promiscuous mode), когда сетевая плата принимает все пакеты вне зависимости от того, кому они адресованы. Это позволит нам видеть весь беспроводной трафик, который проходит мимо нас в пространстве. Давайте откроем терминал и введем эту команду:
airmon-ng start wlan0
Обратите внимание, что airmon-ng переименовал ваш адаптер wlan0 в mon0.
Шаг 2. Перехват трафика с помощью Airodump-Ng
Теперь, когда наш беспроводной адаптер находится в режиме мониторинга, у нас есть возможность увидеть весь беспроводной трафик, который проходит рядом с нами. Мы можем перехватить этот трафик, просто используя команду airodump-ng.
Эта команда захватывает весь трафик, который видит Wi-Fi адаптер, и отображает важную информацию о нем, включая BSSID (MAC-адрес точки доступа), мощность, количество фреймов Бикона, количество фреймов данных, канал, скорость, шифрование (если есть) и, наконец, ESSID (то, что большинство из нас называют SSID). Чтобы сделать это, введите в консоли:
airodump-ng mon0
Обратите внимание, что все видимые точки доступа перечислены в верхней части скриншота, а все клиенты указаны в нижней части.
Шаг 3. Фокусировка Airodump-Ng на одной точке доступа на одном канале
Наш следующий шаг — сосредоточить наши усилия на одной точке доступа на одном канале и получить от нее важные данные. Для этого нам нужен BSSID и канал. Давайте откроем еще один терминал и введем следующую команду:
airodump-ng --bssid 08:86:30:74:22:76 -c 6 --write WPAcrack mon0
- 08:86:30:74:22:76 — это BSSID точки доступа
- -c 6 — канал, на котором работает точка доступа
- WPAcrack — это файл, в который вы хотите записать полученную информацию
- mon0 — это беспроводной адаптер мониторинга
Как взломать аккаунт и пароль от Инстаграма
Как вы можете видеть на скриншоте выше, мы теперь сфокусировались на перехвате данных с одной точки доступа с помощью ESSID Belkin276 на канале 6. Belkin276, вероятно, является SSID по умолчанию, которые обычно являются главными целями при Wi-Fi взломе, поскольку пользователи, оставляющие значения ESSID по умолчанию, обычно не заморачиваются с безопасностью своих точек доступа.
Шаг 4. Деаутентификация клиентов при помощи Aireplay-Ng
Чтобы захватить зашифрованный пароль, нам нужно, чтобы клиент аутентифицировался в точке доступа. Если пользователь уже прошел аутентификацию, то мы можем его де-аутентифицировать (разорвав его соединение с точкой доступа), и его система автоматически попытается повторно аутентифицироваться, благодаря чему мы сможем перехватить зашифрованный пароль. Давайте откроем еще один терминал и введем:
aireplay-ng --deauth 100 -a 08:86:30:74:22:76 mon0
- 100 — количество фреймов деаутентификации, которые вы хотите отправить
- 08:86:30:74:22:76 — это BSSID точки доступа
- mon0 — это беспроводной адаптер для мониторинга
Шаг 5. Перехват «рукопожатия»
На предыдущем шаге мы сбросили соединение пользователя с его собственной точкой доступа, и теперь, когда он повторно аутентифицируется, airodump-ng попытается захватить его пароль в новом 4-стороннем рукопожатии. Вернемся к нашему терминалу airodump-ng и проверим, удалось ли нам добиться успеха.
Обратите внимание, что в верхней строке справа, airodump-ng говорит «WPA рукопожатие». Нам удалось захватить зашифрованный пароль! Это первый шаг к успеху!
Шаг 6: Взлом пароля при помощи Aircrack-Ng
Теперь, когда у нас есть зашифрованный пароль, который мы сохранили в файле WPAcrack, мы можем запустить aircrack-ng для его взлома, используя файл с паролями. Помните, что этот тип атаки настолько же хорош, насколько хорош ваш файл с базой паролей. Мы будем использовать список паролей по умолчанию, включенный в поставку aircrack-ng на BackTrack, который хранится в файле с именем darkcOde.
Что следует сделать сразу после установки Kali Linux
Попытаемся взломать пароль, открыв другой терминал и набрав:
aircrack-ng WPAcrack-01.cap -w /pentest/passwords/wordlists/darkc0de
- WPAcrack-01.cap — это то имя файла, которое мы написали при вводе команды airodump-ng
- /pentest/passwords/wordlist/darkc0de — это абсолютный путь к вашему файлу с паролями
Много ли это займет времени?
Этот процесс может быть относительно медленным и нудным. В зависимости от длины вашего списка паролей вы можете ждать от нескольких минут до нескольких дней. На нашем двухъядерном 2,8-гигабайтном процессоре Intel он способен тестировать чуть более 500 паролей в секунду, что составляет около 1,8 миллиона паролей в час. Ваши результаты будут отличаться.
Когда пароль будет подобран, он появится на вашем экране. Помните, что файл паролей имеет решающее значение. Сначала попробуйте файл с паролями по умолчанию, и если с ним у вас ничего не получилось, то перейдите к большому и полному файлу с паролями, например, одному из этих
Словарь для взлома паролей от CrackStation — CrackStation’s Password Cracking Dictionary
Словари паролей от SkullSecurity — Словари паролей SkullSecurity
Приходите за новыми материалами по взлому Wi-Fi
Обязательно возвращайтесь, поскольку мы обещаем публиковать более продвинутые материалы о методах взлома беспроводных сетей. Если вы еще не видели другие статьи по взлому Wi-Fi, то поищите их на нашем сайте. В частности, это касается статьей о взломе WEP с использованием aircrack-ng и о взломе паролей WPA2-PSK с использованием coWPAtty.
Если вы ищете дешевую и удобную платформу, чтобы начать работу с aircrack, то ознакомьтесь с нашей сборкой Kali Linux для Raspberry Pi, использующей платформу Raspberry Pi за 35 долларов.
И как всегда, если у вас есть вопросы по любой из этих тем, пожалуйста, задавайте их в комментариях.
Предыдущие статьи (1 , 2 , 3).
Отказ от ответственности
: Эта статья написана только для образовательных целей. Автор или издатель не публиковали эту статью для вредоносных целей. Если читатели хотели бы воспользоваться информацией для личной выгоды, то автор и издатель не несут ответственность за любой причиненный вред или ущерб.
Wi-Fi сети: проникновение и защита. 1) Матчасть / Хабр
трафик в беспроводных сетях на 10% превзойдёт трафик в проводном Ethernet. При этом от года в год частных точек доступа становится примерно на 20% больше. При таком тренде не может
радовать то, что 80% владельцев сетей не меняют пароли доступа по умолчанию. В их число входят и сети компаний. Этим циклом статей я хочу собрать воедино описания существующих технологии защит, их проблемы и способы обхода, таким образом, что в конце читатель сам сможет сказать, как сделать свою сеть непробиваемой,
(do not try this at home, kids). Практическая сторона взлома будет освещена с помощью Kali Linux
(бывший Backtrack 5) в следующих частях. Статья по мере написания выросла с 5 страниц до 40, поэтому я решил разбить её на части. Этот цикл — не просто инструкция, как нужно и не нужно делать, а подробное объяснение причин для этого. Ну, а кто хочет инструкций — они такие:
Используйте WPA2-PSK-CCMP с паролем от 12 символов
a-z
(2000+ лет перебора на ATI-кластере). Измените имя сети по умолчанию на нечто уникальное (защита от rainbow-таблиц). Отключите WPS (достаточно перебрать 10000 комбинаций PIN). Не полагайтесь на MAC-фильтрацию и скрытие SSID.
Оглавление:
1)
Матчасть2)
Kali. Скрытие SSID. MAC-фильтрация. WPS3)
WPA. OpenCL/CUDA. Статистика подбора Но сначала — матчасть.
Передайте мне сахар
Представьте, что вы — устройство, которое принимает инструкции. К вам может подключиться каждый желающий и отдать любую команду. Всё хорошо, но на каком-то этапе потребовалось фильтровать личностей, которые могут вами управлять. Вот здесь и начинается самое интересное. Как понять, кто может отдать команду, а кто нет? Первое, что приходит в голову — по паролю. Пусть каждый клиент перед тем, как передать новую команду, передаст некий пароль. Таким образом, вы будете выполнять только команды, которые сопровождались корректным паролем. Остальные — фтопку.
Именно так работает базовая авторизация HTTP (Auth Basic):
AuthType Basic AuthName "My super secret zone!" AuthUserFile /home/.htpasswd Require valid-user
После успешной авторизации браузер просто-напросто будет передавать определённый заголовок при каждом запросе в закрытую зону:
Authorization: Basic YWRtaW46cGFzcw==
То есть исходное:
echo -n 'admin:pass' | base64 # YWRtaW46cGFzcw==
У данного подхода есть один большой недостаток — так как пароль (или логин-пароль, что по сути просто две части того же пароля) передаётся по каналу «как есть» — кто угодно может встрять между вами и клиентом и получить ваш пароль на блюдечке. А затем использовать его и распоряжаться вами, как угодно! Для предотвращения подобного безобразия можно прибегнуть к хитрости: использовать какой-либо двухсторонний алгоритм шифрования, где закрытым ключом будет как раз наш пароль, и явно его никогда не передавать. Однако проблемы это не решит — достаточно один раз узнать пароль и можно будет расшифровать любые данные, переданные в прошлом и будущем, плюс шифровать собственные и успешно маскироваться под клиента. А учитывая то, что пароль предназначен для человека, а люди склонны использовать далеко не весь набор из 256 байт в каждом символе, да и символов этих обычно около 6-8… в общем, комсомол не одобрит. Что делать? А поступим так, как поступают настоящие конспираторы: при первом контакте придумаем длинную случайную строку (достаточно длинную, чтобы её нельзя было подобрать, пока светит это солнце), запомним её и все дальнейшие передаваемые данные будем шифровать с использованием этого «псевдонима» для настоящего пароля. А ещё периодически менять эту строку — тогда джедаи вообще не пройдут
.
Первые две передачи (зелёные иконки на рисунке выше) — это фаза с «пожатием рук» (handshake), когда сначала мы говорим серверу о нашей легитимности, показывая правильный пароль, на что сервер нам отвечает случайной строкой, которую мы затем используем для шифрования и передачи любых данных. Итак, для подбора ключа хакеру нужно будет либо найти уязвимость в алгоритме его генерации (как в случае с Dual_EC_DRBG), либо арендовать сотню-другую параллельных вселенных и несколько тысяч ATI-ферм для решения этой задачи при своей жизни. Всё это благодаря тому, что случайный ключ может быть любой длины и содержать любые коды из доступных 256, потому что пользователю-человеку никогда не придётся с ним работать. Именно такая схема с временным ключом (сеансовый ключ, session key или ticket) в разных вариациях и используется сегодня во многих системах — в том числе SSL/TLS и стандартах защиты беспроводных сетей, о которых будет идти речь.
План атаки
Внимательные читатели, конечно, заметили, что как бы мы не хитрили — от передачи пароля и временного ключа в открытой или хэшированной форме нам никуда не деться. Как результат — достаточно хакеру перехватить передачу на этой фазе, и он сможет читать все последующие данные, а также участвовать в процессе, вставляя свои пять копеек. И отличить его невозможно, так как вся информация, которой бы мог руководствоваться сервер для выдачи временного ключа или проверки доступа базируется именно на том, что было в начале передачи — handshake. Поэтому хакер знает всё то же, что и сервер, и клиент, и может водить обоих за нос, пока не истечёт срок действия временного ключа. Наша задача при взломе любой передачи так или иначе сводится к перехвату рукопожатия, из которого можно будет либо вытащить временный ключ, либо исходный пароль, либо и то, и другое. В целом, это довольно долгое занятие и требует определённой удачи. Но это в идеальном мире…
Механизмы защиты Wi-Fi
Технологии создаются людьми и почти во всех из них есть ошибки, иногда достаточно критические, чтобы обойти любую самую хорошую в теории защиту. Ниже мы пробежимся по списку существующих механизмов защиты передачи данных по радиоканалу (то есть не затрагивая SSL, VPN и другие более высокоуровневые способы).
OPEN
OPEN
— это отсутствие всякой защиты. Точка доступа и клиент никак не маскируют передачу данных. Почти любой беспроводной адаптер в любом ноутбуке с Linux может быть установлен в режим прослушки, когда вместо отбрасывания пакетов, предназначенных не ему, он будет их фиксировать и передавать в ОС, где их можно спокойно просматривать. Кто у нас там полез в Твиттер?
Именно по такому принципу работают проводные сети — в них нет встроенной защиты и «врезавшись» в неё или просто подключившись к хабу/свичу сетевой адаптер будет получать пакеты всех находящихся в этом сегменте сети устройств в открытом виде. Однако с беспроводной сетью «врезаться» можно из любого места — 10-20-50 метров и больше, причём расстояние зависит не только от мощности вашего передатчика, но и от длины антенны хакера. Поэтому открытая передача данных по беспроводной сети гораздо более опасна. В этом цикле статей такой тип сети не рассматривается, так как взламывать тут нечего. Если вам нужно пользоваться открытой сетью в кафе или аэропорту — используйте VPN (избегая PPTP) и SSL (https://
, но при этом поставьте HTTPS Everywhere, или параноидально следите, чтобы из адресной строки «внезапно» не исчез замок, если кто включит sslstrip
— что, впрочем, переданных паролей уже не спасёт), и даже всё вместе. Тогда ваших котиков никто не увидит.
WEP
WEP
— первый стандарт защиты Wi-Fi. Расшифровывается как Wired Equivalent Privacy
(«эквивалент защиты проводных сетей»), но на деле он даёт намного меньше защиты, чем эти самые проводные сети, так как имеет множество огрехов и взламывается множеством разных способов, что из-за расстояния, покрываемого передатчиком, делает данные более уязвимыми. Его нужно избегать почти так же, как и открытых сетей — безопасность он обеспечивает только на короткое время, спустя которое любую передачу можно полностью раскрыть вне зависимости от сложности пароля. Ситуация усугубляется тем, что пароли в WEP — это либо 40, либо 104 бита, что есть крайне короткая комбинация и подобрать её можно за секунды (это без учёта ошибок в самом шифровании). WEP был придуман в конце 90-х, что его оправдывает, а вот тех, кто им до сих пор пользуется — нет. Я до сих пор на 10-20 WPA-сетей стабильно нахожу хотя бы одну WEP-сеть. На практике существовало несколько алгоритмов шифровки передаваемых данных — Neesus, MD5, Apple — но все они так или иначе небезопасны. Особенно примечателен первый, эффективная длина которого — 21 бит (~5 символов). Основная проблема WEP — в фундаментальной ошибке проектирования. Как было проиллюстрировано в начале — шифрование потока делается с помощью временного ключа. WEP фактически передаёт несколько байт этого самого ключа вместе с каждым пакетом данных. Таким образом, вне зависимости от сложности ключа раскрыть любую передачу можно просто имея достаточное число перехваченных пакетов (несколько десятков тысяч, что довольно мало для активно использующейся сети). К слову, в 2004 IEEE объявили WEP устаревшим из-за того, что стандарт «не выполнил поставленные перед собой цели [обеспечения безопасности беспроводных сетей]». Про атаки на WEP будет сказано в третьей части.
Скорее всего в этом цикле про WEP не будет, так как статьи и так получились очень большие, а распространённость WEP стабильно снижается. Кому надо — легко может найти руководства на других ресурсах.
WPA и WPA2
WPA
— второе поколение, пришедшее на смену WEP. Расшифровывается как Wi-Fi Protected Access
. Качественно иной уровень защиты благодаря принятию во внимание ошибок WEP. Длина пароля — произвольная, от 8 до 63 байт, что сильно затрудняет его подбор (сравните с 3, 6 и 15 байтами в WEP). Стандарт поддерживает различные алгоритмы шифрования передаваемых данных после рукопожатия: TKIP и CCMP. Первый — нечто вроде мостика между WEP и WPA, который был придуман на то время, пока IEEE были заняты созданием полноценного алгоритма CCMP. TKIP так же, как и WEP, страдает от некоторых типов атак, и в целом не безопасен. Сейчас используется редко (хотя почему вообще ещё применяется — мне не понятно) и в целом использование WPA с TKIP почти то же, что и использование простого WEP. Одна из занятных особенностей TKIP — в возможности так называемой Michael-атаки. Для быстрого залатывания некоторых особо критичных дыр в WEP в TKIP было введено правило, что точка доступа обязана блокировать все коммуникации через себя (то есть «засыпать») на 60 секунд, если обнаруживается атака на подбор ключа (описана во второй части). Michael-атака — простая передача «испорченных» пакетов для полного отключения всей сети. Причём в отличии от обычного DDoS тут достаточно всего двух (двух
) пакетов для гарантированного выведения сети из строя на одну минуту.
WPA отличается от WEP и тем, что шифрует данные каждого клиента по отдельности. После рукопожатия генерируется временный ключ — PTK — который используется для кодирования передачи этого клиента, но никакого другого. Поэтому даже если вы проникли в сеть, то прочитать пакеты других клиентов вы сможете только, когда перехватите их рукопожатия — каждого по отдельности. Демонстрация этого с помощью Wireshark будет в третьей части. Кроме разных алгоритмов шифрования, WPA(2) поддерживают два разных режима начальной аутентификации (проверки пароля для доступа клиента к сети) — PSK и Enterprise. PSK
(иногда его называют WPA Personal
) — вход по единому паролю, который вводит клиент при подключении. Это просто и удобно, но в случае больших компаний может быть проблемой — допустим, у вас ушёл сотрудник и чтобы он не мог больше получить доступ к сети приходится применять способ из «Людей в чёрном»
менять пароль для всей сети и уведомлять об этом других сотрудников. Enterprise
снимает эту проблему благодаря наличию множества ключей, хранящихся на отдельном сервере — RADIUS. Кроме того, Enterprise стандартизирует сам процесс аутентификации в протоколе EAP (Extensible Authentication Protocol), что позволяет написать собственный велосипед
алгоритм. Короче, одни плюшки для больших дядей. В этом цикле будет подробно разобрана атака на WPA(2)-PSK, так как Enterprise — это совсем другая история, так как используется только в больших компаниях.
WPS/QSS
WPS
, он же Qikk aSS
QSS
— интересная технология, которая позволяет нам вообще не думать о пароле, а просто добавить воды
нажать на кнопку и тут же подключиться к сети. По сути это «легальный» метод обхода защиты по паролю вообще, но удивительно то, что он получил широкое распространение при очень серьёзном просчёте в самой системе допуска — это спустя годы после печального опыта с WEP. WPS позволяет клиенту подключиться к точке доступа по 8-символьному коду, состоящему из цифр (PIN). Однако из-за ошибки в стандарте нужно угадать лишь 4 из них. Таким образом, достаточно всего-навсего 10000 попыток подбора и вне зависимости от сложности пароля для доступа к беспроводной сети
вы автоматически получаете этот доступ, а с ним в придачу — и этот самый пароль как он есть. Учитывая, что это взаимодействие происходит до любых проверок безопасности, в секунду можно отправлять по 10-50 запросов на вход через WPS, и через 3-15 часов (иногда больше, иногда меньше) вы получите ключи от рая
. Когда данная уязвимость была раскрыта производители стали внедрять ограничение на число попыток входа (rate limit), после превышения которого точка доступа автоматически на какое-то время отключает WPS — однако до сих пор таких устройств не больше половины от уже выпущенных без этой защиты. Даже больше — временное отключение кардинально ничего не меняет, так как при одной попытке входа в минуту нам понадобится всего 10000/60/24 = 6,94
дней. А PIN обычно отыскивается раньше, чем проходится весь цикл. Хочу ещё раз обратить ваше внимание, что при включенном WPS ваш пароль будет неминуемо раскрыт вне зависимости от своей сложности. Поэтому если вам вообще нужен WPS — включайте его только когда производится подключение к сети, а в остальное время держите этот бекдор выключенным. Атака на WPS будет рассмотрена во второй части. p.s: так как тема очень обширная, в материал могли закрасться ошибки и неточности. Вместо криков «автор ничего не понимает» лучше использовать комментарии и ЛС. Это будет только приветствоваться.Оглавление:
1)
Матчасть2)
Kali. Скрытие SSID. MAC-фильтрация. WPS3)
WPA. OpenCL/CUDA. Статистика подбора
2951