
Herramienta de caja negra para deshabilitar la validación de certificados SSL, incluido el anclaje de certificados (certificate pinning), dentro de aplicaciones iOS y macOS.
Herramienta de caja negra para deshabilitar la validación de certificados SSL/TLS - incluido el anclaje de certificados (certificate pinning) - dentro de aplicaciones iOS y macOS. Segunda iteración de https://github.com/iSECPartners/ios-ssl-kill-switch .
Una vez cargada en una aplicación iOS o macOS, SSL Kill Switch 2 parchea las funciones de bajo nivel responsables de gestionar las conexiones SSL/TLS con el fin de anular y deshabilitar la validación de certificados predeterminada del sistema, así como cualquier tipo de validación de certificados personalizada (como el anclaje de certificados).
Se probó con éxito contra varias aplicaciones que implementan anclaje de certificados, incluida la Apple App Store. La primera versión de SSL Kill Switch se publicó en Black Hat Vegas 2012.
La versión de iOS más reciente que se sabe que es compatible es la 14.2.
En iOS, SSL Kill Switch 2 se puede instalar como un tweak de Cydia Substrate en un dispositivo con jailbreak.
Instalar SSL Kill Switch 2 permite que cualquiera en la misma red que el dispositivo realice fácilmente ataques de hombre en el medio contra cualquier conexión SSL o HTTPS. Esto significa que es trivial obtener acceso a correos electrónicos, sitios web visitados en Safari y cualquier otro dato descargado por cualquier aplicación que se ejecute en el dispositivo.
Las siguientes dependencias deben instalarse usando Cydia:
Luego, descarga el último paquete precompilado disponible en la pestaña de lanzamientos (release) de la página de GitHub de SSL Kill Switch 2. Cópialo al dispositivo, instálalo y haz respring al dispositivo:
dpkg -i <paquete>.deb
killall -HUP SpringBoard
Debería aparecer un nuevo menú en los Ajustes (Settings) del dispositivo donde puedes activar la extensión. Finalmente, mata y reinicia la aplicación que quieras probar.
El tweak se puede desinstalar posteriormente usando:
dpkg -r com.nablac0d3.SSLKillSwitch2
Mucha gente ha preguntado cómo interceptar el tráfico de la App Store usando SSL Kill Switch 2. Escribí algunas instrucciones aquí pero ya están desactualizadas: http://nabla-c0d3.github.io/blog/2013/08/20/intercepting-the-app-stores-traffic-on-ios/
Por defecto, SSL Kill Switch interrumpirá la aplicación iOS de Charles Proxy y no podrás hacer proxy de ningún tráfico de red con ella. Para solucionarlo, añade la aplicación Charles Proxy (com.xk72.Charles) a la lista de IDs de paquete excluidos en la configuración de SSL Kill Switch:

La compilación requiere que la suite Theos esté instalada y disponible en http://www.iphonedevwiki.net/index.php/Theos/Getting_Started .
Luego, dentro de la carpeta raíz de SSL Kill Switch 2, crea un enlace simbólico a tu instalación de theos:
ln -s /<ruta_a_tu_carpeta_theos> theos
Asegúrate de que dpkg esté instalado. Si tienes Homebrew, usa:
brew install dpkg
Luego, el paquete Debian de SSL Kill Switch 2 se puede compilar usando:
make package
SSL Kill Switch 2 se puede usar en aplicaciones macOS como una librería dinámica que se inyecta en procesos.
En macOS, la librería SSLKillSwitch debe inyectarse manualmente en el proceso donde se necesite deshabilitar el anclaje SSL. Una vez inyectada, anulará y deshabilitará automáticamente la validación SSL.
Hay varias formas de hacer esto, incluyendo:
Iniciar el proceso con LLDB o en Xcode Debug->Attach to process, luego pausar, y cargar SSLKillSwitch usando dlopen():
(lldb) expr (void*)dlopen("/path/to/build/SSLKillSwitch.framework/Versions/A/SSLKillSwitch", 1)
El resultado esperado es un puntero distinto de cero:
(void *) $1 = 0x00007f92e74d10c0
Si recibes un puntero a cero, es posible que necesites habilitar la firma de código (code-signing) y compilar para perfilado (profiling), luego usar el binario en la carpeta release, e incluso puede que tengas que copiar el binario a la carpeta de recursos de la aplicación. En ese caso habrías visto una violación de lectura de sandbox en la consola. Para probar una nueva versión del binario, necesitas matar la aplicación y cargarlo de nuevo.
Usando DYLD_INSERT_LIBRARIES para inyectar SSLKillSwitch e iniciar el proceso.
TBD
Usa el proyecto Xcode para compilar SSL Kill Switch 2 para macOS. La librería compilada estará entonces disponible en Products/SSLKillSwitch.framework/Versions/A/SSLKillSwitch. Este es el binario que necesitas inyectar en el proceso donde quieras deshabilitar el anclaje SSL.
MIT - Ver ./LICENSE.
Alban Diquet - @nabla_c0d3