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
iomfb-exploit — Exploit de kernel de iOS 14 para CVE-2021-30807 dirigido a IOMobileFramebuffer, con asignación de memoria ajustable para el desarrollo de jailbreak en dispositivos A11+. | Kitploit
Herramientas/GitHubGitHub/jsherman212/iomfb-exploit
Seguridad iOSForensia de MemoriaAnálisis de VulnerabilidadesExplotaciónSeguridad MóvilExplotación de Binarios
GitHubjsherman212/iomfb-exploit

iomfb-exploit

Exploit de kernel de iOS 14 para CVE-2021-30807 dirigido a IOMobileFramebuffer, con asignación de memoria ajustable para el desarrollo de jailbreak en dispositivos A11+.

Ver Repositorio
1333015hace 4 añosRevisado por Kitploit

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

El informe está aquí: https://jsherman212.github.io/2021/11/28/popping_ios14_with_iomfb.html

Exploit para CVE-2021-30807. Si realmente quieres construir un jailbreak a partir de él, requerirá ajustes para tu dispositivo y versión de iOS porque no tengo una fuga de información que usar para esto.

Para ajustar para A11 y anteriores, usa pongo para cargar xnuspy y compila con SAMPLING_MEMORY=1 make -B. Esto habilitará una prueba que recopila la memoria devuelta por kernel_memory_allocate, ordena esos punteros, y luego escupe un rango. Verás algo como esto:

root@kitploit:~
sample_kernel_map: 0xffffffe8ebe9c000 [0x10000 bytes from behind]
sample_kernel_map: to add to alloc_averager:
[0xffffffe8ce934000, 0xffffffe8ebf98000],

(solo ignora las advertencias que escupe)

La prueba está diseñada para ejecutarse 30 segundos después de que el dispositivo arranque.

Dentro de alloc_averager.py hay un par de muestras que ya ejecuté para mis teléfonos. Toma el promedio de todos los promedios de cada rango. Crea una "lista de muestras" para tu dispositivo y agrega el rango a ella. Repite la prueba un par de veces hasta que tengas de 5 a 10 entradas en esa lista. alloc_averager.py reportará una tasa de éxito para la estimación que genera basándose en la lista. Si te gusta la tasa de éxito, toma la estimación y reemplaza el valor de GUESSED_OSDATA_BUFFER_PTR al inicio de con ella.

IOMobileFramebufferUserClient.c

Es muy importante no incluir valores atípicos en esta lista. Después de ejecutar la prueba un par de veces, probablemente te encontrarás con un rango que se diferencie del resto de los rangos que ya tienes.

Necesitarás encontrar offsets para tu dispositivo/versión para ejecutar esta prueba.

Primero, para encontrar kernel_memory_allocate, simplemente haz xref a kernel_memory_allocate: VM is not ready. Cuando tengas el offset, establece el valor de kma dentro de install_kernel_memory_alloc_hook.

Segundo, para aislar la prueba de las otras asignaciones que hace XNU, pruebo una dirección de retorno específica. Esa dirección está dentro de OSData::initWithCapacity. Puedes encontrar fácilmente la vtable de OSData haciendo xref a la cadena "OSData". La primera xref a esa cadena estará en una función que tiene una xref a la vtable de OSData::MetaClass. Justo encima de esa vtable está la vtable de OSData, y OSData::initWithCapacity está en +0x78.

Una vez que tengas OSData::initWithCapacity, encuentra el único BL a kernel_memory_allocate y toma el offset de la instrucción justo debajo de él. Dentro de kernel_hooks.c, usa ese offset en la única sentencia if de la única función en ese archivo.

A12+ necesitará usar algo como Correlium.

Descargar herramienta