So aktivieren Sie OpenSSh unter iOS 10.2

9

Ich habe mein iPhone 6s unter iOS 10.2 erfolgreich jailbroken lassen.

Ich habe OpenSSH über Cydia installiert und mein Standardkennwort über MobileTerminal geändert.

Das einzige Problem ist, wenn ich renne ssh root@my_iPhone_ip_addr, hängt es nur und verbindet sich nie.

Ich habe versucht, die SSH-Sprungbrett-Anwendung zu aktivieren, sie hängt jedoch immer noch.

Gibt es eine Möglichkeit, wie ich SSH auf meinem Telefon über einen Terminalbefehl oder auf andere Weise aktivieren kann?

iProgramm
quelle
Ich benutze iPhone Tunnel, um über ssh über USB eine Verbindung zu meinem Gerät herzustellen
newenglander

Antworten:

9

OpenSSH ist nicht mit iOS 10.2 kompatibel und wird in späteren Versionen des Jailbreak Probleme verursachen. Sie sollten sowohl OpenSSH als auch OpenSSL (Abhängigkeit) deinstallieren.

yalu102 wird mit Dropbear geliefert.

grg
quelle
Dieser Tweet wurde vor der Veröffentlichung von 10.2 Jailbreak erstellt, daher bin ich mir ziemlich sicher, dass er sich auf den höchst instabilen 10.1.1 Jailbreak bezieht. Haben Sie eine aktualisierte Quelle?
Wowfunhappy
Bitte befolgen Sie die Anweisungen von grgarside: Deinstallieren Sie OpenSSH. In meinem Beitrag finden Sie schrittweise Anleitungen, wie Sie Ihr SSH zurückerhalten können.
Colin
6

Sie sollten den eingebauten Dropbear verwenden. Ab Yalu Beta 6 müssen Sie zuerst SSH über USB ausführen. Nachdem Sie Ihr Passwort geändert haben, können Sie Dropbear auf anderen Schnittstellen aktivieren.

Linux oder MacOS:

  1. Laden Sie die Gandalf-Binärdateien (ich hatte kein Glück beim Kompilieren) von der Github- Seite von ocaml-usbmux herunter. macOS: gandalf_darwin_10_11_x86_64
  2. Schließen Sie Ihr Gerät über ein USB-Kabel an und suchen Sie danach.
  3. Fügen Sie die udid in eine Zuordnungsdatei ein. Stellen Sie sicher, dass device_port 22 (ssh) zugeordnet ist!
  4. Führen Sie gandalf mit Ihrer Mapping-Datei aus
  5. SSH an den lokalen_Port, der dem Geräteport 22 in Ihrer Zuordnungsdatei entspricht.
  6. Melden Sie sich mit dem Passwort alpine an.
  7. ÄNDERN SIE IHR PASSWORT!!!

Scan

$ gandalf

Beispielzuordnungsdatei

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

Führen Sie Gandalf mit Zuordnungsdatei aus

$ gandalf -m myMappingFile.txt

SSH zu Port 2000

$ ssh mobile@localhost -p 2000

Passwort (e) ändern

$ passwd
$ su
$ passwd root

Nachdem Sie sich auf Ihrem iOS-Gerät befinden ( Ihr Passwort wurde geändert, oder? ), Können Sie Dropbear auf anderen Schnittstellen wie folgt aktivieren.

  1. Erstellen Sie eine LaunchDaemon-Datei, um eine zweite Instanz von Dropbear zu starten.
  2. Neustart oder Verwendung launchctl load

Erstellen Sie eine LaunchDaemon-Datei:

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

Fügen Sie dies in das Terminal ein:

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

Geben Sie Strg-D ein, um die Eingabe zu beenden. Damit wird nun die Datei ssh10022.plist erstellt

Starten Sie neu oder verwenden Sie launchctl

launchctl load /Library/LaunchDaemons/ssh10022.plist

Probleme:

Dropbear mag die iOS-Standardberechtigungen für das Mobile Home-Verzeichnis nicht, daher funktioniert die SSH-Schlüsselauthentifizierung nicht. Nach jedem Neustart muss ich mich mit einem Passwort anmelden und die Berechtigungen korrigieren:

$ chmod go-w /var/mobile

So debuggen Sie Dropbear: Leiten Sie Dropbear-Protokolle zu stderr um (im folgenden Beispiel wird eine weitere Instanz auf Port 10023 ausgeführt).

$ dropbear -E -p 10023
Colin
quelle
6

Sie können mit dem 10.2-Jailbreak keine Verbindung zu ssh über WLAN herstellen. Sie müssen über USB ssh. Es gibt verschiedene Möglichkeiten, aber die einfachste ist die Verwendung iproxy.

  1. Installieren Sie iproxy

    brew install libimobiledevice

  2. Führen Sie nun auf dem Terminal den folgenden Befehl aus.

    iproxy 2222 22

    Auf diese Weise können Sie den gesamten Datenverkehr von Port 2222 über USB an Port 22 weiterleiten

  3. Jetzt können Sie eine Verbindung zum iPhone herstellen, indem Sie ssh ausführen

    ssh root@localhost -p 2222

Beachten Sie, dass Sie localhostkeine Verbindung zur IP-Adresse Ihres Telefons herstellen. Wenn alles gut gegangen ist, sollte die Eingabeaufforderung ssh angezeigt werden.

Wenn es nicht funktioniert, überprüfen Sie, ob ssh auf dem iPhone ausgeführt wird, indem Sie es ausführen

telnet <iphone-ip-address-here> 22

Wenn Sie keine Verbindung herstellen können, stellen Sie sicher, dass Sie das opensshPaket von Cydia installieren .

Joseph
quelle
Wahrscheinlich sollte nicht empfohlen werden, OpenSSH zu installieren, da der Autor des Jailbreak, qwertyoruiop, ausdrücklich sagt, OpenSSH nicht zu installieren.
Colin
1
Ich konnte keine Verbindung herstellen Dropbear, in meinem Fall musste ich das OpenSSHPaket installieren . Aus diesem Grund schlug ich vor, dass die anderen Anweisungen auf dem Beta-Jailbreak basieren
Joseph
Das ist nicht wahr. Sie können mit dem 10.2 Jailbreak über SSH über WLAN eine Verbindung herstellen. Sie müssen lediglich die Dropbear-Konfiguration aktualisieren, damit sie alle Schnittstellen abhört.
Doug
@Doug bearbeitet die Antwort und gibt die Anweisungen zum Aktivieren von SSH über WLAN ein.
Joseph
3

@Colin Hat eine großartige Antwort auf den Yulu-Jailbreak, aber ich habe Dinge ein wenig anders gemacht, die für Menschen nützlich sein könnten. Seine Antwort konzentriert sich darauf, einen neuen Daemon mit einem neuen Namen zu erstellen, sodass effektiv zwei Daemons SSH ausführen. Eine für den USB und eine für andere TCP-Verbindungen. Ich wollte einen Hörer, der alle Schnittstellen abhört. Ich war auch unter Windows und brauchte etwas, das damit funktionierte, was Galdolf nicht tat. Infolgedessen habe ich ein Python-Skript verwendet , das ich gegabelt habe , um sicherzustellen, dass es bei mir nie verschwindet.

Führen Sie dazu Folgendes aus:

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

In der obigen Abbildung wird der lokale Port 2222 dem Remote-Port 22 zugeordnet. Sobald dies eingerichtet ist, können Sie Ihr bevorzugtes SSH-Dienstprogramm verwenden, um eine Verbindung herzustellen . Ich habe Putty verwendet .

  • Host: 127.0.0.1
  • Hafen: 2222

Standardbenutzername von "root" und Passwort von "alpine", aber ein Benutzername von "mobile" und ein Passwort von "alpine" können auch verwendet werden, um eine Verbindung herzustellen.

HINWEIS: Wenn Sie das Root-Passwort nicht kennen, ändern Sie mit Filza die Berechtigungen von /etc/master.passwd in 666, und bearbeiten Sie diese Datei über SSH als mobilen Benutzer oder mithilfe Ihres bevorzugten Datei-Editors, um den Hash zu kopieren von "mobil" über "root", um die Passwörter gleich zu machen. (Der Hash für "alpine" lautet "/ smx7MYTQIi2M", falls erforderlich). Sie sollten sich dann als root anmelden oder su verwenden können.

Sobald Sie angemeldet sind, möchten Sie die Kopien von droplist.plist finden, die sich derzeit auf Ihrem Computer befinden. Es gibt wahrscheinlich effizientere Möglichkeiten, dies zu tun, aber ich habe den folgenden Befehl verwendet:

find . | grep dropbear.plist

Was ergab:

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

Der erste Eintrag ist der aktive Daemon, der zweite ist wichtiger. Es ist der Dämon, den Yulu jedes Mal einrichtet, wenn Sie den Jailbreak ausführen (was Sie bei jedem Neustart tun müssen). Wenn Sie nur /Library/LaunchDaemons/dropbear.plist bearbeiten, wird es bei jedem Neustart ersetzt.

Infolgedessen werden wir die mit Yulu gelieferte bearbeiten, aber wenn Sie die Datei katzen, werden Sie feststellen, dass sie in einem binären PLIST-Format vorliegt. Um dies zu beheben, benötigen wir Erica Utilities , um Plutil zu erhalten. Sie können dann ausführen:

plutil -xml dropbear.plist

Dadurch wird die Datei dropbear.plist in das XML-Format konvertiert. Sobald dies erledigt ist, können Sie die Datei in einem beliebigen Texteditor bearbeiten. Ich habe Nano verwendet , um die eigentliche Bearbeitung durchzuführen.

z.B

nano dropbear.plist

Wenn Sie die Datei bearbeiten, möchten Sie den "localhost:" aus dem letzten Zeichenfolgeneintrag entfernen. Dadurch wird der Listener auf allen Schnittstellen ausgeführt und nicht nur auf der Loopback-Schnittstelle (die nur über USB verfügbar ist). Als Ergebnis wird Ihre Datei:

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

Sobald Sie dies getan haben, möchten Sie die Datei wieder in das Binärformat bringen:

plutil -binary dropbear.plist

An dieser Stelle schlage ich vor, dass Sie das Gerät neu starten und überprüfen, ob die Datei Yalu dropbear.plist beim erneuten Jailbreak ordnungsgemäß kopiert wurde:

z.B

reboot

Nach einem Neustart sollten Sie in der Lage sein, SSH unter Verwendung der IP-Adresse Ihres Telefons und des Standardports 22 durchzuführen.

z.B

  • Host: (IP von Einstellungen -> WiFi -> (WIFI-NAME)
  • Hafen: 22
Doug
quelle
Vielen Dank, dass Sie alle Ihre Schritte dargelegt haben! Das macht es viel zukunftssicherer. Ich habe versucht> zu finden. | grep dropbear.plist, um die Dropbear-Konfiguration auf dem LiberIOS-Jailbreak zu finden, aber ich habe keine Ahnung, wo sie die Konfiguration ablegen.
Colin
1
Navigieren Sie zu: / Library / LaunchDaemons / und prüfen Sie, ob Sie den Namen herausfinden können, den sie dort verwendet haben. Höchstwahrscheinlich haben sie überall den gleichen Namen verwendet. In diesem Ordner befinden sich alle Daemon-Skripte. Wenn also ein Daemon vorhanden ist, muss dort darauf verwiesen werden.
Doug
Vor dem Ausführen von find auf cd / vergessen. | grep dropbear.plist. Duh.
Colin
Dadurch wurde mir klar, dass wir nur vorschlagen könnten, die Dropbear.plist in der Yalu IPA zu hacken, bevor wir sie mit Impactor auf das Gerät hochladen. Aber während man binäre .plist-Dateien mit Xcode unter macOS direkt bearbeiten kann, weiß ich nicht, ob solche Funktionen unter Windows oder Linux existieren.
Colin
1
Ja, es kann getan werden: forensicswiki.org/wiki/Converting_Binary_Plists
Doug