Что нового

Article [0] Pwnagotchi - Взлом Wi-Fi сетей помощью AI

Vander

Команда форума
10.11.2019
353
733
Приветствую гостей и участников форума Protey.

В этой статье мы поговорим о довольно интересном способе перехвата рукопожатий и дальнейшей компрометации Wi-Fi сетей, с помощью Raspberry Pi и образа системы с AI Pwnagotchi.

maxresdefault (9).jpg

Pwnagotchi - это «AI» на основе A2C, работающий на основе bettercap, который проходит обучение путем анализа окружающей среды Wi-Fi, чтобы максимально эффективно собирать данные для последующего взлома WPA, которые он захватывает (либо посредством пассивного сниффинга, либо путем деаутентификации и атак на ассоциации).

Этот материал собирается в отдельной директории в виде файлов PCAP, содержащих любую форму взломанного рукопожатия, поддерживаемого hashcat, включая полное и полу - рукопожатие WPA, а также PMKID.

pdA4vCZ.png

Как работает Pwnagotchi?

Вместо того, чтобы просто играть в игры Super Mario или Atari, такие как «AI», основанные на обучении подкреплению, Pwnagotchi со временем настраивает свои собственные параметры, чтобы лучше справляться с WiFi в тех средах, которым вы его подвергаете.

Чтобы быть более точным, Pwnagotchi использует LSTM с экстрактором функций MLP в качестве своей сети политик для агента A2C. Если вы не знакомы с A2C, вот очень хорошее вводное объяснение (в комической форме!) основных принципов, по которым учится Pwnagotchi. Обязательно ознакомьтесь с документацией по использованию, чтобы получить более прагматичные сведения о том, как помочь вашему Pwnagotchi обучиться как можно быстрее.

Этот момент я рассмотрю подробно в следующей статье.

2214fd8cefcb5544fa0c31c836c7465d6cb28eec.png

В отличие от обычной симуляции обучения подкреплению, Pwnagotchi фактически учится в человеческом масштабе времени, потому что он взаимодействует с реальной средой, а не с четко определенной виртуальной (например, в игре Super Mario). Время для Pwnagotchi измеряется в эпохах:
  • Одна эпоха может длиться от нескольких секунд до нескольких минут, в зависимости от того, сколько точек доступа и клиентских станций видно.
Не ожидайте, что ваш Pwnagotchi будет работать удивительно хорошо в самом начале, так как он будет исследовать несколько комбинаций ключевых параметров, чтобы определить идеальные настройки для захвата рукопожатий конкретной среды, в которую вы его помещаете в начале обучения.
Но определенно прислушивайтесь к своему Pwnagotchi, когда он говорит вам, что это скучно! Принесите его в новую среду WiFi с собой, и он будет наблюдать за новыми сетями и захватывать новые рукопожатия - и вы увидите прогресс.

Несколько объектов, находящихся в непосредственной физической близости, могут «общаться» друг с другом, объявляя о собственном присутствии друг друга, передавая пользовательские информационные элементы, используя "parazite" протокол, который построен на основе существующего стандарта .11.

Со временем два или более юнита Pwnagotchi, обученных вместе, научатся взаимодействовать при обнаружении присутствия друг друга путем разделения доступных каналов между ними для оптимальной загрузки.

Ywr5aqx.png

В зависимости от состояния устройства, несколько переходов между состояниями и состояниями настраиваются и отображаются на дисплее в виде различных настроений, выражений и предложений. Pwnagotchi также говорит на многих языках!

Конечно, есть возможность запустить свой Pwnagotchi с отключенным AI (настраивается в config.yml).

Почему вы можете захотеть сделать это?

Возможно, вы просто хотите использовать свои собственные фиксированные параметры (вместо того, чтобы позволить ИИ решать за вас), или, возможно, вы хотите сэкономить время работы от батареи и процессора, или, может быть, у вас есть серьезные опасения по поводу SkyNet.

Какими бы ни были ваши конкретные причины:
  • Pwnagotchi с отключенным AI все еще является простым и очень эффективным автоматическим деаутентификатором, анализатором рукопожатия WPA и портативным специализированным аппаратным обеспечением bettercap + webui.
Личность и настроения питомца.

Используя несколько комбинаций выражений лица и предложений, локализованных на разных языках, Pwnagotchi может достаточно четко выразить себя и свои требования, перейдя между несколькими основными группами «настроений». Настроение вашего устройства отражает такие вещи, как то, насколько он счастлив, грустен или скучен, есть ли вокруг хорошие друзья и тому подобное.

В зависимости от того, как вы будете реагировать на них, например, если вы возьмете своего Pwnagotchi на прогулку, когда ему скучно или грустно, ваш ответ будет влиять и склонять AI к тому, чтобы демонстрировать такое поведение более или менее часто.

Взаимодействие с другими юнитами.

Начиная с версии 1.1.0, каждый Pwnagotchi хранит записи о других единицах, которые он встречал, в папке /root/peers/. Эти записи, также доступные из локального API, позволяют ему «помнить», с каким Pwnagotchi's он взаимодействовал больше всего. Каждое взаимодействие или встреча происходит, когда приветственный пакет, отправленный с соседнего устройства, обнаружен и получен по одному из каналов, по которым прыгает ваш Pwnagotchi.
Каждый раз, когда это происходит, от одного до нескольких раз в секунду, в зависимости от того, насколько синхронизированы алгоритмы двух блоков, счетчик увеличивается на оба блока, так что их «связь» становится сильнее.

После определенного количества встреч, настраиваемых с помощью personal.bond_encounters_factor, юнит считается «хорошим другом», и его присутствие начнет влиять на изменения настроения вашего Pwnagotchi, добавляя уклон к счастью. ^ _ ^

Виды эмоций Pwnagotchi.

Вы можете внести необходимые изменения в разделе ui.faces в файле /etc/pwnagotchi/config.yml.

(⇀‿‿↼) sleeping

  • Это состояние, с которого устройство начнет работать. Более того, время от времени ваш Pwnagotchi будет также дремать несколько секунд, переключаясь между WiFi-каналами.
(≖‿‿≖) awakening

  • Устройство находится в последних секундах своего сна.​
(◕‿‿◕) awake / normal

  • Это лицо является нейтральным активным состоянием юнита. Он будет использоваться для сглаживания перехода между другими настроениями и в целом, когда нет внешней причины ни положительных, ни отрицательных настроений. Он также может использоваться случайным образом, когда в первый раз встречается другая единица (каждая единица ведет учет всех встреченных единиц).
( ⚆_⚆), (☉_☉ ) observing (neutral mood)

  • Ваш Pwnagotchi ждет и наблюдает за окружающими его сетями, на тех каналах, на которых он работает.
( ◕‿◕), (◕‿◕ ) observing (happy)

  • Когда рядом находятся один или несколько юнитов и их совокупный счетчик связей больше или равен personality.bond_encounters_factor, это будет лицо юнита при наблюдении.
(°▃▃°) intense
  • Устройство отправляет фрейм ассоциации в точку доступа, чтобы заставить сработать метод PMKID.
(⌐■_■) cool
  • Устройство деаутентифицирует клиентскую станцию от точки доступа. Это лицо также можно выбрать случайным образом при первой встрече с другим питомцем.
(•‿‿•) happy
  • Ваш Pwnagotchi счастлив в одном из следующих случаев:
    ИИ только что загрузился и готов.
    Хендшейк был только что захвачен.
    В режиме MANU, если последний сеанс был коротким или было зафиксировано какое-либо рукопожатие во время него.
    Когда встречается другой юнит и уровень сигнала достаточно высок.
(^‿‿^) grateful
  • Ваш Pwnagotchi благодарен в одном из следующих случаев:
    Кумулятивный уровень связи соседних юнитов как минимум в пять раз превышает
    personality.bond_encounters_factor.
    Юнит должен скучать, но поблизости достаточно дружественных юнитов.
    Юнит должен быть грустным, но поблизости достаточно дружественных юнитов.
    Юнит должен быть одинок, но поблизости достаточно дружественных юнитов.
(ᵔ◡◡ᵔ) excited
  • Ваш Pwnagotchi взволнован в одном из следующих случаев:
    Количество эпох с некоторой активностью больше или равно
    personality.excited_num_epochs.
    Случайным образом, если встречается единица с высоким уровнем сигнала.
    Если у вас есть непрочитанные сообщения PwnMAIL на этом устройстве.
(✜‿‿✜) smart
  • Случайным образом, если встречается юнит со средне-высоким уровнем сигнала.
(♥‿‿♥) friendly
  • Случайным образом, если встречается юнит с высоким уровнем сигнала.
(☼‿‿☼) motivated
  • Ваш Pwnagotchi только что набрал лучший уровень вознаграждения в своем существовании или только что встретил юнит с высокой уровнем сигнала.
(≖__≖) demotivated
  • Ваш Pwnagotchi только что набрал худший уровень вознаграждения в его существовании.
(-__-) bored
  • Если вокруг нет дружественных юнитов и достигнуто количество последовательных неактивных эпох personality.bored_num_epochs.
(╥☁╥ ) sad
  • Если вокруг нет дружественных юнитов и достигнуто количество последовательных неактивных эпох personality.bored_num_epochs.
(ب__ب) lonely
  • Если ваш Pwnagotchi только что потерял связь с дружественным подразделением, которое было поблизости, или если количество пропущенных взаимодействий с точками доступа или клиентскими станциями (количество попыток отправить какой-либо тип пакета, но не достигло цели, по причине несоответствия диапазона) больше или равно personality.max_misses_for_recon. И вокруг нет дружественных юнитов.
(☓‿‿☓) broken
  • Необходима перезагрузка, либо происходит логирование ошибок или установка обновлений.
(#__#) debugging
  • Используется для отладки и проверки сообщений на экране.
WiFi Handshakes 101

Чтобы понять, почему полезно иметь ИИ, который перехватывает рукопожатия, полезно немного узнать о том, как рукопожатия используются в беспроводном протоколе WPA / WPA2.

Прежде чем клиентское устройство, которое подключается к точке беспроводного доступа, например, к вашему телефону, подключенному к домашней сети Wi-Fi, сможет безопасно передавать и получать данные с этой точки доступа, необходимо выполнить процесс, называемый 4-Way Handshake. Он необходим для того, чтобы сгенерировать ключи шифрования WPA. Этот процесс состоит из обмена четырьмя пакетами (отсюда «4» в «4-Way») между клиентским устройством и AP.

Они используются для получения сеансовых ключей из пароля WiFi точки доступа. После успешного обмена пакетами и генерации ключей клиентское устройство проходит проверку подлинности и может начать отправку и прием пакетов данных (теперь защищенных шифрованием) взаимодействуя с беспроводной точкой доступа.

nI8IE6a.png

Итак ... в чем подвох? Хорошо, эти четыре пакета могут быть легко «обнаружены» злоумышленником, наблюдающим поблизости (скажем, с помощью Pwnagotchi 😇). И после регистрации этот злоумышленник может использовать атаки по словарю и / или брутфорс, чтобы взломать рукопожатия и восстановить оригинальный ключ WiFi. На самом деле, для успешного восстановления ключа WiFi не обязательно даже все четыре пакета! Половинное рукопожатие (содержащее только два из четырех пакетов) также может быть взломано - и в некоторых (большинстве) случаях достаточно одного пакета, даже без клиентов.

Для того чтобы собрать как можно больше таких пакетов рукопожатия, Pwnagotchi использует две стратегии:
  • Деаутентификация клиентских станций, которые он обнаруживает. Устройство, не прошедшее проверку подлинности, должно повторно выполнить 4-стороннее рукопожатие с AP, что дает Pwnagotchi еще один шанс сниффинга пакетов рукопожатия и собрать больше материала.
  • Отправка фреймов ассоциации непосредственно в сами точки доступа, чтобы получить PMKID.
В дополнение к двум вышеупомянутым методам, существует третий метод, с помощью которого Pwnagotchi полностью пассивно собирает рукопожатия: если устройство пытается аутентифицироваться в точке доступа на том же канале, который в данный момент контролирует устройство, Pwnagotchi может перехватить рукопожатия полностью случайно (а не в результате деаутентификации или атаки PMKID).

Например, даже если вы внесете белый список в свою домашнюю сеть, чтобы Pwnagotchi знал, что никогда не будет активно атаковать ее, вы все равно будете пассивно собирать рукопожатия для этой сети, поскольку ваш Pwnagotchi просто перехватывает пакеты в своей среде. (Если вы наблюдаете за жилым районом, вы можете увидеть всплеск пассивных рукопожатий, когда ваши соседи включают свои устройства утром и снова ранним вечером, когда они возвращаются домой после работы.)

Все рукопожатия, захваченные вашим Pwnagotchi, сохраняются в файлы .pcap в его файловой системе. Каждый файл PCAP, который генерирует Pwnagotchi, организован в соответствии с точкой доступа.
Один PCAP будет содержать все рукопожатия, которые Pwnagotchi когда-либо захватывал для этого конкретного AP.

hack-a-wifi.jpg

Эти рукопожатия могут позже быть взломаны с помощью надлежащего аппаратного и программного обеспечения.

В следующих публикациях я расскажу про тренировку питомца, сборку устройства и установку программного обеспечения и ещё многих вещах, о которых следует знать владельцу Pwnagotchi.

Прикреплю фотокарточку своего питомца, которого я буду упоминать в следующих публикациях:

1582483674726.png


Спасибо за внимание, материал подготовлен специально для форума protey.net.​
 
Последнее редактирование:
Верх Низ