Come abilitare OpenSSh su iOS 10.2


9

Ho effettuato il jailbreak del mio iPhone 6s su iOS 10.2.

Ho installato OpenSSH tramite Cydia e ho cambiato la mia password predefinita tramite MobileTerminal.

L'unico problema è che, quando corro ssh root@my_iPhone_ip_addr, si blocca e non si collega mai.

Ho provato l'applicazione a levetta SSH toggle, tuttavia si blocca ancora.

Esiste un modo per abilitare SSH sul mio telefono tramite un comando terminale o in qualche altro modo?


Uso iPhone Tunnel per connettermi al mio dispositivo tramite ssh tramite USB: code.google.com/archive/p/iphonetunnel-mac/downloads
newenglander

Risposte:


9

Questo tweet è stato creato prima della versione 10.2 del jailbreak, quindi sono abbastanza sicuro che si riferisca al jailbreak 10.1.1 altamente instabile. Hai una fonte aggiornata?
Wowfunhappy,

Seguire i consigli di grgarside: disinstallare OpenSSH. Vedi il mio post per istruzioni dettagliate su come recuperare il tuo SSH.
Colin,

6

Dovresti usare Dropbear integrato. A partire da Yalu Beta 6, devi prima SSH su USB. Quindi, dopo aver modificato la password, è possibile abilitare Dropbear su altre interfacce.

Linux o macOS:

  1. Scarica i binari di gandalf (ho avuto zero fortuna nella compilazione) dalla pagina github di ocaml-usbmux . macOS: gandalf_darwin_10_11_x86_64
  2. Collega il tuo dispositivo tramite cavo USB e scansiona.
  3. Inserisci udid in un file di mappatura. Assicurati che device_port 22 (ssh) sia mappato!
  4. Esegui gandalf con il tuo file di mappatura
  5. SSH per local_port corrispondente a device_port 22 nel file di mappatura.
  6. Accedi con la password alpine.
  7. CAMBIA LA TUA PASSWORD!!!

Scansione

$ gandalf

File di mapping di esempio

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

Esegui Gandalf con Mapping File

$ gandalf -m myMappingFile.txt

SSH alla porta 2000

$ ssh mobile@localhost -p 2000

Cambia password

$ passwd
$ su
$ passwd root

Ora che sei nel tuo dispositivo iOS (la tua password è stata cambiata, giusto? ) Puoi abilitare Dropbear su altre interfacce come segue.

  1. Crea un file LaunchDaemon per avviare una seconda istanza di Dropbear.
  2. Riavvia o usa launchctl load

Crea file LaunchDaemon:

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

Incollalo nel terminale:

<?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>

Digitare Ctrl-D per terminare l'input. Questo ora crea il file ssh10022.plist

Riavvia o usa launchctl

launchctl load /Library/LaunchDaemons/ssh10022.plist

Problemi:

A Dropbear non piacciono le autorizzazioni predefinite iOS sulla home directory mobile, quindi l'autenticazione con chiave SSH non funziona. Dopo ogni riavvio devo accedere con password e correggere le autorizzazioni:

$ chmod go-w /var/mobile

Per eseguire il debug di Dropbear: reindirizzare i log di Dropbear su stderr (l'esempio seguente esegue ancora un'altra istanza sulla porta 10023).

$ dropbear -E -p 10023

6

Non è possibile connettersi a ssh tramite wifi con il jailbreak 10.2. È necessario ssh su USB. Esistono diverse opzioni, ma la più semplice è usare iproxy.

  1. Installa iproxy

    brew install libimobiledevice

  2. Sul terminale ora eseguire il seguente comando.

    iproxy 2222 22

    Ciò consentirà di inoltrare tutto il traffico dalla porta 2222 alla porta 22 tramite USB

  3. Ora puoi collegarti all'iPhone eseguendo ssh

    ssh root@localhost -p 2222

Si noti che ci si connette localhostnon all'indirizzo IP del telefono. Se tutto è andato bene, dovresti essere presentato con il prompt ssh.

Se non funziona, controlla se ssh è in esecuzione su iPhone eseguendo

telnet <iphone-ip-address-here> 22

Se non riesci a connetterti assicurati di installare il opensshpacchetto da Cydia.


Probabilmente non dovresti suggerire di installare OpenSSH perché l'autore del jailbreak, qwertyoruiop dice specificamente di non installare OpenSSH.
Colin,

1
Non sono riuscito a connettermi usando Dropbear, nel mio caso ho dovuto installare il OpenSSHpacchetto, ecco il motivo per cui ho suggerito che, poiché le altre istruzioni sembrano basarsi sul jailbreak beta
Joseph,

Questo non è vero. È possibile connettersi su SSH tramite Wifi con il jailbreak 10.2. Richiede solo di aggiornare la configurazione dropbear per farlo ascoltare su tutte le interfacce.
Doug

@Doug modifica la risposta e metti le istruzioni su come abilitare SSH tramite wifi.
Joseph,

3

@Colin Ha un'ottima risposta per il jailbreak di Yulu, ma ho fatto le cose in un modo un po 'diverso che potrebbe essere utile per le persone. La sua risposta si concentra sulla creazione di un nuovo demone con un nuovo nome in modo da avere effettivamente due demoni che eseguono SSH. Uno per USB e uno per altre connessioni TCP. Volevo un ascoltatore che ascoltasse su tutte le interfacce. Ero anche su Windows e avevo bisogno di qualcosa che funzionasse con quello, cosa che Galdolf non ha fatto. Di conseguenza sono andato con uno script Python , che ho biforcato per assicurarmi che non sparisse mai su di me.

Per usare questo, esegui:

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

Quanto sopra associa la porta locale 2222 alla porta remota 22. Una volta configurato, è possibile utilizzare la propria utility SSH preferita per connettersi. Ho usato Putty .

  • Host: 127.0.0.1
  • Porto: 2222

Nome utente predefinito di "root" e password di "alpine", ma è anche possibile utilizzare un nome utente di "mobile" e una password di "alpine" per la connessione.

NOTA: se non si conosce la password di root, utilizzare Filza per modificare le autorizzazioni di /etc/master.passwd su 666, quindi tramite SSH come utente mobile o utilizzando l'editor di file preferito, modificare quel file per copiare l'hash da "mobile" a "root" per rendere le password uguali. (L'hash per "alpine" è "/ smx7MYTQIi2M", se necessario). Quindi dovresti essere in grado di accedere come root o utilizzare su.

Una volta effettuato l'accesso, dovrai trovare le copie di droplist.plist che sono attualmente sul tuo computer. Probabilmente ci sono modi più efficienti per farlo, ma ho usato il seguente comando:

find . | grep dropbear.plist

Che ha prodotto:

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

La prima voce è il demone attivo, ma la seconda è più importante. È il demone che Yulu mette in atto ogni volta che esegui il jailbreak (che hai a che fare con ogni riavvio). Se modifichi solo /Library/LaunchDaemons/dropbear.plist, verrà sostituito ogni volta che riavvii.

Di conseguenza, modificheremo quello fornito in pacchetto con Yulu, ma se si esegue la cat del file, si noterà che è in un formato binario PLIST. Per risolvere questo problema abbiamo bisogno di Erica Utilities per ottenere il plutil. È quindi possibile eseguire:

plutil -xml dropbear.plist

Questo convertirà dropbear.plist in formato XML. Una volta fatto, puoi modificare il file in qualsiasi editor di testo. Ho usato nano per eseguire il montaggio vero e proprio.

per esempio

nano dropbear.plist

Quando si modifica il file, si desidera eliminare "localhost:" dall'ultima voce della stringa. Ciò farà funzionare l'ascoltatore su tutte le interfacce anziché solo sull'interfaccia di loopback (che è disponibile solo tramite USB). Di conseguenza il tuo file diventa:

<?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 volta fatto ciò, vorrai ripristinare il file in formato binario:

plutil -binary dropbear.plist

A questo punto ti suggerisco di riavviare il dispositivo e convalidare che il file dropbear.plist di Yalu sia copiato correttamente al momento del re-jailbreak:

per esempio

reboot

Dopo il riavvio, dovresti essere in grado di SSH utilizzando l'indirizzo IP del telefono e la porta standard 22.

per esempio

  • Host: (IP da Impostazioni -> WiFi -> (WIFI NAME)
  • Porto: 22

Grazie per aver spiegato tutti i tuoi passaggi! Questo lo rende molto più a prova di futuro. Ho provato> trova. | grep dropbear.plist per trovare la configurazione dropbear sul jailbreak di LiberIOS ma non ho idea di dove abbiano messo la configurazione.
Colin,

1
Prova a navigare su: / Library / LaunchDaemons / e vedi se riesci a capire il nome che hanno usato lì dentro. Molto probabilmente hanno usato lo stesso nome ovunque. Quella cartella è dove si trovano tutti gli script del demone, quindi se hanno un demone esistente dovrà fare riferimento lì.
Doug

Hai dimenticato cd / prima di eseguire find. | grep dropbear.plist. Duh.
Colin,

Questo mi ha fatto capire che potremmo solo suggerire di hackerare Dropbear.plist nell'IPA Yalu prima di caricarlo sul dispositivo con Impactor. Ma ancora una volta, mentre è possibile modificare direttamente i file binari .plist con Xcode su macOS, non so se tali servizi esistano in Windows o Linux.
Colin,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.