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

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

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

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

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

Категории

Все категории
Loading categories
SockFuzzer — Фреймворк фаззинга ядра, управляемый покрытием, который запускает XNU как библиотеку пользовательского пространства и обнаруживает уязвимости в подсистемах BSD, Mach, виртуальной памяти и процессов. | Kitploit
Инструменты/GitHubGitHub/googleprojectzero/sockfuzzer
Динамический анализ (песочница)Безопасность iOSАнализ уязвимостейФаззингArchived
GitHubgoogleprojectzero/sockfuzzer

SockFuzzer

Фреймворк фаззинга ядра, управляемый покрытием, который запускает XNU как библиотеку пользовательского пространства и обнаруживает уязвимости в подсистемах BSD, Mach, виртуальной памяти и процессов.

Репозиторий

Популярное

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

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

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

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

Смотреть все инструменты →
45255171 год назадПроверено Kitploit
Поделиться

SockFuzzer: Фреймворк для фаззинга ядра XNU

Статус проекта

SockFuzzer, изначально задуманный как фаззер, ориентированный на сетевые функции ядра XNU (используемого в macOS и iOS), превратился в комплексный фреймворк для фаззинга ядра. Сохранив своё первоначальное название как дань уважения к истокам, SockFuzzer теперь охватывает широкий спектр подсистем ядра, включая BSD, Mach, виртуальную память и другие. Проект реализует уникальный подход, превращая ядро XNU в библиотеку, которую можно «загрузить» и фаззить в пользовательском пространстве, что позволяет эффективно обнаруживать и воспроизводить уязвимости в различных подсистемах.

Цели проекта

  1. Всесторонне тестировать ядро XNU в контролируемой среде
  2. Обнаруживать и воспроизводить уязвимости в различных подсистемах XNU
  3. Предоставить фреймворк для непрерывного фаззинга и улучшения безопасности XNU
  4. Продемонстрировать ценность применения передовых методов фаззинга в исследованиях ядра
  5. Обеспечить эффективное тестирование сложных взаимодействий и подсистем ядра

Обзор архитектуры

SockFuzzer использует архитектуру «хост/гость XNU», в которой ядро XNU компилируется как библиотека и выполняется в специальном пользовательском окружении. Эта архитектура состоит из нескольких ключевых компонентов:

  1. Среда хоста
  2. Библиотека гостя XNU
  3. Пользовательский планировщик (на основе Concurrence)
  4. Движок фаззинга (Centipede из проекта fuzztest от Google)
  5. Исполнитель тестов и тестовая обвязка (harness)

Среда хоста

Среда хоста обеспечивает основу для запуска библиотеки гостя XNU и управления процессом фаззинга. Она включает:

  • Собственные реализации основных служб ядра
  • Интерфейс гипервызовов для связи между хостом и гостем XNU
  • Исполнитель тестов и тестовую обвязку для выполнения фазз-тестов

Библиотека гостя XNU

Ядро XNU компилируется как библиотека (libxnu) с минимальными изменениями для работы в пользовательском пространстве. Ключевые аспекты включают:

  • Префиксацию и управление символами для избежания конфликтов с символами хоста
  • Выборочное раскрытие внутренних функций XNU через version script
  • Поддержку нескольких подсистем: BSD, Mach, виртуальная память, потоки, процессы и т.д.
  • Слой null pmap для поддержки виртуальной памяти (с планами поддержки ARM pmap в будущем)

Пользовательский планировщик

Основанный на улучшенном проекте Concurrence, пользовательский планировщик теперь поддерживает полные возможности многопоточности:

  • Executor: обеспечивает создание, удаление потоков и переключение контекста
  • FuzzedScheduler: управляет состояниями потоков и решениями планировщика
  • Интеграция с библиотекой гостя XNU для корректной поддержки многопоточности

Исполнитель тестов и тестовая обвязка

Исполнитель тестов и тестовая обвязка управляют выполнением фазз-тестов и обеспечивают:

  • Инициализацию среды гостя XNU
  • Выполнение фазз-входных данных в различных подсистемах
  • Обнаружение и сообщение о сбоях

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

  1. Всестороннее покрытие ядра XNU: тестирование нескольких подсистем, включая BSD, Mach, виртуальную память, потоки и процессы
  2. Выполнение XNU в пользовательском пространстве: запуск компонентов ядра XNU в контролируемом пользовательском окружении
  3. Полная поддержка многопоточности: использование улучшенного Concurrence для корректных возможностей многопоточности
  4. Поддержка виртуальной памяти: использование слоя null pmap с планами поддержки ARM pmap
  5. Фаззинг MIG: поддержка фаззинга интерфейсов Mach Interface Generator (MIG)
  6. Интерфейс гипервызовов: обеспечение связи между хостом и компонентами гостя XNU

Поддерживаемые функции

  1. BSD
  2. Mach
  3. Виртуальная память (со слоем null pmap)
  4. Потоки и процессы
  5. Сеть
  6. Сообщения Mach
  7. Интерфейсы MIG

Рабочий процесс

  1. Ядро XNU компилируется как библиотека с необходимыми изменениями
  2. Среда хоста инициализирует библиотеку гостя XNU и пользовательский планировщик
  3. Centipede генерирует структурированные входные данные с использованием protobuf-определений
  4. Тестовая обвязка выполняет входные данные, вызывая системные вызовы, сообщения Mach и другие интерфейсы ядра
  5. Пользовательский планировщик управляет выполнением потоков внутри гостя XNU
  6. ASAN отслеживает проблемы повреждения памяти
  7. Сбои и информация о покрытии собираются и анализируются

Ограничения и будущие работы

  1. Поддержка IOKit: текущая реализация не поддерживает подсистемы IOKit
  2. Фаззинг только бинарных файлов: текущий подход полагается на исходный код, который не включает все модули

Будущие работы включают:

  • Реализацию поддержки IOKit
  • Интеграцию поддержки ARM pmap для виртуальной памяти
  • Адаптацию методов для сценариев фаззинга только бинарных файлов
  • Продолжение расширения покрытия и поддержки подсистем XNU

Ограничения публичного выпуска

Для поддержания аккуратной структуры этого репозитория пользователям необходимо самостоятельно добавить несколько зависимостей в third_party, таких как xnu, bootstrap_cmds и некоторые другие библиотеки.

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