Come abilitare OpenSSh su iOS 10.2

10

Ho abilmente eseguito 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 eseguo ssh root@my_iPhone_ip_addr , si blocca e non si connette mai.

Ho provato l'applicazione di trampolino di lancio SSH, tuttavia si blocca ancora.

C'è un modo per abilitare SSH sul mio telefono tramite un comando del terminale o in un altro modo?

    
posta iProgram 28.01.2017 - 14:20
fonte

4 risposte

9
risposta data 28.01.2017 - 18:19
fonte
6

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

Linux o macOS:

  1. Scarica i binari gandalf (ho avuto la compilazione di zero fortuna) dalla pagina github ocaml-usbmux . macOS: gandalf_darwin_10_11_x86_64
  2. Collegare il dispositivo tramite cavo USB e scansionarlo.
  3. Inserisci l'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 al local_port corrispondente a device_port 22 nel file di mapping.
  6. Accedi con la password alpine.
  7. MODIFICA LA PASSWORD !!!

Scan

$ gandalf

File di mappatura di esempio

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

Esegui Gandalf con il file di mappatura

$ gandalf -m myMappingFile.txt

SSH alla porta 2000

$ ssh mobile@localhost -p 2000

Modifica password (s)

$ 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 il file LaunchDaemon:

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

Incolla questo 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>

Premi Ctrl-D per terminare l'input. 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 la password e correggere le autorizzazioni:

$ chmod go-w /var/mobile

Per eseguire il debug di Dropbear: reindirizza i registri di Dropbear su stderr (nell'esempio seguente viene eseguita un'altra istanza sulla porta 10023).

$ dropbear -E -p 10023
    
risposta data 06.02.2017 - 08:54
fonte
5

Non è possibile connettersi a ssh tramite wifi con il jailbreak 10.2. Hai bisogno di ssh su USB. Sono diverse opzioni ma la più semplice è usare iproxy .

  1. Installa iproxy

    brew install libimobiledevice

  2. Sul terminale ora esegui il seguente comando.

    iproxy 2222 22

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

  3. Ora puoi connetterti a iPhone eseguendo ssh

    ssh root@localhost -p 2222

Nota che ti colleghi a localhost non all'indirizzo IP del tuo 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 pacchetto openssh da Cydia.

    
risposta data 12.02.2017 - 09:38
fonte
2

@Colin Ha un'ottima risposta per il jailbreak di Yulu, ma ho fatto le cose in modo un po 'diverso che potrebbe essere utile alle persone. La sua risposta si concentra sulla creazione di un nuovo demone con un nuovo nome in modo tale da avere effettivamente due demoni che eseguono SSH. Uno per l'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 aveva. Di conseguenza sono andato con uno script Python , che ho forked per assicurarti che non scompaia mai su di me.

Per usarlo, corri:

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

La suddetta mappa porta locale 2222 alla porta remota 22. Una volta che questa configurazione è possibile utilizzare la tua utility SSH preferita per collegarsi. Ho usato Putty .

  • Host: 127.0.0.1
  • Porta: 2222

Nome utente predefinito di "root" e password di "alpine", ma un nome utente di "mobile" e una password di "alpine" possono anche essere utilizzati per connettersi.

NOTA: se non si conosce la password di root, utilizzare Filza per modificare le autorizzazioni di /etc/master.passwd a 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). Dovresti quindi essere in grado di accedere come root, oppure usare su.

Una volta effettuato l'accesso, dovrai trovare le copie di droplist.plist che sono attualmente sul tuo computer. Ci sono probabilmente 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 daemon attivo, ma la seconda è più importante. È il demone che Yulu mette in atto ogni volta che esegui il jailbreak (cosa che devi fare con ogni riavvio). Se modifichi solo /Library/LaunchDaemons/dropbear.plist, verrà sostituito ogni volta che riavvii.

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

plutil -xml dropbear.plist

Questo convertirà il dropbear.plist in formato XML. Fatto ciò, puoi modificare il file in qualsiasi editor di testo. Ho utilizzato nano per eseguire la modifica effettiva.

per es.

nano dropbear.plist

Quando si modifica il file, si desidera eliminare "localhost:" dall'ultima stringa. Questo farà in modo che l'ascoltatore funzioni su tutte le interfacce anziché solo sull'interfaccia 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>

Dopo averlo fatto, vorrai rimettere il file in formato binario:

plutil -binary dropbear.plist

A questo punto ti suggerisco di riavviare il dispositivo e verificare che il file dropback.plist di Yalu sia copiato correttamente quando esegui nuovamente il jailbreak:

per es.

reboot

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

per es.

  • Host: (IP da Impostazioni - > WiFi - > (NOME WIFI)
  • Porta: 22
risposta data 01.12.2017 - 15:18
fonte

Leggi altre domande sui tag