Cómo habilitar OpenSSh en iOS 10.2

9

He roto con éxito mi iPhone 6s ejecutándose en iOS 10.2.

Instalé OpenSSH a través de Cydia y cambié mi contraseña predeterminada a través de MobileTerminal.

El único problema es que, cuando ejecuto ssh root@my_iPhone_ip_addr, simplemente se cuelga y nunca se conecta.

He probado la aplicación de trampolín de alternar SSH, sin embargo, todavía se cuelga.

¿Hay alguna forma de habilitar SSH en mi teléfono a través de un comando de terminal o de alguna otra manera?

iProgram
fuente
Uso iPhone Tunnel para conectarme a mi dispositivo a través de ssh a través de USB: code.google.com/archive/p/iphonetunnel-mac/downloads
newenglander

Respuestas:

9

OpenSSH no es compatible con iOS 10.2 y romperá las cosas en versiones posteriores del jailbreak. Debe desinstalar OpenSSH y OpenSSL (dependencia).

yalu102 viene con dropbear.

grg
fuente
Este tweet se realizó antes del lanzamiento de Jailbreak 10.2, por lo que estoy bastante seguro de que se refiere al Jailbreak 10.1.1 altamente inestable. ¿Tienes una fuente actualizada?
Wowfunhappy
Por favor, siga los consejos de grgarside: desinstale OpenSSH. Vea mi publicación para obtener instrucciones paso a paso para recuperar su ssh.
Colin
6

Deberías usar el Dropbear incorporado. A partir de Yalu Beta 6, primero debe usar SSH a través de USB. Luego, después de cambiar su contraseña, puede habilitar Dropbear en otras interfaces.

Linux o macOS:

  1. Descargue los archivos binarios de gandalf (no tuve suerte compilando) desde la página de github de ocaml -usbmux . macOS: gandalf_darwin_10_11_x86_64
  2. Conecte su dispositivo mediante un cable USB y escanee en busca de él.
  3. Ponga el udid en un archivo de mapeo. ¡Asegúrese de que device_port 22 (ssh) esté asignado!
  4. Ejecute gandalf con su archivo de mapeo
  5. SSH al puerto local correspondiente al puerto 22 del dispositivo en su archivo de mapeo.
  6. Inicie sesión con la contraseña alpine.
  7. ¡¡¡CAMBIA TU CONTRASEÑA!!!

Escanear

$ gandalf

Archivo de mapeo de muestra

[{"udid":"9cdfac9f74c5e18a6eff3611c0927df5cf4f2eca",
  "name":"i11", "forwarding": [{"local_port":2000, "device_port":22},
                               {"local_port":3000, "device_port":1122}]
                               }]

Ejecute Gandalf con el archivo de mapeo

$ gandalf -m myMappingFile.txt

SSH al puerto 2000

$ ssh mobile@localhost -p 2000

Cambiar contraseña (s)

$ passwd
$ su
$ passwd root

Ahora que está en su dispositivo iOS ( se ha cambiado su contraseña, ¿verdad? ) Puede habilitar Dropbear en otras interfaces de la siguiente manera.

  1. Cree un archivo LaunchDaemon para iniciar una segunda instancia de Dropbear.
  2. Reiniciar o usar launchctl load

Crear archivo LaunchDaemon:

$ cd /Library/LaunchDaemons
$ cat <<EOF > ssh10022.plist

Pega esto en la terminal:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>SSH port 10022</string>
    <key>Program</key>
    <string>/usr/local/bin/dropbear</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/dropbear</string>
        <string>-F</string>
        <string>-R</string>
        <string>-p</string>
        <string>10022</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

Escriba Ctrl-D para finalizar la entrada. Eso ahora crea el archivo ssh10022.plist

Reiniciar o usar launchctl

launchctl load /Library/LaunchDaemons/ssh10022.plist

Cuestiones:

A Dropbear no le gustan los permisos predeterminados de iOS en el directorio de inicio móvil, por lo que la autenticación de clave SSH no funciona. Después de cada reinicio, tengo que iniciar sesión con contraseña y corregir los permisos:

$ chmod go-w /var/mobile

Para depurar Dropbear: Redireccione los registros de Dropbear a stderr (el siguiente ejemplo ejecuta otra instancia más en el puerto 10023).

$ dropbear -E -p 10023
Colin
fuente
6

No puede conectarse a ssh a través de wifi con el 10.2 jailbreak. Necesita ssh a través de USB. Son varias opciones, pero la más fácil es su uso iproxy.

  1. Instalar iproxy

    brew install libimobiledevice

  2. En la terminal ahora ejecute el siguiente comando.

    iproxy 2222 22

    Esto le permitirá reenviar todo el tráfico desde el puerto 2222 al puerto 22 a través de USB

  3. Ahora puedes conectarte al iPhone ejecutando ssh

    ssh root@localhost -p 2222

Observe que localhostno se conecta a la dirección IP de su teléfono. Si todo salió bien, debería aparecer el mensaje ssh.

Si no funciona, verifique si ssh se está ejecutando en el iPhone ejecutando

telnet <iphone-ip-address-here> 22

Si no puede conectarse, asegúrese de instalar el opensshpaquete desde Cydia.

Joseph
fuente
Probablemente no debería sugerir instalar OpenSSH porque el autor del jailbreak, qwertyoruiop, dice específicamente que no instale OpenSSH.
Colin
1
No pude conectarme usando Dropbear, en mi caso tuve que instalar el OpenSSHpaquete, esa es la razón por la que sugerí que las otras instrucciones parecen estar basadas en el beta jailbreak
Joseph
Esto no es verdad. PUEDE conectarse en SSH a través de Wifi con el 10.2 Jailbreak. Solo requiere que actualice la configuración de dropbear para que escuche en todas las interfaces.
Doug
@Doug edita la respuesta y pone las instrucciones para habilitar SSH a través de wifi.
Joseph
3

@Colin tiene una gran respuesta para el jailbreak de Yulu, pero hice cosas un poco diferentes que pueden ser útiles para las personas. Su respuesta se centra en crear un nuevo demonio con un nuevo nombre para que efectivamente tengas dos demonios ejecutando SSH. Uno para el USB y otro para otras conexiones TCP. Quería un oyente que escuchara en todas las interfaces. También estaba en Windows y necesitaba algo que funcionara con eso, que Galdolf no necesitaba. Como resultado, utilicé un Python Script , que bifurqué para asegurarme de que nunca desapareciera.

Para usar esto, ejecute:

python usbmuxd\pythonclient\tcprelay.py -t 22:2222

Lo anterior asigna el puerto local 2222 al puerto remoto 22. Una vez que esté configurado, puede usar su utilidad SSH favorita para conectarse. Usé Putty .

  • Anfitrión: 127.0.0.1
  • Puerto: 2222

El nombre de usuario predeterminado de "root" y la contraseña de "alpine", pero un nombre de usuario de "mobile" y una contraseña de "alpine" también se pueden utilizar para conectarse.

NOTA: Si no conoce la contraseña de root, use Filza para cambiar los permisos de /etc/master.passwd a 666, luego a través de SSH como usuario móvil, o utilizando su editor de archivos favorito, edite ese archivo para copiar el hash de "móvil" a "raíz" para que las contraseñas sean las mismas. (El hash para "alpine" es "/ smx7MYTQIi2M", si es necesario). Entonces debería poder iniciar sesión como root, o usar su.

Una vez que haya iniciado sesión, querrá encontrar las copias de droplist.plist que están actualmente en su máquina. Probablemente hay formas más eficientes de hacer esto, pero utilicé el siguiente comando:

find . | grep dropbear.plist

Que rindió:

./Library/LaunchDaemons/dropbear.plist
./private/var/containers/Bundle/Application/023FF836-8A0A-4593-A578-6801F2A3F34D/yalu102.app/dropbear.plist

La primera entrada es el demonio activo, pero la segunda es más importante. Es el demonio que Yulu establece cada vez que ejecutas el jailbreak (que tienes que hacer con cada reinicio). Si solo edita /Library/LaunchDaemons/dropbear.plist, se reemplazará cada vez que reinicie.

Como resultado, vamos a editar el que viene empaquetado con Yulu, pero si atrapa el archivo, notará que está en un formato PLIST binario. Para solucionar esto, necesitamos Erica Utilities para obtener plutil. Luego puedes ejecutar:

plutil -xml dropbear.plist

Esto convertirá dropbear.plist a formato XML. Una vez hecho esto, puede editar el archivo en cualquier editor de texto. Solía nano para hacer la edición real.

p.ej

nano dropbear.plist

Cuando está editando el archivo que desea deshacerse de "localhost:" de la última entrada de cadena. Esto hará que el oyente se ejecute en todas las interfaces en lugar de solo la interfaz de bucle invertido (que solo está disponible a través de USB). Como resultado, su archivo se convierte en:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>ShaiHulud</string>
        <key>Program</key>
        <string>/usr/local/bin/dropbear</string>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/local/bin/dropbear</string>
                <string>-F</string>
                <string>-R</string>
                <string>-p</string>
                <string>22</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
</dict>
</plist>

Una vez que haya hecho eso, querrá volver a colocar el archivo en formato binario:

plutil -binary dropbear.plist

En este punto, le sugiero que reinicie el dispositivo y valide que el archivo Yalu dropbear.plist se copia correctamente cuando vuelve a hacer jailbreak:

p.ej

reboot

Después de reiniciar, debería poder utilizar SSH utilizando la dirección IP de su teléfono y el puerto estándar 22.

p.ej

  • Anfitrión: (IP desde Configuración -> WiFi -> (NOMBRE WIFI)
  • Puerto: 22
Doug
fuente
¡Gracias por detallar todos tus pasos! Eso lo hace mucho más a prueba de futuro. Intenté> encontrar. El | grep dropbear.plist para encontrar la configuración de dropbear en el jailbreak de LiberIOS, pero no tengo idea de dónde colocaron la configuración.
Colin el
1
Intente navegar a: / Library / LaunchDaemons / y vea si puede encontrar el nombre que usaron allí. Lo más probable es que usaran el mismo nombre en todas partes. Esa carpeta es donde están todos los scripts de daemon, por lo que si tienen un daemon existente, tendrá que hacer referencia allí.
Doug
Se olvidó de cd / antes de ejecutar find. El | grep dropbear.plist. Duh
Colin
Esto me hizo darme cuenta de que podríamos sugerir piratear el Dropbear.plist en el Yalu IPA antes de cargarlo en el dispositivo con Impactor. Pero, de nuevo, si bien uno puede editar directamente archivos binarios .plist con Xcode en macOS, no sé si tales instalaciones existen en Windows o Linux.
Colin