Flipper-демиург: ставим софт на macOS через JS для пентестеров
DuDlick 10 минут назад Flipper-демиург: ставим софт на macOS через JS для пентестеров Простой 3 мин 59 DevOps * Информационная безопасность * JavaScript * Из песочницы Когда речь заходит о Flipper Zero, многие...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. DuDlick 10 минут назад Flipper-демиург: ставим софт на macOS через JS для пентестеров Простой 3 мин 59 DevOps * Информационная безопасность * JavaScript * Из песочницы Когда речь заходит о Flipper Zero, многие вспоминают RFID, NFC, Sub-GHz. Но одна из самых интересных возможностей устройства — это JavaScript-движок и модуль BadUSB, который позволяет превратить Flipper в программируемую USB-клавиатуру. В этой статье разберём небольшой, но показательный скрипт, который автоматически устанавливает набор инструментов для пентеста(или другого ПО) на macOS через Homebrew.
И посмотрим, почему JavaScript на Flipper значительно интереснее классического DuckyScript. Почему одного DuckyScript уже мало? Традиционные BadUSB-сценарии обычно пишутся на DuckyScript:DELAY 1000 GUI SPACE DELAY 500 STRING terminal ENTER STRING brew install nmap ENTER Подход рабочий, но чаще упирается в ограничения:нет циклов;нет условий;нет модулей;сложно обрабатывать состояния;код плохо масштабируется.
Технические детали
Во Flipper доступен JavaScript API, который позволяет писать полноценную логику:Например:for (let i = 0; i < apps. } По сути мы получаем миниатюрный сценарный движок прямо внутри устройства. Разбираем скриптНачинается всё с подключения модулей, где первый отвечает за уведомления Flipper, а второй — за эмуляцию HID-устройства:let notify = require("notification let badusb = require("badusb Следом задаётся список программ:const apps = [ 'nmap', 'metasploit-framework', 'hydra' ]; Список можно расширять любым количеством пакетов.
Маскируемся под клавиатуру AppleСледующий блок задаёт USB-идентификаторы:badusb. setup({ vid: 0x05AC, pid: 0x026C, mfr: "Apple", product: "Keyboard" }); Здесь используются VID и PID производителя Apple(гуглятся или смотрятся в настройках). Проверяем подключениеПосле короткой индикации:notify.
blink("green", "short скрипт проверяет наличие соединения:if (badusb. isConnected()) { Это уже преимущество JavaScript перед DuckyScript. Можно выполнять действия только при наличии активного USB-соединения.
Отраслевые последствия
Автоматический запуск терминалаДалее происходит открытие Spotlight(Command + Space):badusb. press("GUI", "SPACE После небольшой паузы вводится:badusb. print("iterm", 100); badusb.
press("ENTER Скрипт ищет iTerm и запускает его. При желании можно заменить на:badusb. print("terminal Установка инструментовСамая интересная часть, так как больше всего показывается превосходство над DuckyScript: for (let i = 0; i < apps.
length; i++) { badusb. println("brew install " + apps, 100); delay(4000); } На каждую программу, cоздаётся команда установки через brew:brew install nmap brew install metasploit-framework brew install hydra То есть список пакетов превращается в набор последовательных установок. Например:const apps = [ 'nmap', 'masscan', 'sqlmap', 'john-jumbo' ]; Таким образом один и тот же сценарий можно использовать для разных ролей:пентестер;DevOps-инженер;разработчик;аналитик безопасности.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





