Статья Делаем USB-Backdoor из Raspberry Pi Zero W и P4wnP1

Доброго времени суток дорогие друзья. В этом посте я хочу показать, как собрать небольшой гаджет, используя Raspberry Pi Zero W. Суть которого будет заключаться в создание USB-Backdoor-а.

Прошу обратить внимание, что этот проект предназначен только для образовательных целей!

Что вам нужно:
  • Raspberry Pi Zero W
  • Micro-SD карта
  • USB-шнурок(USB-MicroUSB)
  • Последняя версия Raspbian (достаточно версии Lite)
  • Программное обеспечение P4wnP1
Особенности P4wnP1:
  • Скрытый канал HID Frontdoor / Backdoor: Удаленный доступ к ОС Microsoft Windows через устройства HID
  • Windows 10 Lockpicker: Разблокировка ОС Microsoft Windows со слабыми паролями (полностью автоматизировано).
  • Кража учетных данных браузера: Крадет учетные данные из браузера и копирует их на встроенную SD-карту.
  • Доступ к SSH по Wi-Fi, поддерживает скрытый ESSID.
  • Эмуляция USB-устройства. Работает с поддержкой Windows Plug and Play. Поддерживает следующие типы устройств:
    • HID Клавиатура / Мышь.
    • Запоминающее устройство USB: в настоящее время только в демонстрационной конфигурации с 128-мегабайтным диском.
    • RNDIS: сеть Microsoft Windows.
    • CDC ECM: сеть MacOS / Linux.
  • Скрипты полезной нагрузки на основе Bash.
  • John the Ripper Jumbo. Готовая версия скомпилирована!
  • Интеграция с AutoSSH: для простых обратных туннелей ssh.
  • Обратная связь через состояния светодиодов с помощью простой команды bash ( led_blink).
  • Расширенные функции HID:
    • Полезные нагрузки клавиатуры, которые могут быть вызваны индикаторами основной клавиатуры (NUMLOCK, CAPSLOCK и SCROLLLOCK).
    • Динамическое разветвление полезной нагрузки на основе светодиодных триггеров
    • Поддерживает DuckyScripts!
    • Поддержка многоязычной раскладки клавиатуры (не нужно беспокоиться о целевом языке при использовании команд HID).
    • Загрузка начинается, когда загружается целевой драйвер клавиатуры (нет необходимости в ручных задержках, onKeyboardUpобратный вызов может использоваться в полезных нагрузках).
    • Поддерживает MouseScript.
Расширенные возможности сети:
  • Фальшивый сетевой интерфейс RNDIS со скоростью до 20 ГБ/с обеспечивает минимальную метрику и выигрывает каждый бой за доминирующую запись «шлюза по умолчанию» в таблицах маршрутизации при проведении сетевых атак.
  • Автоматическое обнаружение канала и переключение интерфейса, если полезная нагрузка включает как RNDIS, так и сеть ECM.
  • Сервер SSH работает по умолчанию, поэтому P4wnP1 может быть подключен к 172.16.0.1 (при условии, что полезная нагрузка включает RNDIS, CDC ECM или оба) или к 172.24.0.1 через WiFi.
Расширенные функции полезной нагрузки:
  • Полезные нагрузки bash на основе обратных вызовов ( template.txt подробности см. в полезной нагрузке).
  • onNetworkUp (когда целевой хост активирует сетевое соединение).
  • onTargetGotIP (если цель получила IP, доступ к IP можно получить из скрипта полезной нагрузки.
  • onKeyboardUp (когда установка драйвера клавиатуры на цели завершена и клавиатура используется).
  • onLogin (когда пользователь входит в P4wnP1 через SSH).
Конфигурация может быть выполнена глобально ( setup.cfg) или перезаписана для каждой полезной нагрузки (если тот же параметр определен в скрипте полезной нагрузки).

Настройки включают в себя:
  • Конфигурация USB (идентификатор поставщика, идентификатор продукта, типы устройств для включения…).
  • Конфиг WiFi (SSID, пароль…).
  • HID клавиатура (целевой язык клавиатуры и т. д.).
  • Конфигурация сети и DHCP.
  • Выбор полезной нагрузки.
В чем преимущества P4wnP1 от Rubber Ducky:
  • У вас есть возможность обрабатывать Ducky Script , встроенный в полезную нагрузку(bash).
  • У вас также есть возможность запускать собственные полезные нагрузки клавиатуры, когда происходит событие, такое как нажатие клавиши.
  • При установке на Raspberry Pi Zero W клавиатурные атаки также могут осуществляться с помощью WiFi, порождая точку доступа.
  • Многоязычная поддержка через глобальную переменную полезной нагрузки!
Установка
Шаг 1: Загрузка и установка Raspbian:

Первым шагом является загрузка и установка последней версии Raspbian (lite) и прошивка на SD-карту.
  • Сначала скачаем Raspbian Stretch Lite.
Raspbian Stretch Lite - это «облегченная» версия операционной системы для Raspberry Pis. «Lite» означает, что в ОС просто нет рабочего стола с графическим интерфейсом, поэтому мы будем делать все через командную строку.

Скачать прошивку можно отсюда:
  • Следующим шагом установка Etcher.
Etcher - потрясающий инструмент, созданный Resin.io, который позволяет записывать изображения на SD-карты и USB-накопители. В этом случае мы будем использовать его для прошивки ОС Stretch Light на карту MicroSD.
  • Откройте Etcher. Выберите ваш образ Stretch Light и и прошейте свою SD-карту.
    25180
  • Извлеките и заново вставьте свою SD-карту. Этот шаг необходим только потому, что Etcher автоматически отключает SD-карту.
Перед тем, как вставить карту microSD в Pi, нам нужно отредактировать несколько файлов.

Шаг 2. Настройка образа.
  • Сначала мы добавим файл wpa_supplicant.conf, чтобы система могла подключиться к нашей точке доступа Wi-Fi. Создайте файл в текстовом редакторе, я использую Notepad++ ( ).
Добавьте следующий текст, заменив ssid и psk правильными значениями для вашей точки Wi-Fi:
Код:
country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="Ваше имя точки"
scan_ssid=1
psk="Ваш пароль от Wi-Fi точки"
key_mgmt=WPA-PSK
}
  • Наконец, добавьте пустой файл с именем «ssh» (без расширения файла) в загрузочный раздел, чтобы включить SSH при старте системы.
25182


Извлеките SD-карту и вставьте ее в Pi Zero W. Вставьте штекер адаптера питания в разъем питания Pi Zero W и дождитесь загрузки(это займет около минуты).

Теперь нам нужно найти IP-адрес Pi Zero W в нашей сети. Вы можете использовать любой сетевой сканер. И поступаю также, как и при поиске IP уязвимых машин, а именно перехожу в настройки роутера и ищу пункт аренда DHCP.

25184


После получение IP нашей малины мы можем подключиться к ней по SSH. P.S. Логин: pi Пароль: raspberry

25185


25187


Шаг 3. Установка P4wnP1:
Команды для установки P4wnP1:
Код:
sudo apt-get -y install git
cd /home/pi/
git clone --recursive https://github.com/mame82/P4wnP1
cd P4wnP1/
./install.sh
25188


25189


Шаг 4. Подключение к P4wnP1 после установки:
Мы можем подключиться к P4wnP1 без проводов, используя SSID «P4wnP1» и учетные данные «MaMe82-P4wnP1», или, поскольку гаджет включен в наш USB порт, мы можем просто подключиться через Putty, используя 172.16.0.1 в качестве IP-адреса.

25190


Хорошо! Мы подключились опять к своей малинке Pi после запуска установки P4wnP1, и теперь нам нужно настроить нашу первую полезную нагрузку! Вводим команды:
Код:
cd P4wnP1/
sudo nano setup.cfg

Мы должны увидеть много разных опций, но сейчас давайте сосредоточимся на нижней части файла setup.cfg.
В нижней части файла вы должны увидеть что-то похожее на это:
Код:
PAYLOAD=network_only.txt
...
#PAYLOAD=hid_backdoor

25192


Продолжайте, закомментируйте полезную нагрузку network_only.txt и раскомментируйте hid_backdoor.
Код:
#PAYLOAD=network_only.txt
...
PAYLOAD=hid_backdoor

25193


25194


На этом пожалуй все). Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий ниже.

Видео с настройкой и демонстрацией.

 
Последнее редактирование:
А что дальше?
Ну воткнули в комп жертвы, и ушли в ближайший Макдак для подключения к интернету по ви-фи. Как дальше действовать? По тому же ip 172.16.0.1 подключаться??? Так мы ж в разных точках доступа сидим.... Объясни плиз!

Или обязательно находится в зоне доступа раздачи ви-фи сигнала от нашей Малинки?
В таком случае бежим не в Макдак, а в ближайший сортир, и оттуда проводим атаку! ))))) Приятное с полезным совмещаем )))))
 
А что дальше?
Ну воткнули в комп жертвы, и ушли в ближайший Макдак для подключения к интернету по ви-фи. Как дальше действовать? По тому же ip 172.16.0.1 подключаться??? Так мы ж в разных точках доступа сидим.... Объясни плиз!

Или обязательно находится в зоне доступа раздачи ви-фи сигнала от нашей Малинки?
В таком случае бежим не в Макдак, а в ближайший сортир, и оттуда проводим атаку! ))))) Приятное с полезным совмещаем )))))
Вот правильный вариант это совмещение сортира с атакой.
Единственный минус при атаке, это то что нужно находиться в пределе Wi-Fi сигнала. Можно конечно иметь направленную антенну и сидеть уже не в сортире а в Макдаке. Если вам интересно, то я могу даже замерить с какого расстояния Wi-Fi теряется.
P.S. Может напишу статью как получить. Backdoor находясь даже дома и управляя ПК жертвы.
 
