Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
WiFi-password-stealer — Простой инструмент для инъекции нажатий клавиш под Windows и Linux, который извлекает сохранённые данные Wi-Fi (SSID и пароль). | Kitploit
Инструменты/GitHubGitHub/aleksamcode/wifi-password-stealer
Аудит Wi-FiАтаки на ПаролиГенерация полезной нагрузкиЭксфильтрация данныхСбор информацииАппаратный ХакингСоциальная инженерияОбучение и ОбразованиеRed Teaming

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitHubaleksamcode/wifi-password-stealer

WiFi-password-stealer

Простой инструмент для инъекции нажатий клавиш под Windows и Linux, который извлекает сохранённые данные Wi-Fi (SSID и пароль).

Репозиторий
595471 год назадПроверено Kitploit

WiFi password stealer

License: GPL v2

Вы когда-нибудь видели фильм, где хакер подключает, казалось бы, обычную USB-флешку к компьютеру и мгновенно похищает данные? Сегодня вы создадите устройство, которое делает именно это.

⚠️ Отказ от ответственности:

Весь контент в этом проекте предназначен исключительно для целей исследований в области безопасности.

Содержание

  • WiFi password stealer
    • Содержание
    • Введение
    • Настройка
      • Предварительные требования
    • Атака Rubber Ducky
      • Что вам понадобится
      • Инструмент инъекции нажатий клавиш
        • Инъекция нажатий клавиш
        • Задержки
      • Эксфильтрация
        • Эксплойт для Windows
          • Отправка украденных данных по электронной почте
        • Эксплойт для Linux
          • Сохранение украденных данных на USB-флешку
          • Скрипт Bash
          • Краткий обзор полезной нагрузки
        • Форматирование эксфильтрованных данных
      • Проблема с USB-накопителем
      • Создатель полезной нагрузки
    • Атака Bash Bunny
    • Ограничения/Недостатки
    • Ссылки

Введение

Летом 2022 года я решил создать устройство, способное извлекать данные с целевого компьютера. Но как именно развернуть вредоносное ПО и эксфильтровать информацию? В следующих разделах я расскажу об основных шагах, лежащих в основе концепциях и технических нюансах, связанных с созданием собственного инструмента для инъекции нажатий клавиш. Хотя этот проект нацелен конкретно на учётные данные WiFi, полезную нагрузку можно легко модифицировать для более продвинутых или вредоносных целей — единственными ограничениями являются ваша креативность и технические знания.

Настройка

Со временем проект разросся и включает в себя множество скриптов и инструментов. Изначально он был создан для демонстрации возможностей Rubber Ducky — в частности, бюджетной версии на базе Raspberry Pi Pico (RPi Pico). В настоящее время основными компонентами проекта являются:

  1. Атака Rubber Ducky
  2. Атака Bash Bunny

Предварительные требования

  • Физический доступ к разблокированному компьютеру жертвы.

  • Компьютер должен иметь доступ в Интернет для отправки украденных данных с помощью SMTP для эксфильтрации по сети.

  • Знание пароля компьютера жертвы для эксплойта под Linux.

Атака Rubber Ducky

После создания pico-ducky вам остаётся только скопировать модифицированную полезную нагрузку (с вашими SMTP-данными для эксплойта Windows и/или с паролем Linux и именем USB-накопителя) на RPi Pico.

Что вам понадобится


  • RPi Pico
  • Кабель Micro USB — USB
  • Перемычка (опционально)
  • pico-ducky: Преобразованный RPi Pico в USB Rubber Ducky
  • USB-флешка (только для эксплойта через физический носитель)



[!NOTE]

  • Можно собрать этот инструмент с помощью Rubber Ducky, но учтите, что RPi Pico стоит около $4.00, а Rubber Ducky — $80.00.

  • Однако, хотя pico-ducky — хорошее и бюджетное решение, Rubber Ducky предлагает такие вещи, как скрытность и использование последней версии DuckyScript.

  • Чтобы использовать Ducky Script для записи полезной нагрузки на RPi Pico, сначала нужно преобразовать его в pico-ducky. Следуйте этим простым шагам для создания pico-ducky.

Инструмент инъекции нажатий клавиш

Инструмент инъекции нажатий клавиш, после подключения к хост-машине, выполняет вредоносные команды, имитируя нажатия клавиш пользователем. Внешне он выглядит как USB-накопитель, но действует как клавиатура, вводящая заранее запрограммированную полезную нагрузку. Такие инструменты, как Rubber Ducky, могут печатать более 1000 слов в минуту. После создания любой, кто имеет физический доступ, может легко развернуть эту нагрузку.

Инъекция нажатий клавиш

Полезная нагрузка использует команду STRING для обработки инъекций нажатий клавиш. Она принимает один или несколько буквенно-цифровых/знаков препинания и будет вводить остаток строки в точности так, как написано, в целевую машину. ENTER/SPACE будут имитировать нажатие соответствующих клавиш клавиатуры.

Задержки

Мы используем команду DELAY для временной приостановки выполнения полезной нагрузки. Это полезно, когда нагрузке нужно дождаться загрузки элемента, например, командной строки. Задержка полезна в самом начале, когда новое USB-устройство подключается к целевому компьютеру. Изначально компьютер должен выполнить ряд действий, прежде чем сможет принимать команды ввода. В случае HID время настройки очень мало. В большинстве случаев это занимает долю секунды, так как драйверы встроены. Однако в некоторых случаях более медленный ПК может дольше распознавать pico-ducky. Общая рекомендация — настроить время задержки в соответствии с вашей целью.

Эксфильтрация

Эксфильтрация данных — это несанкционированная передача данных с компьютера/устройства. После сбора данных злоумышленник может упаковать их, чтобы избежать обнаружения при отправке по сети, используя шифрование или сжатие. Два наиболее распространённых способа эксфильтрации:

  • Эксфильтрация по сети.
    • Этот подход использовался для эксплойта под Windows. Полную полезную нагрузку можно увидеть здесь.

  • Эксфильтрация через физический носитель.
    • Этот подход использовался для эксплойта под Linux. Полную полезную нагрузку можно увидеть здесь.

Эксплойт для Windows

Для использования полезной нагрузки Windows (payload1.dd) не нужно подключать перемычку между выводами.

Отправка украденных данных по электронной почте

После экспорта паролей в файл .txt, полезная нагрузка отправит данные на указанный адрес электронной почты через Yahoo SMTP. Для получения более подробных инструкций перейдите по этой ссылке. Также шаблон полезной нагрузки необходимо обновить с вашими SMTP-данными, то есть нужно обновить RECEIVER_EMAIL, SENDER_EMAIL и пароль от вашей электронной почты PASSWORD. Кроме того, вы можете изменить тело и тему письма.

https://github.com/AleksaMCode/WiFi-password-stealer/blob/25cf7c56a7df4a9811b4d3eab8d6e6dad4282055/payload/payload_windows.template.dd#L31

[!NOTE]

  • После отправки данных по электронной почте файл .txt удаляется.

  • Вы также можете использовать SMTP от другого почтового провайдера, но следует учитывать сервер SMTP и номера портов, которые вы укажете в полезной нагрузке.

  • Имейте в виду, что некоторые сети могут блокировать использование неизвестного SMTP на брандмауэре.

Эксплойт для Linux

Для использования полезной нагрузки Linux (payload2.dd) необходимо подключить перемычку между GND и GPIO5, чтобы соответствовать коду в code.py на вашем RPi Pico. Для получения дополнительной информации о настройке нескольких полезных нагрузок на RPi Pico посетите эту ссылку.

Эксплойт на Linux Mint

Рис. 1: Эксплойт на Linux

Сохранение украденных данных на USB-флешку

После экспорта паролей с компьютера данные будут сохранены на назначенную USB-флешку. Чтобы эта полезная нагрузка работала правильно, её необходимо обновить с правильным именем вашего USB-накопителя, то есть вам нужно заменить USBSTICK на имя вашего USB-накопителя в двух местах.

