22-Jailbreak y OpenSSH

Este artículo le presentará el proceso de jailbreak de iOS y los principios de OpenSSH. Veamos cómo usar OpenSSH para conectar y depurar el teléfono después del jailbreak.

Jailbreak: a través de la vulnerabilidad de la cadena de arranque de seguridad del sistema iOS, se desactiva el componente responsable de la verificación en la cadena de confianza y se obtiene la autoridad máxima del sistema iOS: la autoridad de root.

Entonces, ¿qué es una cadena de arranque segura? ?

¿Todo el proceso anterior se muestra a continuación?

Por lo tanto, el principio de funcionamiento del jailbreak es atacar esta cadena de confianza. Todos los desarrolladores de herramientas de jailbreak deben encontrar lagunas en esta cadena de confianza y desactivar los componentes responsables de la verificación en la cadena de confianza. Obtenga los permisos máximos del sistema iOS, permisos de root.

Dependiendo de la situación del jailbreak, ¿se puede dividir en los siguientes dos tipos de jailbreak?

¿Cuáles son las dos herramientas de jailbreak más confiables en la actualidad?

A continuación, veamos ¿Qué es OpenSSH?

OpenSSH es una implementación gratuita y de código abierto del protocolo SSH (Secure SHell). El protocolo SSH se puede utilizar para control remoto o para transferir archivos entre computadoras.

¿El proceso de iniciar sesión en un iPhone desde una computadora Mac es como se muestra en la siguiente figura?

¿Dónde se almacena la clave pública en la Mac?

Todas las claves públicas se almacenan aquí. ¿Podemos encontrar la dirección IP del dispositivo móvil y la clave pública correspondiente?

Lo que significa lo anterior es que el cliente no tiene una clave pública y se considera que inicia sesión por primera vez. Envía la clave pública del teléfono móvil al ordenador Mac, junto con la huella digital SHA256 de la clave RSA, introduce sí y deja que continúe el proceso posterior.

Man-in-the-middle: Por ejemplo, un hacker WiFi conecta un teléfono móvil y una computadora. Un ataque de hombre en el medio se llama ataque Man-in-the-middle. ¿El proceso es el que se muestra a continuación?

Entonces, ¿cómo prevenir los ataques de intermediario? ?

Para evitar ataques de intermediario, SSH no solo devolverá la clave pública al iniciar sesión por primera vez, sino que también proporcionará la huella digital SHA256 de la clave.

¿El papel de la huella digital? Las huellas digitales válidas generadas por el servidor se publicarán en el sitio web. Cuando un usuario inicia sesión por primera vez, puede verificar manualmente la validez de la huella digital. Si la huella digital devuelta no coincide con la huella digital publicada, se puede producir una falsificación por parte de un intermediario y el comportamiento de inicio de sesión finalizará inmediatamente.

De esta forma podremos habilitar el servicio de inicio de sesión SSH en el teléfono móvil.

Como se mencionó anteriormente, el mensaje anterior aparecerá cuando inicie sesión por primera vez.

Si no aparece ningún mensaje de ingreso de contraseña, ignore la advertencia e intente iniciar sesión nuevamente

Ingrese la contraseña predeterminada alpine

Inicie sesión exitosamente en el dispositivo móvil y estar en el dispositivo en el directorio raíz.

A continuación, echemos un vistazo al proceso de inicio de sesión sin contraseña.

El inicio de sesión sin contraseña también se denomina inicio de sesión con clave pública. ¿El principio es el siguiente?

En este momento, se permite iniciar sesión directamente sin requerir una contraseña.

Como ingeniería inversa, usaré dos teléfonos móviles: jailbreak perfecto y jailbreak no perfecto. Al reemplazar un dispositivo, el proceso de cambio de inicio de sesión sigue siendo problemático. En este momento, debe proporcionar un alias SSH al dispositivo.

Anteriormente, usábamos WiFi para iniciar sesión a través de IP y número de puerto. De hecho, también podemos conectar el teléfono móvil a la computadora Mac mediante un cable USB e iniciar sesión usando USB. al teléfono móvil, cuando se utilizan algunos comandos, se produce tartamudeo.

En los ordenadores Mac, las conexiones USB son compatibles de forma predeterminada. Por ejemplo: el inicio de sesión SSH de depuración USB utilizado en Xcode utiliza el puerto 22 de forma predeterminada.

Para conexiones USB, ¿necesita utilizar el servicio usbmuxd? Se utiliza principalmente para implementar múltiples conexiones TCP en el protocolo USB. ¿Dónde está la computadora Mac donde se encuentra usbmuxd?

Asigne el puerto local 12345 al puerto 22 del dispositivo TCP. Esto establecerá una conexión a través del puerto local 12345.

SSH se conecta al puerto local 12345. Debido al mapeo de puertos, se conectará al puerto 22 del dispositivo a través de USB.

¡En este momento, has iniciado sesión exitosamente en tu dispositivo móvil! ?

¿La advertencia? aparece arriba porque la clave pública devuelta por el servidor ha cambiado debido al reemplazo del dispositivo, pero todas las direcciones IP conectadas son localhost. Cuando la clave pública de la misma dirección IP cambia, el cliente dará una advertencia de un posible ataque de intermediario e impedirá el inicio de sesión.

¿Qué hacer? ¿Dos formas?

Obviamente es problemático eliminar cada vez que cambias, por lo que se recomienda la segunda forma.

Ingrese la contraseña predeterminada de Alpine e inicie sesión en el dispositivo exitosamente.

Las operaciones anteriores, como conectarse al dispositivo e iniciar sesión, requieren la entrada manual de instrucciones una por una, lo cual es bastante problemático, para evitar problemas, se recomienda utilizar un script.

Para conectar un dispositivo USB, además de utilizar scripts Python, también puedes utilizar el comando iproxy.

¡Conexión USB exitosa! ?

Cuando hay un problema con un dispositivo liberado, si selecciona "Restaurar todas las configuraciones" en "Restauración general" del dispositivo, aparecerán fácilmente manzanas blancas. El enfoque correcto es limpiar primero el entorno de jailbreak del dispositivo y luego actualizar el dispositivo.

Utilice la herramienta uncOver para hacer jailbreak, y es fácil limpiar el entorno de jailbreak en la configuración.

Pero si es un dispositivo con un sistema antiguo y se utilizan otras herramientas para hacerle jailbreak, será muy difícil limpiar el entorno de jailbreak.

En este caso, el método para limpiar el entorno de jailbreak: