PDA

Просмотр полной версии : Делаем USB-Backdoor из Raspberry Pi Zero W и P4wnP1


Debug
15.01.2019, 17:07
Доброго времени суток дорогие друзья. В этом посте я хочу показать, как собрать небольшой гаджет, используя 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» означает, что в ОС просто нет рабочего стола с графическим интерфейсом, поэтому мы будем делать все через командную строку.

Скачать прошивку можно отсюда: Download Raspbian for Raspberry Pi

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

Откройте Etcher. Выберите ваш образ Stretch Light и и прошейте свою SD-карту.

https://forum.antichat.xyz/attachments/4834322/1547556135212.png

Извлеките и заново вставьте свою SD-карту. Этот шаг необходим только потому, что Etcher автоматически отключает SD-карту.
Перед тем, как вставить карту microSD в Pi, нам нужно отредактировать несколько файлов.

Шаг 2. Настройка образа.

Сначала мы добавим файл wpa_supplicant.conf, чтобы система могла подключиться к нашей точке доступа Wi-Fi. Создайте файл в текстовом редакторе, я использую Notepad++ ( Notepad++ Home ).
Добавьте следующий текст, заменив ssid и psk правильными значениями для вашей точки Wi-Fi:

Наконец, добавьте пустой файл с именем «ssh» (без расширения файла) в загрузочный раздел, чтобы включить SSH при старте системы.

https://forum.antichat.xyz/attachments/4834322/1547556567237.png

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

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

https://forum.antichat.xyz/attachments/4834322/1547556667511.png

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

https://forum.antichat.xyz/attachments/4834322/1547556740480.png

https://forum.antichat.xyz/attachments/4834322/1547556959427.png

Шаг 3. Установка P4wnP1:
Команды для установки P4wnP1:

Код:



sudo apt-get -y install git
cd /home/pi/
git clone --recursive https://github.com/mame82/P4wnP1
cd P4wnP1/
./install.sh


https://forum.antichat.xyz/attachments/4834322/1547557009085.png

https://forum.antichat.xyz/attachments/4834322/1547557044390.png

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

https://forum.antichat.xyz/attachments/4834322/1547557115665.png

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

Код:



cd P4wnP1/
sudo nano setup.cfg


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

Код:



PAYLOAD=network_only.txt
...
#PAYLOAD=hid_backdoor


https://forum.antichat.xyz/attachments/4834322/1547557250730.png

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

Код:



#PAYLOAD=network_only.txt
...
PAYLOAD=hid_backdoor


https://forum.antichat.xyz/attachments/4834322/1547558205459.png

https://forum.antichat.xyz/attachments/4834322/1547558235414.png

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

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

Asuma
22.01.2019, 10:53
git clone --recursive
Поправьте

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

Или обязательно находится в зоне доступа раздачи ви-фи сигнала от нашей Малинки?
В таком случае бежим не в Макдак, а в ближайший сортир, и оттуда проводим атаку! ))))) Приятное с полезным совмещаем )))))

Debug
24.01.2019, 06:54
Tihon49 сказал(а):

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

Или обязательно находится в зоне доступа раздачи ви-фи сигнала от нашей Малинки?
В таком случае бежим не в Макдак, а в ближайший сортир, и оттуда проводим атаку! ))))) Приятное с полезным совмещаем )))))


Вот правильный вариант это совмещение сортира с атакой.
Единственный минус при атаке, это то что нужно находиться в пределе Wi-Fi сигнала. Можно конечно иметь направленную антенну и сидеть уже не в сортире а в Макдаке. Если вам интересно, то я могу даже замерить с какого расстояния Wi-Fi теряется.
P.S. Может напишу статью как получить. Backdoor находясь даже дома и управляя ПК жертвы.

Tihon49
24.01.2019, 08:57
Debug сказал(а):

Вот правильный вариант это совмещение сортира с атакой.
Единственный минус при атаке, это то что нужно находиться в пределе Wi-Fi сигнала. Можно конечно иметь направленную антенну и сидеть уже не в сортире а в Макдаке. Если вам интересно, то я могу даже замерить с какого расстояния Wi-Fi теряется.
P.S. Может напишу статью как получить. Backdoor находясь даже дома и управляя ПК жертвы.


Ну все равно интересно!
Спасибо за статью. Закажу себе малинку на алике!

cherubot
06.02.2019, 14:26
Добрый день, есть вопрос. Будет ли это работать на zero без встроенной вафли, если подключить свисток и поднять на нем точку. Или могут быть проблемы с питанием? Кто-нибудь тестировал подобный вариант?

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

Debug
06.02.2019, 15:21
Могу протестить, но скорее всего все будет ОК



cherubot сказал(а):

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


Опрос был, чтобы определиться писать мне ли статью. Статья зарезервированна)

MerryKnight
20.02.2019, 17:36
Отличная статья! Автору спасибо за нее. Благодаря этой статье, наконец-то разобрался как правильно настроить малинку) Отдельное спасибо за отзывчивость. У меня возникли небольшие проблемы, я написал автору, и он тут же ответил и помог мне)

+Maxon4ik
10.03.2019, 02:57
Доброго времени суток! у меня тут остро встал вопрос)))) если на машине которую мы атакуем стоит RU раскладка и я выбираю SetKeyboardLanguage 16(под номером 16 у меня стоит RU), а потом FireStage1.....и после этих манипуляций у меня слетает скрипт и меня выбрасывает в обычный стандартный терминал на rpi 0 w! А вот если на целевом компе стоит EN раскладка то все норм отрабатывает! С чем такое поведение может быть связано?

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

https://forum.antichat.xyz/attachments/4839150/1552398381785.png

MerryKnight
12.03.2019, 18:19
Dr.Lafa сказал(а):

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

О, классно получилось
Осталось сделать корпус и вообще будет шикарноо

Token
29.07.2019, 11:54
Данный способ работает исключительно на версии zero,на rpi 3 оболочка shell не запускается

Debug
29.07.2019, 12:16
Token сказал(а):

Данный способ работает исключительно на версии zero,на rpi 3 оболочка shell не запускается


Ну конечно.

Debug
13.08.2019, 21:06
Quzay сказал(а):

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

Может дело в том что я пытаюсь подключиться с MacOS?


После подключение к точке доступа вы и так подключаетесь к ней и можете воспользоваться Putty

Hitreno
10.01.2020, 22:11
country в конфиге wpa_supplicant стоит US, а по идее нужно RU

Sq1
12.01.2020, 14:04
Только хотел написать статью на подобную тему перепробовал много прошивок для rpi0, чисто моё мнение, но гораздо удобнее как и в установке, как и в использовании прошивка от того же Mame82. A.L.O.A и устанока гараздо проще, все теже плюшки есть и есть удобный веб интерфейс. А для того чтобы сидеть в макдаке, можно прямо к плате припаять конект для антенны к которому можно подсоеденить антенку.

Melinio
19.01.2020, 00:07
В Шаге 2 не понял куда вставить созданный wpa_supplicant.conf?

Naskel
19.01.2020, 00:16
Что делать?

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 ...



Melinio сказал(а):

В Шаге 2 не понял куда вставить созданный wpa_supplicant.conf?


В корень туда же куда и SSH файл

Melinio
19.01.2020, 00:38
Может кто сталкивался с такой проблемой? RPi0w не видит роутер, соседские видит, а мой нет. У меня Keenetic Giga III работает на частоте 802.11bgn. Так же раздаю вайфай с телефона и его тоже не видит.

Debug
19.01.2020, 08:28
Melinio сказал(а):

В Шаге 2 не понял куда вставить созданный wpa_supplicant.conf?


Если не ошибаюсь в корень SD-Карты



Melinio сказал(а):

Может кто сталкивался с такой проблемой? RPi0w не видит роутер, соседские видит, а мой нет. У меня Keenetic Giga III работает на частоте 802.11bgn. Так же раздаю вайфай с телефона и его тоже не видит.


Напишите в личку, попробуем решить проблему

Melinio
19.01.2020, 08:34
В общем после танцев с бубном пару проблем решил, может кому пригодится.
1. Если не видит роутер то надо поменять канал, у меня стоял 13 статичный, поставил 7 и малинка увидела.
2. Не подключалось к Wifi после перезапуска.
Вот нашел решение этой проблемы:
В первую очередь следует посмотреть, что указано в файле interfaces, который находится в каталоге /etc/network. Там есть секция wlan0, и в ней должно быть указано следующее:

Код:



allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp


Практически всегда в файле присутствуют именно такие записи, однако, если они другие, то нужно заменить на указанные. Важно: необходимо быть внимательным, чтобы не удалить/заменить ничего лишнего.

А всё остальное по мануалу.

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

Debug
19.01.2020, 08:36
Melinio сказал(а):

В общем после танцев с бубном пару проблем решил, может кому пригодится.
1. Если не видит роутер то надо поменять канал, у меня стоял 13 статичный, поставил 7 и малинка увидела.
2. Не подключалось к Wifi после перезапуска.
Вот нашел решение этой проблемы:
В первую очередь следует посмотреть, что указано в файле interfaces, который находится в каталоге /etc/network. Там есть секция wlan0, и в ней должно быть указано следующее:

Код:



allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp


А всё остальное по мануалу.

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


5 минут назад хотел предложить сменить канал) Удачи в экспериментах

Melinio
19.01.2020, 09:39
В общем я не знаю что делать. Пробовал на Мейзу M5 Note делать точку доступа и на Redmi Note 8 pro и на Redmi Note 5.
Не одну мобильную точку доступа не видит.
Можно как-то решить эту проблему?

Debug
19.01.2020, 10:08
Melinio сказал(а):

В общем я не знаю что делать. Пробовал на Мейзу M5 Note делать точку доступа и на Redmi Note 8 pro и на Redmi Note 5.
Не одну мобильную точку доступа не видит.
Можно как-то решить эту проблему?


Другие устройства подключаются к созданной ТД?

Melinio
19.01.2020, 10:10
Debug сказал(а):

Другие устройства подключаются к созданной ТД?


Да, только rpi не видит их.

Naskel
19.01.2020, 14:34
А мне что делать?


Naskel сказал(а):

Что делать?

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 ...

Melinio
19.01.2020, 21:17
Debug сказал(а):

Другие устройства подключаются к созданной ТД?


Как то так, аппарат Redmi Note 8 pro.

Debug
19.01.2020, 21:39
Melinio сказал(а):

Как то так, аппарат Redmi Note 8 pro.

Думаю вам стоит обратится на тематические форумы(посвящённые малинке) и попытаться там решить свою проблему.

SkyN0c1ip
12.04.2020, 17:18
Все получилось кроме последних действий. Командой SetKeyboardLanguage устанавливал и RU и EN. Но после команды FireStage1 выходит вот это:

Код:



P4wnP1 shell (client not connected) > FireStage1

Starting to type out stage1 to the target...
Traceback (most recent call last):
File "P4wnP1.py", line 1346, in
p4wnp1.cmdloop()
File "/usr/lib/python2.7/cmd.py", line 142, in cmdloop
stop = self.onecmd(line)
File "/usr/lib/python2.7/cmd.py", line 221, in onecmd
return func(arg)
File "P4wnP1.py", line 746, in do_FireStage1
self.stage1_trigger(trigger_type=trigger_type, trigger_delay_ms=trigger_delay_ms, hideTargetWindow = hideTargetWindow, bypassUAC=bypassUAC)
File "P4wnP1.py", line 466, in stage1_trigger
self.duckencoder.outhidDuckyScript(ps_stub) # print DuckyScript stub
File "/home/pi/P4wnP1/hidtools/backdoor/DuckEncoder.py", line 428, in outhidDuckyScript
self.out2hid(payload)
File "/home/pi/P4wnP1/hidtools/backdoor/DuckEncoder.py", line 398, in out2hid
f.flush()
IOError: [Errno 4] Interrupted system call
Cleaning Up...
LinkLayer: Aborting sync


Windows 10 версия 1909 (сборка ОС 18363.720).

Кто может подсказать как это исправить? Или в какую сторону копать?

Sp0ge
02.09.2020, 20:35
Naskel сказал(а):

А мне что делать?


скачать raspbain 2019 года с кодовым именем Stretch

Index of /raspbian_lite/images/raspbian_lite-2019-04-09

P.S. - качай второе сверху

wurdalak
13.09.2020, 11:31
кто ставил P4wnP1 A.L.O.A ?
как на время отключить раздачу вафли и подключиться к своему вафелу для неких обновлений ?
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf добавил отредактировал не помогло.

wurdalak
15.09.2020, 08:07
sarsmen сказал(а):

кто ставил P4wnP1 A.L.O.A ?
как на время отключить раздачу вафли и подключиться к своему вафелу для неких обновлений ?
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf добавил отредактировал не помогло.


Вопрос отпадает сделал как тут всё заработало

Tafi
04.11.2020, 15:15
Добрый день.
Объясните мне чайнику как это работает.
Получается, что атакуемый и атакующий компьютер должны быть подключены к сети Raspberry Pi Zero W ?
Или же атакуемый компьютер может быть подключен к любой сети?
Заранее спасибо за ответ

Debug
04.11.2020, 15:18
Tafi сказал(а):

Добрый день.
Объясните мне чайнику как это работает.
Получается, что атакуемый и атакующий компьютер должны быть подключены к сети Raspberry Pi Zero W ?
Или же атакуемый компьютер может быть подключен к любой сети?
Заранее спасибо за ответ


Атакуемый компьютер может быть подключён к любой сети.

Сладкий Хлеб
06.12.2020, 23:41
Столкнулся с тем, что rpi0w просто не подключалась к WiFi. Решил использованием этого шаблона

Код:



ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1
country=RU

network={
ssid="ИМЯ_ТОЧКИ_ДОСТУПА"
psk=656c4700f528aced39b853b3c51b3fdcfc55409faa83a6 402e936842237ac6f3
}
network={
ssid="ИМЯ_ТОЧКИ_ДОСТУПА2"
psk="ПАРОЛЬ"
}


Проблема решилась

Ошибка

... [Error] Pi is not running Raspbian Jessie or Stretch! Exiting ...

решилась, очевидно, установкой Raspbian Stretch Lite

Здесь уже у меня затуп. После установки P4wnP1 и перезагрузки... С малинкой связи нет. Ни AP не создает, ни подключается к ранее подключаемой WiFi точке
P.S. У меня китайская USB Addon Board