https://github.com/AleksaMCode/WiFi-password-stealer/blob/25cf7c56a7df4a9811b4d3eab8d6e6dad4282055/payload/payload_linux.template.dd#L3

https://github.com/AleksaMCode/WiFi-password-stealer/blob/25cf7c56a7df4a9811b4d3eab8d6e6dad4282055/payload/payload_linux.template.dd#L11

Кроме того, вам также нужно будет обновить пароль Linux PASSWORD в полезной нагрузке в трёх местах. Как указано выше, для успешного выполнения этого эксплойта вам потребуется знать пароль машины жертвы под Linux, что делает эту атаку менее вероятной.

https://github.com/AleksaMCode/WiFi-password-stealer/blob/a90ffb208e6a09d1b0ae44d1afe81d82248ba3fe/payload/payload_linux.template.dd#L7

https://github.com/AleksaMCode/WiFi-password-stealer/blob/a90ffb208e6a09d1b0ae44d1afe81d82248ba3fe/payload/payload_linux.template.dd#L9

Скрипт Bash

Чтобы запустить скрипт wifi_passwords_print.sh, нужно обновить скрипт с правильным именем вашей USB-флешки, после чего вы можете ввести в терминале следующую команду:

root@kitploit:~
echo PASSWORD | sudo -S sh wifi_passwords_print.sh USBSTICK

где PASSWORD — это пароль вашей учётной записи, а USBSTICK — имя вашего USB-устройства.

Краткий обзор полезной нагрузки

NetworkManager основан на концепции профилей соединений и использует плагины для чтения/записи данных. Он использует формат файлов ключей .ini-style и хранит профили конфигурации сети. Плагин keyfile поддерживает все типы соединений и возможности, которые есть в NetworkManager. Файлы находятся в /etc/NetworkManager/system-connections/. Основываясь на формате keyfile, полезная нагрузка использует команду grep с регулярным выражением для извлечения интересующих данных. Для фильтрации файлов использовалась модифицированная положительная ретроспективная проверка ((?<=keyword)). В то время как положительная ретроспективная проверка сопоставляет определённую позицию в строке, sc. сразу после keyword, не включая сам текст в совпадение, регулярное выражение (?<=keyword).* будет соответствовать любому тексту после keyword. Это позволяет полезной нагрузке извлекать значения после ключевых слов SSID и psk (предварительный общий ключ).

Для получения дополнительной информации о NetworkManager вот несколько полезных ссылок:

  • Создание профилей NetworkManager вручную в формате keyfile
  • Описание плагина настроек keyfile

Форматирование эксфильтрованных данных

Ниже приведён пример эксфильтрованных и отформатированных данных с машины жертвы в файле .txt.

https://github.com/AleksaMCode/WiFi-password-stealer/blob/f5b3b11328764eb07d765a210fbf25db3a828455/resources/wifi_pass.txt#L1-L5

Проблема с USB-накопителем

Одно из преимуществ Rubber Ducky перед RPi Pico заключается в том, что он не отображается как USB-накопитель при подключении. Когда он подключён к компьютеру, машина видит его только как USB-клавиатуру. Это не является поведением по умолчанию для RPi Pico. Если вы хотите предотвратить отображение RPi Pico как USB-накопителя при подключении, вам необходимо соединить перемычкой вывод 18 (GND) и вывод 20 (GPIO15). Для получения более подробной информации посетите эту ссылку.

💡 Совет:

  • Загрузите полезную нагрузку на RPi Pico до соединения выводов.
  • Не припаивайте выводы, так как, вероятно, в какой-то момент вы захотите изменить/обновить полезную нагрузку.

Создатель полезной нагрузки

При создании рабочего файла полезной нагрузки вы можете использовать скрипт writer.py или вручную изменить файл шаблона. Для успешного запуска скрипта вам необходимо передать, помимо имени файла скрипта, имя ОС (windows или linux) и имя файла полезной нагрузки (например, payload1.dd). Ниже приведён пример запуска скрипта writer при создании полезной нагрузки под Windows.

root@kitploit:~
python3 writer.py windows payload1.dd

Атака Bash Bunny

С некоторыми незначительными изменениями ранее использованные скрипты можно адаптировать для работы на Bash Bunny. Bash Bunny работает, эмулируя доверенное USB-устройство [1]. Для этого проекта мы настроим его на эмуляцию флеш-накопителя с помощью следующей команды [1, 2]:

root@kitploit:~
ATTACKMODE HID STORAGE

Используя команду DuckyScript ATTACKMODE, мы можем определить, какой тип устройства должен эмулировать Bash Bunny [1]. Каждый режим атаки регистрируется в системе с помощью уникальных идентификаторов USB Vendor ID (VID) и Product ID (PID) [1]. Также можно комбинировать несколько режимов атаки, объединяя их в цепочку.

Bash Bunny, подключённый к ПК

Рис. 2: Bash Bunny Mark I, подключённый к ПК

Bash Bunny поддерживает оригинальные команды DuckyScript, поэтому я смог повторно использовать скрипт из раздела Rubber Ducky. Чтобы использовать эти команды встроенными, необходимо добавить префикс QUACK [1]. Например, вместо WINDOWS r пишем Q WINDOWS r.

Для загрузки полезных нагрузок на Bash Bunny устройство должно быть переведено в режим вооружения (положение переключателя 3 — ближайшее к USB-разъёму) [1]. После подключения скопируйте payload.txt и exfil.txt в payloads\switch1. Полезные нагрузки должны быть названы payload.txt [1,2], а вспомогательные файлы, на которые ссылается нагрузка, можно называть произвольно.

Для справки, структура каталогов массового хранения Bash Bunny выглядит следующим образом [2]:

root@kitploit:~
BashBunny/
├── loot/
│   └── (эксфильтрованные данные из полезных нагрузок сохраняются здесь)
└── payloads/
    ├── library/
    │   └── (переиспользуемые скрипты или модули)
    ├── switch1/
    │   ├── payload.txt
    │   └── (дополнительные файлы, например, exfil.txt, скрипты и т.д.)
    └── switch2/
        ├── payload.txt
        └── (дополнительные файлы)

Рис. 3: Структура каталогов массового хранения Bash Bunny

После завершения выполнения скрипта результаты будут сохранены в loot\wifi_pass.txt. Если на целевом компьютере нет сохранённых паролей WiFi, файл будет пустым.

[!NOTE]

Поскольку атака Bash Bunny использует скрипт PowerShell (exfil.txt), она может быть использована только в системах Windows. Чтобы использовать аналогичный подход в Linux, необходимо изменить полезную нагрузку, заменив скрипт PowerShell на скрипт Bash, описанный в разделе Linux выше.

Ограничения/Недостатки

  • Этот pico-ducky в настоящее время работает только в ОС Windows.

  • Для успешного развёртывания этой атаки требуется физический доступ к разблокированному устройству.

  • Эксплойт под Linux имеет гораздо меньше шансов на успех, поскольку для этого требуется не только физический доступ к разблокированному устройству, но и знание пароля администратора на машине Linux.

  • Брандмауэр машины или сети может препятствовать отправке украденных данных по сети.

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

  • Устройство pico-ducky не является скрытным, наоборот, оно довольно громоздкое, особенно если припаять выводы.

  • Кроме того, устройство pico-ducky заметно медленнее по сравнению с Rubber Ducky при выполнении того же скрипта.

  • Если включен Caps Lock, часть кода полезной нагрузки не будет выполнена, и эксплойт завершится неудачей.

  • Если на компьютере установлена неанглийская среда, этот эксплойт не будет успешным.

  • В настоящее время pico-ducky не поддерживает DuckyScript 3.0, можно использовать только DuckyScript 1.0. Если вам нужна версия 3.0, придётся использовать Rubber Ducky. Для этого эксплойта версия 3.0 не нужна!

Ссылки

  1. Документация Bash Bunny от Hak5
  2. Wiki основ Bash Bunny
Скачать инструмент