bladeRF HackRF IoT RTL-SDR SDR Взлом Прошивки

Attify OS. Универсальная отмычка от мира IoT. Вводная

Attify OS. Универсальная отмычка от мира IoT. Вводная

Если ты постоянный читатель нашего сайта, то наверняка помнишь статьи про разбор прошивок беспроводных счетчиков электричества, диспенсеров банкоматов, а равно как мои обещания рассказать про HackRF, Yard Stick One и прочие устройства для анализа радиочастот. Писали мы и про перехват SMS сообщений. Что объединяет все эти устройства? Правильно, они все относятся к миру интернета вещей, Internet of Things, или по-просту IoT.

IoT находится только в начале своего пути, но уже развивается с огромной скоростью, и вводимые новшества только добавляют новые проблемы, связанные с информационной безопасностью. В мире IoT превалирует парадигма security through obscurity — пока проблема не будет выявлена — её, как бы, не существуют. Система, полагающаяся на «security through obscurity», может иметь существующие или предполагаемые уязвимости, но её владельцы или разработчики считают, что если недостатки неизвестны, то злоумышленник не сможет их обнаружить.

Использование этой концепции приводит к катастрофическим последствиям — после обнаружения уязвимости устройства атакуются тысячами и используются злоумышленниками.

Основные сложности в защите IoT устройств происходят от того, что их нельзя обновить/пропатчить, а пользователи не знают как или не хотят обновляться. А зачастую устройства просто сняты с поддержки.

Давно ли ты в последний раз обновлял свой телефон? Ок, недавно. А роутер? Принтер? Точно обновлял? А как насчёт телевизора? Автомобиля? Счётчика? Может быть, стиральной машины? И это только самые простые вещи с которыми ты сталкиваешься каждый день. Давайте не забывать про огромное количество невидимых устройств, призванных «облегчить» нам жизнь, начиная от систем управления подачей воды, газа, электроэнергии и заканчивая транспортом, финансовой сферой или сферой услуг. Да и у майнеров тоже есть прошивки…

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

Большинство таких устройств работают по принципу – «работает и хорошо», а разработчики считают, что анализировать их устройство никто не будет. Последствия фиеричны. Потратив какое-то время на разбор прошивки устройства и найдя дыру, злоумышленник может получить доступ к устройстам по всему миру и эксплуатировать уязвимость. А хорошие парни могут сорвать неплохую награду за найденые дыры. Я даже не стану приводить примеры.

Да и векторов для атаки предостаточно.

Тем не менее, общих методов, используемых для выполнения анализа, таких как полная эмуляция системы, эмуляция пользовательского режима, бинарные инструменты, дизассемблер и песочница, едва ли достаточно. Эти инструменты либо обслуживают операционную систему одного типа, либо работают на архитектуре с одним ЦП. Кроме того, эти инструменты необходимо использовать отдельно, упорядочивание информации или перекрестные ссылки использовать практически невозможно. По этим причинам реверс-инжиниринг никогда не бывает легкой задачей. Но есть универсальный комбайн, способный существенно облегчить анализ…

Знакомьтесь, Attify OS

Дистрибутив обладающий всем необходимым функционалом для того, чтобы «расковырять» практически любое IoT устройство.

Attify содержит набор инструментов для анализа прошивок (Firmware Analysis Toolkits) — это набор инструментальных средств, созданный для того, чтобы помочь исследователям безопасности анализировать и выявлять уязвимости в прошивках IoT и встроенных (embedded) устройств.

IoT устройства и встроенные системы используют прошивку, в которой часто хранятся много полезной, а зачастую и критичной информации. Это могут быть «захардкоженные» учетные данные, триггеры для получения отладочной и системной информации, недокументированные возможности, бэкдоры и многое другое. IoT девайсы общаются по радио. Передают данные по проводам и взаимодействуют с другими устройствами. Attify OS обладает полным арсеналом инструментов, помогающих работать со всем этим. Пушки к бою?

Сам Attify основан на Ubuntu со всеми прелестями этого дестрибутива. Но каков же арсенал?

Arduino

Здесь отдельно я останавливаться не буду, лишь скажу, что в дистрибутив включены все необходимые инструменты для работы с Arduino.

Attify Badge tool

Attify Badge GUI-утилита для взаимодействия с UART, SPI, JTAG, GPIO etc. Утилита разработана контрибьюторами Attify OS и является удобным инструментом взаимодействия и является отличительной особенностью данного дистрибутива.

Baudrate

Небольшой инструмент, написанный на Python, для выявления скорости обмена последовательными соединениями

BetterCap

Bettercap — это легко расширяемый модульный портативный инструмент и фреймворк для MITM-атак на Ruby со всевозможными диагностическими и атакующими функциями, какие только могут пригодиться для атаки «человек посередине». Можно атаковать как всю сеть, так и определенные машины.
Встроенный снифер и диссектор на сегодня способен без дополнительных настроек собирать:
• информацию о посещенных URL;
• о посещенных HTTPS-хостах;
• данные HTTP POST-запросов;
• HTTP Basic и Digest аутентификации;
• аутентификационные данные от FTP, IRC, POP, IMAP, SMTP, NTLMv1/v2(HTTP, SMB, LDAP и так далее).

Binwalk

Об этом инструменте мы уже писали.

Это инструмент для поиска файлов и исполняемого кода в данном двоичном образе. Он подходит для определения файлов и кода в образах или прошивках. Binwalk использует библиотеку libmagic, поэтому он совместим с magic-сигнатурами, созданными для Unix-утилиты file.

Binwalk также имеет файл специальных magic-сигнатур, содержащий улучшенные сигнатуры для файлов, которые часто содержатся в образах встроенных программ, например, сжатые (архивированные) файлы, заголовки, ядра Linux, загрузчики, файловые системы и т.д.

Короче, Binwalk — это быстрый, простой в использовании инструмент для анализа, реверс-инженеринга и извлечения firmware.

Burp Suite

Как, ты ещё не знаешь? Burp Suite — это интегрированная платформа, предназначенная для проведения аудита веб-приложения, как в ручном, так и в автоматических режимах. Содержит интуитивно понятный интерфейс со специально спроектированными табами, позволяющими улучшить и ускорить процесс атаки. Сам инструмент представляет из себя проксирующий механизм, перехватывающий и обрабатывающий все поступающие от браузера запросы. Имеется возможность установки сертификата burp для анализа https соединений. Про этот крутейший инструмент в интернетах написана немало.

Cutter

Cutter – это бесплатная платформа для реверса с открытым исходным кодом, работающая на основе rizin. Являясь весьма продвинутой и настраиваемой платформой для реверса, не забывая при этом и об удобстве пользователя. По словам создателей, Cutter создан реверс-инженерами для реверс-инженеров.

DspectrumGUI

Dump1090

Тулкит для анализа Mode S для RTL-SDR. Что такое Mode S? Ха. Это ADS-B транспондер, утанавливаемый в самолёты и передающий всякую информацию, например об их высоте и положении.

Firmadyne

Инструмент для динамического анализа прошивок с открытым исходным кодом, построенный на основе Qemu. Также в комплекте с инструментом идут преднастроенные инструменты, такие, как Binwalk. Результаты анализа сохраняются в базу PostgreSQL. Анализ на наличие уязвимостей происходит через Metasploit.

Firmware Analysis Toolkit

Инструментарий, созданный для того, чтобы помочь исследователям безопасности проанализировать и выявить уязвимости в прошивке IoT иembedded устройств. Утилита разработана контрибьюторами Attify OS.

Firmware-Mod-Kit (FMK)

Предназначен для анализа и пересборки прошивок.

Flashrom

Универсальная утилита для чтения/записи flash-чипов.

GHIDRA

GHIDRA – бесплатный инструмент с открытым исходным кодом, поддерживающий большое количество архитектур, разработанный Агентством национальной безопасности США. О нём мы уже писали.

GNURadio

Программный инструментарий, предоставляющий разработчикам программно-определяемых радиосистем «строительные блоки», обеспечивающие основные функции цифровой обработки сигналов. GNURadio позволяет создать достаточно сложную конфигурацию SDR радиоустройства, не написав ни единой строчки кода.

GQRX

Gqrx программный ресивер на основе GNU Radio и GUI-интерфейсом, написанном на Qt.

GR-GSM

Плагин для GNURadio для работы с GSM.

GR-Paint

Утилита для любителей “поприкалываться”. Позволяет рисовать картинки в визуализации радиопотока.

HackRF Tools

Набор инструментов для работы с HackRF.

Inspectrum

Инструмент для анализа перехваченых сигналов SDR.

JADx

Это активно развиваемый открытый декомпилятор, который выдает достаточно неплохой код Java на выходе и даже имеет функцию деобфускации кода. Работать с ним просто: запускаешь Jadx-gui, с его помощью выбираешь APK-файл приложений и видишь иерархию пакетов и файлы с исходниками на Java.

Kalibrate-RTL

Kalibrate сканирует базовые станции GSM в заданном диапазоне частот и может использовать эти базовые станции GSM для вычисления смещения частоты. В общем и целом утилита используется при перехвате GSM сигнала.

KillerBee

Инструмент (и обертка к нему) для анализа ZigBee и IEEE 802.15.4. Создан специально для этого дистрибутива.

LibMPSSE

Libmpsse – это библиотека для взаимодействия с устройствами SPI / I2C через семейство USB-чипов FTDI FT-2232. Основанный на библиотеке libftdi, он написан на C и включает оболочку Python.

Ключевые особенности libmpsse:

Liquid-DSP

liquid-dsp – это бесплатная библиотека цифровой обработки сигналов (DSP) с открытым исходным кодом, разработанная специально для SDR в IoT. Цель состоит в том, чтобы предоставить легкую библиотеку DSP, которая не полагается на множество внешних модулей, проприетарных и других громоздких фреймворков. Все элементы обработки сигналов разработаны так, чтобы быть гибкими, масштабируемыми и динамическими, включая фильтры, конструкцию фильтров, генераторы, модемы, синхронизаторы, сложные математические операции и многое, многое другое.

LTE-Cell-Scanner

Сканер мобильных LTE SDR оптимизированный для работы с высокоэнергоэффективными интерфейсами RF (8bit A/D, коэффициент шума 20dB).

NMAP

Кто не знает что такое nmap? Вон из класса.

OOK-Decoder

On-Off-Keying (OOK) – это простая схема радиомодуляции, в которой несущая включается и выключается для кодирования данных. Самый известный пример – азбука Морзе. В наше время OOK чаще используется в промышленных, научных и медицинских (ISM) радиодиапазонах (433 МГц, 900 МГц и др.) простыми телеметрическими устройствами, такими как метеостанции, дистанционные термометры, системы сигнализации и другие удаленные датчики. А равно как радиосигнализации, ворота, шлагбаумы и даже холодильники с газировкой. Этот фреймворк поможет тебе раскодировать все эти сигналы. Сечешь фишку?

Openocd

Популярная система отладки для микроконтроллеров. Open On-Chip Debugger (открытый отладчик для чипов). OpenOCD предоставляет инструментарий отладки (debugging), внутрисхемного программирования (in-system programming, ISP), внутрисхемного тестирования (boundary-scan testing) для встраиваемых систем (микроконтроллеров, FPGA и т. п.).

Qiling

Цель Qiling Framework – оптимизировать исследования в области безопасности IoT, анализа малварей и реверс-инжиниринга. Основная цель – создать кроссплатформенную и мультиархитектурную среду, а не просто инструмент для ревер-инжиниринга.

Qiling Framework содержит бинарный инструментарий и фреймворк для эмуляции, который поддерживает кроссплатформенность и мульти-архитектуру. Он обладает мощными функциями, такими как перехват кода и внедрение произвольного кода до или во время выполнения. Он также умеет патчить упакованный бинарный файл во время выполнения.

Qiling Framework имеет открытый исходный код и написан на Python, простом и широко используемом языке программирования. Это будет стимулировать постоянный вклад со стороны сообщества и открытых источников, делая Qiling Framework устойчивым проектом.

Qiling Framework – это не просто платформа эмуляции или инструмент реверс-инжиниринга, он объединяет бинарный инструментарий и бинарную эмуляцию в единую структуру. С Qiling Framework вы можете:

Qiling Framework может эмулировать:

Qiling Framework может работать поверх Windows/MacOS/Linux/FreeBSD и на любой архитектуре ЦП.

radare2

Radare2 это фреймворк для анализа бинарных файлов. Он включает в себя большое количество утилит. Изначально он развивался как шестнадцатеричный редактор для поиска и восстановления данных, затем он обрастал функционалом и на текущий момент стал мощным фреймворком для анализа данных. В этой статье я расскажу как с помощью фреймворка Radare2 произвести анализ логики работы программы, а также опишу основные элементы языка ассемблера, которые необходимы для проведения реверс инжиниринга.

Radare2 представляет собой комплект из нескольких утилит:

Основным недостатком, который препятствует распространенности фреймворка, является отсутствие качественного GUI. Имеются сторонние реализации, но сожалению они не слишком удобные. Также стоит отметить наличие встроенного веб интерфейса.

Radare2 чаще всего применяется как инструмент реверс инжиниринга, в качестве продвинутого дизассемблера. Рассматривать Radare2 мы будем именно как дизассембрер и произведем анализ простого crackme.

Введение в ассемблер

Прежде чем начинать анализ программы стоит остановиться на основных моментах, которые необходимы для понимания кода ассемблера. Описание основных инструкций ассемблера заслуживает отдельной статьи, поэтому здесь будут приведены только основные группы инструкций.

По умолчанию Radare2 использует синтаксис intel, для которого характерен следующий формат записи:

инструкция операнд ;комментарий

Основные инструкции могут иметь один или два операнда. В случае работы с двумя операндами формат записи примет следующий вид:

 инструкция операнд1, операнд2 ;комментарий

Многие инструкции, такие как and, sub, add сохраняют результат вычисления в первый операнд.

Язык ассемблера не поддерживает операции, в которых оба операнда находятся в памяти. Поэтому приходится одно или оба значения помещать в регистры, которые в дальнейшем будут использоваться в качестве операндов. Таким образом мы плавно подошли к определению регистров.

Регистры — это очень быстрые ячейки памяти, которые находятся в процессоре. Они работают гораздо быстрее оперативной памяти или кэша, но объем хранимой в них памяти очень мал. В процессоре архитектуры х86 (х86-32) имеется 8 регистров общего назначения размером 32 бита. Процессоры архитектуры amd64 (х86-64) имеют 16 регистров общего назначения размером 64 бита. Более подробная информация представлена в таблице ниже.

RFCat

Удобный фреймворк на Python для анализа различный RF устройств и помочь в реверсе радио-устройств IoT.

Интересно? Подробнее можно почитать здесь или здесь.

ROPGadget

Этот инструмент позволяет выявлять уязвимости в бинарных файлах. ROPgadget поддерживает формат ELF, PE и Mach-O на платформах x86, x64, ARM, ARM64, PowerPC, SPARC и MIPS.

ROP — метод эксплуатации уязвимостей в программном обеспечении, используя который атакующий может выполнить необходимый ему код при наличии в системе защитных технологий, например, технологии, запрещающей исполнение кода с определённых страниц памяти. Метод заключается в том, что атакующий может получить контроль над стеком вызовов, найти в коде последовательности инструкций, выполняющие нужные действия и называемые «гаджетами», выполнить «гаджеты» в нужной последовательности. «Гаджет», обычно, заканчивается инструкцией возврата и располагается в оперативной памяти в существующем коде (в коде программы или в коде разделяемой библиотеки). Атакующий добивается последовательного выполнения гаджетов с помощью инструкций возврата, составляет последовательность гаджетов так, чтобы выполнить желаемые операции. Атака реализуема даже на системах, имеющих механизмы для предотвращения более простых атак.

Подробнее можно почитать например здесь.

RouterSploit

RouterSploit — это атакующий фреймворк с открытым исходным кодом на Python, специально нацеленный на встраиваемые устройства типа роутеров.

Состоит он из трех типов модулей для пентеста:

Эксплоиты есть для оборудования от таких вендоров, как 2Wire, Asmax, ASUS, Belkin, Cisco, Comtrend, D-Link, Fortinet, Juniper, Linksys, NETGEAR, Technicolor.

Модулей сканирования сейчас два. Один для обнаружения в сети всех устройств от компании D-Link, а второй модуль для autopwn.

Модуль проверки аутентификационных данных для каждого сервиса может работать в одном из двух режимов: в режиме проверки паролей по умолчанию и в режиме перебора.

Сам интерфейс сделан в духе Metasploit, так что разобраться с RouterSploit не составит труда.

RTL-433

Утилитка позволяет снимать данные с датчиков на частоте 433Mhz с помощью тюнеров на чипе Realtek RTL2832.
Поддерживаемые датчики
[01] Silvercrest Remote Control
[02] Rubicson Temperature Sensor
[03] Prologue Temperature Sensor
[04] Waveman Switch Transmitter
[05] Steffen Switch Transmitter
[06] ELV EM 1000
[07] ELV WS 2000
[08] LaCrosse TX Temperature / Humidity Sensor
[09] Acurite 5n1 Weather Station
[10] Acurite 896 Rain Gauge
[11] Acurite Temperature and Humidity Sensor
[12] Oregon Scientific Weather Sensor
[13] Mebus 433
[14] Intertechno 433
[15] KlikAanKlikUit Wireless Switch
[16] AlectoV1 Weather Sensor
[17] Fine Offset Electronics, WH-2 Sensor

RTL-SDR tools

Инструментарий для работы с RTL-SDR.

Scapy

Scapy — инструмент создания и работы с сетевыми пакетами. Программа написана на языке python, автор Philippe Biondi. Познакомиться с основным функционалам можно здесь. Scapy — универсальный, поистине мощный инструмент для работы с сетью и проведения исследований в области информационной безопасности. 

Spiflash.py

Программатор Spiflash, написанный на Python и предназначенный для анализа FlashROM.

Ubertooth tools

Платформа для разработки беспроводных технологий (Bluetooth) с открытым исходным кодом. Ubertooth поставляется с анализатором BLE (Bluetooth Smart).

URH (Universal Radio Hacker)

Невероятно простой и понятный инструмент для анализа цифровых радиопротоколов. В отличие от монстров вроде GNU Radio, освоить его можно за пять минут, без мучений.
Главные особенности URH:

Что ещё?

Сама система представляет из себя оптимизированный образ виртуальной машины Ubuntu с уже предустановленными драйверами для практически любого железа с которым придётся взаимодействовать в ходе пентеста IoT девайсов.

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

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

Github: https://github.com/adi0x90/attifyos

Сайт проекта: https://www.attify.com/attifyos

Очень злой админ
Очень злой админ Автор статьи

Админ сайта. Публикует интересные статьи с других ресурсов, либо их переводы. Если есть настроение, бывает, что пишет и что-то своё.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *