Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
SockFuzzer — Framework de fuzzing de kernel guiado por cobertura que ejecuta XNU como una biblioteca de espacio de usuario y descubre vulnerabilidades en los subsistemas BSD, Mach, memoria virtual y de procesos. | Kitploit
Herramientas/GitHubGitHub/googleprojectzero/sockfuzzer
Análisis Dinámico (Sandboxing)Seguridad iOSAnálisis de VulnerabilidadesFuzzingArchived
GitHubgoogleprojectzero/sockfuzzer

SockFuzzer

Framework de fuzzing de kernel guiado por cobertura que ejecuta XNU como una biblioteca de espacio de usuario y descubre vulnerabilidades en los subsistemas BSD, Mach, memoria virtual y de procesos.

Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
45255hace 1 añoRevisado por Kitploit

SockFuzzer: Marco de Fuzzing del Kernel XNU

Estado del Proyecto

SockFuzzer, diseñado originalmente como un fuzzer centrado en redes para el kernel XNU (utilizado en macOS e iOS), ha evolucionado hasta convertirse en un marco integral de fuzzing del kernel. Aunque conserva su nombre original como guiño a sus orígenes, SockFuzzer ahora cubre una amplia gama de subsistemas del kernel, incluidos BSD, Mach, memoria virtual y más. El proyecto implementa un enfoque único al convertir el kernel XNU en una biblioteca que puede "arrancarse" y someterse a fuzzing en el espacio de usuario, lo que permite el descubrimiento y la reproducción eficiente de vulnerabilidades en múltiples subsistemas.

Objetivos del Proyecto

  1. Probar de forma exhaustiva el kernel XNU en un entorno controlado
  2. Descubrir y reproducir vulnerabilidades en diversos subsistemas de XNU
  3. Proporcionar un marco para el fuzzing continuo y la mejora de la seguridad de XNU
  4. Demostrar el valor de implementar técnicas avanzadas de fuzzing en la investigación del kernel
  5. Permitir la prueba eficiente de interacciones y subsistemas complejos del kernel

Descripción General de la Arquitectura

SockFuzzer emplea un diseño de anfitrión/"invitado XNU", en el que el kernel XNU se compila como una biblioteca y se ejecuta dentro de un entorno personalizado en el espacio de usuario. Esta arquitectura consta de varios componentes clave:

  1. Entorno anfitrión
  2. Biblioteca invitada de XNU
  3. Planificador personalizado (basado en Concurrence)
  4. Motor de fuzzing (Centipede del proyecto fuzztest de Google)
  5. Ejecutor de pruebas y arnés

Entorno Anfitrión

El entorno anfitrión proporciona la base para ejecutar la biblioteca invitada de XNU y gestionar el proceso de fuzzing. Incluye:

  • Implementaciones personalizadas de los servicios principales del kernel
  • Interfaz de hiperllamada para la comunicación entre el anfitrión y el invitado XNU
  • Ejecutor de pruebas y arnés para ejecutar pruebas de fuzzing

Biblioteca Invitada de XNU

El kernel XNU se compila como una biblioteca (libxnu) con modificaciones mínimas para ejecutarse en el espacio de usuario. Los aspectos clave incluyen:

  • Prefijado y gestión de símbolos para evitar conflictos con los símbolos del anfitrión
  • Exposición selectiva de funciones internas de XNU mediante un script de versiones
  • Soporte para múltiples subsistemas: BSD, Mach, memoria virtual, hilos, procesos, etc.
  • Capa pmap nula para el soporte de memoria virtual (con planes de admitir ARM pmap en el futuro)

Planificador Personalizado

Basado en el proyecto Concurrence mejorado, el planificador personalizado ahora admite capacidades completas de subprocesos:

  • Executor: proporciona la creación, eliminación y el cambio de contexto de hilos
  • FuzzedScheduler: gestiona los estados de los hilos y las decisiones de planificación
  • Integración con la biblioteca invitada de XNU para un soporte adecuado de multihilo

Ejecutor de Pruebas y Arnés

El ejecutor de pruebas y el arnés gestionan la ejecución de las pruebas de fuzzing y proporcionan:

  • Inicialización del entorno invitado de XNU
  • Ejecución de entradas de fuzzing en varios subsistemas
  • Detección y notificación de fallos

Características Principales

  1. Cobertura integral del kernel XNU: probar múltiples subsistemas, incluidos BSD, Mach, memoria virtual, hilos y procesos
  2. Ejecución de XNU en el espacio de usuario: ejecutar componentes del kernel XNU en un entorno controlado de espacio de usuario
  3. Soporte completo de subprocesos: aprovechar el Concurrence mejorado para capacidades multihilo adecuadas
  4. Soporte de memoria virtual: utilizar una capa pmap nula con planes de soporte para ARM pmap
  5. Fuzzing de MIG: soporte para el fuzzing de interfaces del Generador de Interfaces de Mach (MIG)
  6. Interfaz de hiperllamada: facilitar la comunicación entre el anfitrión y los componentes invitados de XNU

Características Soportadas

  1. BSD
  2. Mach
  3. Memoria virtual (con capa pmap nula)
  4. Hilos y procesos
  5. Redes
  6. Mensajes de Mach
  7. Interfaces de MIG

Flujo de Trabajo

  1. El kernel XNU se compila como una biblioteca con las modificaciones necesarias
  2. El entorno anfitrión inicializa la biblioteca invitada de XNU y el planificador personalizado
  3. Centipede genera entradas estructuradas utilizando definiciones de protobuf
  4. El arnés de pruebas ejecuta las entradas, invocando syscalls, mensajes de Mach y otras interfaces del kernel
  5. El planificador personalizado gestiona la ejecución de hilos dentro del invitado XNU
  6. ASAN supervisa los problemas de corrupción de memoria
  7. Se recopilan y analizan los fallos y la información de cobertura

Limitaciones y Trabajo Futuro

  1. Soporte de IOKit: la implementación actual no admite los subsistemas de IOKit
  2. Fuzzing solo binario: el enfoque actual se basa en el código fuente, que no incluye todos los módulos

El trabajo futuro incluye:

  • Implementar el soporte de IOKit
  • Integrar el soporte de ARM pmap para la memoria virtual
  • Adaptar técnicas para escenarios de fuzzing solo binario
  • Continuar ampliando la cobertura y el soporte de los subsistemas de XNU

Limitaciones de la Publicación Pública

Para mantener este repositorio bien factorizado, los usuarios deberán añadir por su cuenta varias dependencias a third_party, como xnu, bootstrap_cmds y algunas otras bibliotecas.

Descargar herramienta