Вот правильный вариант это совмещение сортира с атакой.
Единственный минус при атаке, это то что нужно находиться в пределе Wi-Fi сигнала. Можно конечно иметь направленную антенну и сидеть уже не в сортире а в Макдаке. Если вам интересно, то я могу даже замерить с какого расстояния Wi-Fi теряется.
P.S. Может напишу статью как получить. Backdoor находясь даже дома и управляя ПК жертвы.
Ну все равно интересно!
Спасибо за статью. Закажу себе малинку на алике!
 
Добрый день, есть вопрос. Будет ли это работать на zero без встроенной вафли, если подключить свисток и поднять на нем точку. Или могут быть проблемы с питанием? Кто-нибудь тестировал подобный вариант?

Как только подключить незаметно к pi свисток, чтоб еще и порт остался свободным).
Интересный кстати проект (спасибо опросу в шапке) PoisonTap, думаю вечером начну с него))
 
Последнее редактирование модератором:
Могу протестить, но скорее всего все будет ОК

Как только подключить незаметно к pi свисток, чтоб еще и порт остался свободным).
Интересный кстати проект (спасибо опросу в шапке) PoisonTap, думаю вечером начну с него))
Опрос был, чтобы определиться писать мне ли статью. Статья зарезервированна)
 
Отличная статья! Автору спасибо за нее. Благодаря этой статье, наконец-то разобрался как правильно настроить малинку) Отдельное спасибо за отзывчивость. У меня возникли небольшие проблемы, я написал автору, и он тут же ответил и помог мне)
 
  • Нравится
Реакции: Debug
Доброго времени суток! у меня тут остро встал вопрос)))) если на машине которую мы атакуем стоит RU раскладка и я выбираю SetKeyboardLanguage 16(под номером 16 у меня стоит RU), а потом FireStage1.....и после этих манипуляций у меня слетает скрипт и меня выбрасывает в обычный стандартный терминал на rpi 0 w! А вот если на целевом компе стоит EN раскладка то все норм отрабатывает! С чем такое поведение может быть связано?
 
Интересная штука получается. Добавлю, что вместо подключения через micro-usb можно самостоятельно подпаять разъём usb к питанию и к данным, как показано на фото. Так мы сразу запитаемся от компьютера без доп. источников, и не надо будет ждать usb-stem с китайских магазинов

27258
 
Интересная штука получается. Добавлю, что вместо подключения через micro-usb можно самостоятельно подпаять разъём usb к питанию и к данным, как показано на фото. Так мы сразу запитаемся от компьютера без доп. источников, и не надо будет ждать usb-stem с китайских магазинов

Посмотреть вложение 27258
О, классно получилось
Осталось сделать корпус и вообще будет шикарноо
 
  • Нравится
Реакции: Debug
Данный способ работает исключительно на версии zero,на rpi 3 оболочка shell не запускается
 
Добрый день! Вопрос следующий: После подключения к точке доступа P4wnP1 становится невозможно подключиться к малине через putty (т.к. интернет эта точка доступа на самом деле не раздает). Посоветуйте решение проблемы.

Может дело в том что я пытаюсь подключиться с MacOS?
 
Добрый день! Вопрос следующий: После подключения к точке доступа P4wnP1 становится невозможно подключиться к малине через putty (т.к. интернет эта точка доступа на самом деле не раздает). Посоветуйте решение проблемы.

Может дело в том что я пытаюсь подключиться с MacOS?
После подключение к точке доступа вы и так подключаетесь к ней и можете воспользоваться Putty
 
Только хотел написать статью на подобную тему перепробовал много прошивок для rpi0, чисто моё мнение, но гораздо удобнее как и в установке, как и в использовании прошивка от того же Mame82. A.L.O.A и устанока гараздо проще, все теже плюшки есть и есть удобный веб интерфейс. А для того чтобы сидеть в макдаке, можно прямо к плате припаять конект для антенны к которому можно подсоеденить антенку.
 
В Шаге 2 не понял куда вставить созданный wpa_supplicant.conf?
 
Что делать?

pi@raspberrypi:~/P4wnP1 $ sudo ./install.sh
Testing Internet connection and name resolution...
...[pass] Internet connection works
Testing if the system runs Raspbian Jessie or Stretch...
...[Error] Pi is not running Raspbian Jessie or Stretch! Exiting ...

В Шаге 2 не понял куда вставить созданный wpa_supplicant.conf?
В корень туда же куда и SSH файл
 
Может кто сталкивался с такой проблемой? RPi0w не видит роутер, соседские видит, а мой нет. У меня Keenetic Giga III работает на частоте 802.11bgn. Так же раздаю вайфай с телефона и его тоже не видит.
 
Последнее редактирование:
  • Нравится
Реакции: Vulfrih
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!