
Фреймворк для плат разработки Digiduck с процессорами ATTiny85 и загрузчиком micronucleus!
Фреймворк для плат разработки Digiduck на базе процессоров ATTiny85 и загрузчика micronucleus!
alt text Скриншот приветственного экрана DDF
- Плата разработки ATTiny85 или другая совместимая плата «Digispark»
- Драйверы DigiSpark (Если вы можете работать с ней через Arduino — всё должно быть в порядке.)
- OSX или MacOS
- ArduinoIDE с установленной библиотекой Digispark
DigiDuck Framework (далее — DDF) очень прост в запуске и настройке! Для DDF не требуются сторонние модули! Вам нужно лишь убедиться, что у вас установлен Python 3.6+ (я использовал его для разработки, но, надеюсь, он совместим и с более старыми версиями). Склонируйте этот репозиторий и перейдите в каталог из командной строки. Внутри каталога просто выполните:
python start.py
Это запустит программу и отобразит приветственный экран, показанный выше.
В этом фреймворке три команды! Я старался сделать его максимально лёгким, поэтому для загрузки полезной нагрузки на плату нужна всего одна команда.
Команда help отображает это меню:
alt text
Команда show отображает это меню:
alt text
Здесь будут показаны все доступные полезные нагрузки. Однако при выполнении команды execute они отобразятся снова.
Третья и последняя команда в DDF — execute. Команда execute показывает то же меню, что и show, но из этого меню вы вводите имя полезной нагрузки. Необходимо указывать расширение .hex в конце, иначе загрузка не произойдёт корректно, и вас попросят ввести имя снова.
alt text
Вывод команды execute.
После выбора полезной нагрузки вам будет предложено вставить требуемую плату в компьютер. Затем будет выполнена установка выбранной полезной нагрузки, и по завершении отобразится следующее:
alt text
Вот и всё! Теперь вы можете подключить плату badUSB DigiSpark к компьютеру и запустить нужную полезную нагрузку!
Полезные нагрузки — это скомпилированные hex-файлы DigiSpark .ino, которые устанавливаются через загрузчик micronucleus на вашу плату ATTiny85 или другие совместимые платы.
Все текущие полезные нагрузки взяты из скриптов RubberDucky от Hak5, доступных здесь. Если вы не уверены, что делает какая-либо нагрузка, — загляните туда, чтобы узнать о ней. Я стараюсь сохранять названия нагрузок близкими к оригинальным, но не хочу, чтобы пользователям Windows приходилось много печатать, так как rlcompleter не работает.
Перейдите на GitHub-страницу Duckyspark, чтобы узнать, как создать переведённый .ino-файл из скрипта RubberDucky. После этого загрузите ваш .ino-файл в Arduino IDE. Убедитесь, что в настройках включён подробный вывод (Verbose), и скомпилируйте код. Откройте вывод терминала (внизу) и найдите расположение .hex-файла. Он должен находиться во временной папке в вашем AppData или аналогичной папке в MacOS. Вот пример:
alt text Это находится прямо над сообщением о необходимости вставить плату!
Извлеките файл payloadname.cpp.hex из этой папки и перетащите его в папку payloads внутри DDF. Запустите программу — ваша полезная нагрузка появится в списке доступных нагрузок!
Не стесняйтесь вносить свой вклад, добавляя собственные или дополнительные нагрузки из скриптов Rubber Ducky выше! Создавайте Pull Request с новыми нагрузками.
Duckyspark — https://github.com/toxydose/Duckyspark
Micronucleus — https://github.com/micronucleus/micronucleus
Hak5 RubberDucky Payloads — https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads