Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

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

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/cakescats/airborn-ios-cve-2025-24252
Безопасность iOSАнализ уязвимостейФорензикаМобильная криминалистикаЦифровая криминалистикаОбучение и ОбразованиеРеагирование на ИнцидентыАнализ Журналов

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
GitHub
cakescats/airborn-ios-cve-2025-24252

airborn-IOS-CVE-2025-24252

Экстрактор артефактов журналов уязвимости Airborne в iOS из LogArchive CVE-2025-24252

Репозиторий
3221 год назадЕщё не проверено
Поделиться

Уязвимости "Airborne" в iOS — Извлечение артефактов из журналов

Этот скрипт предназначен для помощи в выявлении потенциальных следов набора уязвимостей "Airborne" (в первую очередь затрагивающих протокол AirPlay от Apple) путем анализа системных журналов iOS из пакета .logarchive. Он автоматизирует выполнение нескольких команд log show, настроенных на поиск аномалий, которые могут быть связаны с этими уязвимостями.

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

Об авторе и проекте

Этот скрипт разработан Антоном Шустиковым ([email protected], сейчас — генеральный директор CakesCats) в рамках проекта CakesCats.

CakesCats — это инициатива, направленная на:

  • Образование в области информационной безопасности: сделать концепции кибербезопасности более доступными и понятными.
  • Поддержку: предоставление бесплатной поддержки активистам и лицам, оказавшимся в сложных ситуациях, связанных с цифровой безопасностью.
  • Простые и понятные продукты: создание простых инструментов и ресурсов для цифровой безопасности и защиты.

Антон Шустиков — консультант по информационной безопасности и финтеху с большим опытом создания систем безопасности. Он является основателем некоммерческого образовательного проекта CakesCats и публикует статьи в таких изданиях, как Forbes и журнал «Хакер». Его работа часто связана с исследованием цифровых угроз и продвижением цифровой гигиены.

Об уязвимостях "Airborne"

"Airborne" — это название, данное набору уязвимостей (обнаруженных Oligo Security в ходе их оригинального исследования), затрагивающих протокол AirPlay от Apple и комплект разработки программного обеспечения (SDK) AirPlay. Эти уязвимости могут затронуть широкий спектр устройств Apple (iPhone, iPad, Mac, Apple TV и т.д.), а также сторонние устройства, использующие AirPlay SDK (например, умные колонки, ресиверы).

Ключевые аспекты уязвимостей типа "Airborne":

  • Контекст обнаружения: Оригинальное исследование "Airborne" было опубликовано Oligo Security (Подробнее: https://www.oligo.security/blog/airborne). Этот скрипт предназначен для поиска общих криминалистических артефактов, которые могут быть связаны с подобными уязвимостями.
  • Затрагиваемые протоколы/компоненты: В первую очередь Apple AirPlay, а также связанные службы, такие как Bonjour (mDNS) и rapportd, который отвечает за связь между устройствами.
  • Потенциальное воздействие: Удаленное выполнение кода (RCE) (включая zero-click и потенциально самораспространяющиеся варианты), отказ в обслуживании (DoS), обход списка контроля доступа (ACL), раскрытие информации и атаки типа "человек посередине" (MITM).
  • CVE (контекстуальные примеры): Хотя конкретные номера CVE меняются с каждым новым обнаружением, класс уязвимостей "Airborne" нацелен на недостатки в том, как AirPlay и связанные сетевые службы обрабатывают данные, сопряжение или соединения. Например, в предыдущих гипотетических обсуждениях этого инструмента рассматривались такие CVE, как CVE-2025-24252 (связанные с проблемами mDNS) или CVE-2025-24132 (связанные с переполнением буфера в AirPlay SDK). Пользователям всегда следует обращаться к конкретным деталям CVE и рекомендациям вендоров по расследуемым ими уязвимостям.
  • Затрагиваемые версии ОС (общие рекомендации): Как правило, версии iOS, iPadOS, macOS, tvOS и сторонних AirPlay SDK, выпущенные до исправлений, опубликованных Apple и соответствующими вендорами в ответ на конкретные раскрытия уязвимостей. Всегда обращайтесь к официальным обновлениям безопасности Apple и рекомендациям вендоров для получения информации об исправленных версиях.

Как работает этот инструмент

Этот скрипт выполняет серию команд log show, используя тщательно составленные предикаты. Эти предикаты предназначены для фильтрации огромного объема информации в системных журналах iOS с целью выявления потенциальных индикаторов компрометации или аномальной активности, которая может быть связана с уязвимостями типа "Airborne".

Скрипт ищет:

  • Сбои или ошибки в критически важных системных процессах, участвующих в AirPlay, потоковой передаче мультимедиа, обнаружении сети и связи между устройствами (например, mediaserverd, AirPlayXPCHelper, rapportd, mDNSResponder).
  • Ошибки, регистрируемые конкретно подсистемой AirPlay или службами Bonjour/mDNS.
  • Аномальные события сетевых подключений (например, неожиданные сбросы соединений, сбои подключения), сообщаемые соответствующими процессами.
  • Панику ядра, которая может указывать на серьезную нестабильность системы, потенциально вызванную эксплойтом.
  • Подозрительную активность, связанную с профилями конфигурации (как общий вектор пост-эксплуатации).
  • Сообщения о нарушении песочницы (sandbox), которые могут указывать на попытку эксплойта выйти за пределы ограниченной среды.

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

Предварительные требования

  1. Среда macOS: Утилита log show и этот скрипт предназначены для запуска на macOS.
  2. Архив журналов iOS (.logarchive): Вам понадобится архив системных журналов iOS (пакет, который технически является каталогом) с устройства, которое вы собираетесь анализировать. Обычно его можно получить через:
    • Xcode: Подключите устройство iOS к Mac, откройте Xcode, перейдите в Window -> Devices and Simulators, выберите свое устройство, затем нажмите "View Device Logs" и "Export".
    • sysdiagnose: Запустите sysdiagnose на iPhone (обычно одновременным нажатием кнопок увеличения громкости + уменьшения громкости + боковой кнопки, но комбинации могут различаться в зависимости от модели и версии iOS). После того как sysdiagnose будет создан (это может занять несколько минут), его можно отправить через AirDrop на Mac или получить при синхронизации iPhone с Mac (часто находится в Finder в месте синхронизации iPhone внутри файла .tar.gz). .logarchive будет находиться в извлеченном содержимом sysdiagnose.
  3. Оболочка Bash: Скрипт написан для bash.

Установка и запуск

  1. Сохраните скрипт: Сохраните код скрипта (приведенный выше) как airborne_artifact_extractor.sh (или под любым другим именем с расширением .sh).

  2. Сделайте его исполняемым: Откройте приложение Terminal, перейдите в каталог, где вы сохранили скрипт, и выполните следующую команду:

    root@kitploit:~
    chmod +x airborne_artifact_extractor.sh
    
  3. Проверьте атрибут карантина macOS (важно для загруженных скриптов): Если вы загрузили этот скрипт из интернета, macOS может поместить его в карантин, что может помешать его корректной работе или запуску вообще.

    • Чтобы проверить, установлен ли атрибут карантина, выполните:
      root@kitploit:~
      xattr airborne_artifact_extractor.sh
      
    • Если в выводе есть com.apple.quarantine, удалите этот атрибут, выполнив:
      root@kitploit:~
      xattr -d com.apple.quarantine airborne_artifact_extractor.sh
      

    Если у вас по-прежнему возникают проблемы с запуском скрипта, особенно если он находится в таком каталоге, как ~/Downloads, убедитесь, что ваше приложение Terminal имеет необходимые разрешения (например, "Полный доступ к диску" в System Settings -> Privacy & Security) для доступа к расположению скрипта и архиву журналов.

Устранение неполадок при запуске

Ошибки "Bad Interpreter" или ^M (например, /bin/bash^M: bad interpreter: No such file or directory)

Если при попытке выполнить скрипт вы столкнулись с ошибкой вида bash: ./your_script_name.sh: /bin/bash^M: bad interpreter: No such file or directory, /usr/bin/env: ‘bash\r’: No such file or directory или аналогичными сообщениями, содержащими символы \r или ^M, скорее всего, это связано с переводами строк в стиле Windows (CRLF — Carriage Return Line Feed) вместо переводов строк в стиле Unix (LF — Line Feed).

Это обычно происходит, если файл скрипта был создан или отредактирован в системе Windows, а затем перенесен на macOS или Linux без преобразования переводов строк. Системы Unix ожидают только LF в качестве завершителя строк, и лишний символ CR (\r или ^M) интерпретируется как часть пути к интерпретатору или командам.

Решение: преобразование переводов строк с помощью dos2unix

Самый простой способ исправить это — использовать утилиту dos2unix.

  1. Установите dos2unix:

    • На macOS (с помощью Homebrew): Если у вас нет Homebrew, сначала установите его с brew.sh. Затем выполните:

      root@kitploit:~
      brew install dos2unix
      
    • В дистрибутивах Linux на основе Debian/Ubuntu:

      root@kitploit:~
      sudo apt update
      sudo apt install dos2unix
      
    • В дистрибутивах Linux на основе Fedora/RHEL:

      root@kitploit:~
      sudo dnf install dos2unix # (или yum для более старых версий)
      
  2. Преобразуйте файл скрипта: Перейдите в каталог, содержащий airborne_artifact_extractor.sh, и выполните:

    root@kitploit:~
    dos2unix airborne_artifact_extractor.sh
    

    Эта команда преобразует переводы строк на месте.

Альтернативные решения (если dos2unix недоступен/нежелателен):

  • С помощью sed:

    root@kitploit:~
    sed -i.bak 's/\r$//' airborne_artifact_extractor.sh
    

    (Эта команда изменяет файл на месте и создает резервную копию airborne_artifact_extractor.sh.bak. В некоторых версиях sed, особенно на macOS, параметр -i требует указания расширения для резервной копии, например -i '.bak' или -i '' для создания резервной копии без расширения, если это поддерживается. Для macOS может потребоваться sed -i '' 's/\r//g' airborne_artifact_extractor.sh)

  • С помощью tr:

    root@kitploit:~
    tr -d '\r' < airborne_artifact_extractor.sh > airborne_artifact_extractor_unix.sh
    chmod +x airborne_artifact_extractor_unix.sh
    # Затем используйте airborne_artifact_extractor_unix.sh
    
  • Текстовые редакторы: Большинство современных текстовых редакторов (таких как VS Code, Sublime Text, Atom, Notepad++) позволяют изменять переводы строк. Откройте файл скрипта, найдите настройку перевода строк (обычно в строке состояния или в меню File/Edit) и измените ее с "CRLF" или "Windows" на "LF" или "Unix". Затем сохраните файл заново.

После преобразования переводов строк попробуйте запустить скрипт снова. Не забудьте также убедиться, что у него есть права на выполнение (chmod +x airborne_artifact_extractor.sh).

Использование

Запустите скрипт из терминала, указав путь к пакету .logarchive и необязательные параметры временного диапазона:

root@kitploit:~
./airborne_artifact_extractor.sh /path/to/your/iphone_logs.logarchive [time_range_parameters]

Аргументы:

root@kitploit:~
R1 (обязательный): Полный или относительный путь к файлу/пакету .logarchive.
[time_range_parameters] (необязательный): Стандартные параметры временного диапазона log show. Если они не указаны, скрипт по умолчанию будет анализировать журналы за --last 7d (последние 7 дней).
    Примеры:
        --last 24h (за последние 24 часа)
        --last 3d (за последние 3 дня)
        --start "ГГГГ-ММ-ДД ЧЧ:ММ:СС" --end "ГГГГ-ММ-ДД ЧЧ:ММ:СС" (для конкретного временного диапазона). Важно: строка даты и времени должна быть заключена в кавычки.

Настройка часового пояса: Скрипт включает настройки часового пояса в верхней части, которые вы можете изменить:

root@kitploit:~
TZ_SETTING: Определяет часовой пояс, используемый для интерпретации передаваемых вами аргументов --start и --end. Например, если задано значение "Etc/GMT-7" (что соответствует UTC+7), и вы используете --start "2025-04-10 00:00:00", это будет рассматриваться как полночь 10 апреля в часовом поясе UTC+7. Если вы хотите, чтобы скрипт использовал текущий локальный часовой пояс вашего Mac для этих аргументов, вы можете задать TZ_SETTING="" или закомментировать эту строку.
TIMEZONE_DISPLAY: Указывает часовой пояс для форматирования временных меток в выходных файлах журналов с помощью опции log show --timezone. Пример: "Asia/Bangkok" для UTC+7. Выберите имя часового пояса, распознаваемое вашей системой.

Примеры команд:

root@kitploit:~
Анализ журналов за последние 7 дней (поведение по умолчанию):
Bash

./airborne_artifact_extractor.sh /Volumes/ExternalHD/iOS_Logs/iPhone13_archive.logarchive

Анализ журналов за последние 48 часов: Bash

./airborne_artifact_extractor.sh ./My_iPhone_Sysdiagnose.logarchive --last 48h

Анализ журналов за конкретный диапазон дат и времени (время будет интерпретироваться в соответствии с TZ_SETTING): Bash

root@kitploit:~
./airborne_artifact_extractor.sh ../Log_Archives/device_XYZ.logarchive --start "2025-04-05 00:00:00" --end "2025-04-06 23:59:59"

Выходные файлы

Скрипт создаст новый каталог с именем airborne_traces_YYYYMMDD_HHMMSS (где YYYYMMDD_HHMMSS — текущие дата и время) в том же каталоге, где находится скрипт (или в вашем текущем рабочем каталоге, если каталог скрипта недоступен для записи). Внутри этой папки вы найдете несколько файлов .txt, каждый из которых содержит результат выполнения конкретного запроса. Имена файлов имеют числовые префиксы для упорядочивания:

root@kitploit:~
01_critical_process_errors.txt: Сбои и ошибки критически важных процессов.
02_process_termination_exceptions.txt: Неожиданные завершения или исключения в ключевых процессах.
03_kernel_panics.txt: События паники ядра.
04_airplay_subsystem_errors.txt: Ошибки и сбои в подсистеме AirPlay.
05_mdns_errors.txt: Ошибки и сбои в mDNSResponder (Bonjour).
06_airplay_pairing_auth_failures.txt: Проблемы с сопряжением, аутентификацией или подключениями AirPlay/rapportd.
07_network_connection_errors.txt: Ошибки сетевых подключений в соответствующих процессах.
08_networkd_errors.txt: Ошибки в системной службе networkd.
09_sandbox_violations.txt: Сообщения, связанные с нарушениями песочницы (sandbox).
10_profile_activity.txt: Активность, связанная с профилями конфигурации.

Интерпретация результатов

root@kitploit:~
Пустые файлы — это нормально: Пустой выходной файл означает, что ни одна запись журнала не соответствовала критериям данного конкретного запроса за указанный временной диапазон. Во многих случаях это хороший признак, указывающий на отсутствие этих конкретных подозрительных индикаторов.
Сосредоточьтесь на закономерностях и корреляциях: Единичное изолированное сообщение об ошибке часто не является признаком компрометации. Ищите скопления ошибок, подозрительные последовательности событий в разных файлах журналов или ошибки, коррелирующие со временем, когда вы наблюдали необычное поведение устройства или использовали потенциально уязвимые службы, такие как AirPlay.
ECONNRESET в журналах rapportd (часто в 06_... или 07_...): Указывают на внезапное завершение TCP-соединений. Хотя они могут быть вызваны безобидными проблемами сети (плохой Wi-Fi, проблемы с маршрутизатором), в контексте расследования уязвимостей "Airborne" они заслуживают более пристального внимания. Они могут указывать на нестабильность, вызванную попыткой эксплойта на вашем устройстве или устройстве собеседника, или на сетевые помехи.
Сбои (типы fault или panic) в mediaserverd, AirPlayXPCHelper (часто в 01_..., 02_...) или паника ядра (03_...) обычно являются сильными индикаторами нестабильности системы, которая может быть связана с эксплойтом, если они происходят неожиданно или во время сетевых взаимодействий, на которые нацелен "Airborne".
Контекст имеет решающее значение: Всегда анализируйте результаты журналов с учетом ваших знаний о том, как устройство использовалось в то время, в какой сетевой среде оно находилось, и любых фактических симптомов, которые вы наблюдали.

Вклад в проект

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

Скачать инструмент