He liberado con éxito mi iPhone 6s con 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.
Probé la aplicación de trampolín de alternancia SSH, sin embargo, todavía se bloquea.
¿Hay alguna forma de habilitar SSH en mi teléfono a través de un comando de terminal o de alguna otra manera?
OpenSSH no es compatible con iOS 10.2 y romperá cosas en versiones posteriores del jailbreak. Debe desinstalar tanto OpenSSH como OpenSSL (dependencia).
Deberías usar el Dropbear incorporado. A partir de Yalu Beta 6, primero debe SSH a través de USB. Luego, después de cambiar su contraseña, puede habilitar Dropbear en otras interfaces.
Linux o macOS:
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 ( su contraseña ha sido cambiada, ¿verdad? ), Puede habilitar Dropbear en otras interfaces de la siguiente manera.
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
Reinicie o use launchctl
launchctl load /Library/LaunchDaemons/ssh10022.plist
Asuntos:
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: redirija los registros de Dropbear a stderr (el siguiente ejemplo ejecuta otra instancia en el puerto 10023).
$ dropbear -E -p 10023
No puede conectarse a ssh a través de wifi con el jailbreak 10.2. Necesita ssh a través de USB. Son varias opciones pero la más fácil es usar iproxy
.
instalar iproxy
brew install libimobiledevice
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
Ahora puedes conectarte al iPhone ejecutando ssh
ssh root@localhost -p 2222
Observe que localhost
no se conecta a la dirección IP de su teléfono. Si todo salió bien, debería aparecer el indicador 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 openssh
paquete de Cydia.
Dropbear
, en mi caso tuve que instalar el OpenSSH
paquete, esa es la razón por la que sugerí que, dado que las otras instrucciones parecen estar basadas en el jailbreak beta@Colin Tiene una gran respuesta para el jailbreak de Yulu, pero hice las cosas un poco diferentes que pueden ser útiles para las personas. Su respuesta se enfoca en crear un nuevo demonio con un nuevo nombre para que efectivamente tenga 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, lo que no hizo Galdolf. Como resultado, opté por Python Script , que bifurqué para asegurarme de que nunca desaparezca de mí.
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 esto esté configurado, puede usar su utilidad SSH favorita para conectarse. Usé Putty .
El nombre de usuario predeterminado de "root" y la contraseña de "alpine", pero también se puede usar un nombre de usuario de "móvil" y una contraseña de "alpine" para conectarse.
NOTA: Si no conoce la contraseña raíz, 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 se encuentran actualmente en su máquina. Probablemente haya formas más eficientes de hacer esto, pero usé el siguiente comando:
find . | grep dropbear.plist
Lo que arrojó:
./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 pone en marcha 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 buscas el archivo, notarás que está en un formato PLIST binario. Para solucionar esto, necesitamos Erica Utilities para obtener plutil. A continuación, puede 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. Usé nano para hacer la edición real.
p.ej
nano dropbear.plist
Cuando está editando el archivo, desea deshacerse del "localhost:" de la última entrada de cadena. Esto hará que el oyente se ejecute en todas las interfaces en lugar de solo en 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 poner el archivo en formato binario:
plutil -binary dropbear.plist
En este punto, le sugiero que reinicie el dispositivo y valide que el archivo dropbear.plist de Yalu se haya copiado correctamente cuando vuelva a hacer jailbreak:
p.ej
reboot
Después de reiniciar, debería poder usar SSH utilizando la dirección IP de su teléfono y el puerto estándar 22.
p.ej
neoinglaterra