macOS Dyld Hijacking & DYLD_INSERT_LIBRARIES
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
DYLD_INSERT_LIBRARIES Ejemplo básico
Biblioteca para inyectar para ejecutar un shell:
Binario a atacar:
Inyección:
Ejemplo de Secuestro de Dyld
El binario vulnerable objetivo es /Applications/VulnDyld.app/Contents/Resources/lib/binary
.
Con la información anterior sabemos que no está verificando la firma de las bibliotecas cargadas y está intentando cargar una biblioteca de:
/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib
/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib
Sin embargo, la primera no existe:
¡Así que es posible secuestrarlo! Crea una biblioteca que ejecute algún código arbitrario y exporte las mismas funcionalidades que la biblioteca legítima reexportándola. Y recuerda compilarla con las versiones esperadas:
Compílalo:
La ruta de reexportación creada en la biblioteca es relativa al cargador, cambiémosla por una ruta absoluta a la biblioteca para exportar:
Finalmente, simplemente cópialo a la ubicación secuestrada:
Y ejecuta el binario y verifica que la biblioteca fue cargada:
Un buen artículo sobre cómo abusar de esta vulnerabilidad para abusar de los permisos de la cámara de telegram se puede encontrar en https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/
Mayor Escala
Si planeas intentar inyectar bibliotecas en binarios inesperados, podrías revisar los mensajes de evento para averiguar cuándo se carga la biblioteca dentro de un proceso (en este caso, elimina el printf y la ejecución de /bin/bash
).
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated