Comment activer OpenSSh sur iOS 10.2

9

J'ai jailbreaké avec succès mon iPhone 6 fonctionnant sur iOS 10.2.

J'ai installé OpenSSH via Cydia et changé mon mot de passe par défaut via MobileTerminal.

Le seul problème est que lorsque je cours ssh root@my_iPhone_ip_addr, il se bloque et ne se connecte jamais.

J'ai essayé l'application de tremplin SSH, mais elle se bloque toujours.

Existe-t-il un moyen d'activer SSH sur mon téléphone via une commande de terminal ou d'une autre manière?

iProgramme
la source
J'utilise iPhone Tunnel pour me connecter à mon appareil via ssh sur USB: code.google.com/archive/p/iphonetunnel-mac/downloads
newenglander

Réponses:

9

OpenSSH n'est pas compatible avec iOS 10.2 et cassera les choses dans les versions ultérieures du jailbreak. Vous devez désinstaller OpenSSH et OpenSSL (dépendance).

yalu102 est livré avec dropbear.

grg
la source
Ce tweet a été fait avant la sortie de la version 10.2 de Jailbreak, donc je suis sûr qu'il fait référence à la version très instable de la version 10.1.1 Jailbreak. Avez-vous une source mise à jour?
Wowfunhappy
Veuillez suivre les conseils de grgarside: désinstallez OpenSSH. Voir mon article pour des instructions étape par étape pour récupérer votre ssh.
Colin
6

Vous devez utiliser le Dropbear intégré. Depuis Yalu Beta 6, vous devez d'abord SSH sur USB. Ensuite, après avoir changé votre mot de passe, vous pouvez activer Dropbear sur d'autres interfaces.

Linux ou macOS:

  1. Téléchargez les binaires gandalf (j'ai eu aucune chance de compiler) depuis la page github ocaml-usbmux . macOS: gandalf_darwin_10_11_x86_64
  2. Connectez votre appareil via un câble USB et recherchez-le.
  3. Mettez l'udid dans un fichier de mappage. Assurez-vous que device_port 22 (ssh) est mappé!
  4. Exécutez Gandalf avec votre fichier de mappage
  5. SSH vers le port local correspondant au port périphérique 22 dans votre fichier de mappage.
  6. Connectez-vous avec le mot de passe alpin.
  7. CHANGEZ VOTRE MOT DE PASSE!!!

Analyse

$ gandalf

Exemple de fichier de mappage

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

Exécutez Gandalf avec le fichier de mappage

$ gandalf -m myMappingFile.txt

SSH au port 2000

$ ssh mobile@localhost -p 2000

Modifier le ou les mots de passe

$ passwd
$ su
$ passwd root

Maintenant que vous êtes dans votre appareil iOS ( votre mot de passe a été changé, non? ), Vous pouvez activer Dropbear sur d'autres interfaces comme suit.

  1. Créez un fichier LaunchDaemon pour lancer une deuxième instance de Dropbear.
  2. Redémarrez ou utilisez launchctl load

Créez le fichier LaunchDaemon:

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

Collez ceci dans le 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>

Tapez Ctrl-D pour terminer l'entrée. Cela crée maintenant le fichier ssh10022.plist

Redémarrez ou utilisez launchctl

launchctl load /Library/LaunchDaemons/ssh10022.plist

Problèmes:

Dropbear n'aime pas les autorisations iOS par défaut sur le répertoire de la maison mobile, donc l'authentification par clé SSH ne fonctionne pas. Après chaque redémarrage, je dois me connecter avec un mot de passe et corriger les autorisations:

$ chmod go-w /var/mobile

Pour déboguer Dropbear: redirigez les journaux Dropbear vers stderr (l'exemple ci-dessous exécute une autre instance sur le port 10023).

$ dropbear -E -p 10023
Colin
la source
6

Vous ne pouvez pas vous connecter à ssh sur wifi avec le jailbreak 10.2. Vous devez SSH via USB. Il existe plusieurs options, mais la plus simple est d'utiliser iproxy.

  1. Installer iproxy

    brew install libimobiledevice

  2. Sur le terminal, exécutez maintenant la commande suivante.

    iproxy 2222 22

    Cela vous permettra de transférer tout le trafic du port 2222 vers le port 22 via USB

  3. Vous pouvez maintenant vous connecter à l'iPhone en exécutant ssh

    ssh root@localhost -p 2222

Notez que vous localhostne vous connectez pas à l'adresse IP de votre téléphone. Si tout s'est bien passé, vous devriez recevoir l'invite ssh.

Si cela ne fonctionne pas, vérifiez si ssh est en cours d'exécution sur l'iPhone en exécutant

telnet <iphone-ip-address-here> 22

Si vous ne pouvez pas vous connecter, assurez-vous d'installer le opensshpackage à partir de Cydia.

Joseph
la source
Ne devrait probablement pas suggérer d'installer OpenSSH parce que l'auteur du jailbreak, qwertyoruiop dit spécifiquement de ne pas installer OpenSSH.
Colin
1
Je ne pouvais pas me connecter en utilisant Dropbear, dans mon cas, j'ai dû installer le OpenSSHpaquet, c'est la raison pour laquelle j'ai suggéré que les autres instructions semblent être basées sur la version jailbreak bêta
Joseph
Ce n'est pas vrai. Vous POUVEZ vous connecter sur SSH via Wifi avec le Jailbreak 10.2. Il vous suffit de mettre à jour la configuration de dropbear afin de l'écouter sur toutes les interfaces.
Doug
@Doug éditez la réponse et mettez les instructions pour activer SSH sur wifi.
Joseph
3

@Colin a une excellente réponse au jailbreak de Yulu, mais j'ai fait les choses un peu différemment qui peuvent être utiles aux gens. Sa réponse se concentre sur la création d'un nouveau démon avec un nouveau nom afin que vous ayez effectivement deux démons exécutant SSH. Un pour l'USB et un pour les autres connexions TCP. Je voulais un auditeur qui écoutait sur toutes les interfaces. J'étais aussi sur Windows et j'avais besoin de quelque chose qui fonctionnait avec ça, ce que Galdolf n'avait pas. En conséquence, je suis allé avec un script Python , que j'ai fourré pour m'assurer qu'il ne disparaît jamais sur moi.

Pour l'utiliser, exécutez:

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

Ce qui précède mappe le port local 2222 au port distant 22. Une fois cette configuration effectuée, vous pouvez utiliser votre utilitaire SSH préféré pour vous connecter. J'ai utilisé Putty .

  • Hôte: 127.0.0.1
  • Port: 2222

Le nom d'utilisateur par défaut de "root" et le mot de passe de "alpine", mais un nom d'utilisateur de "mobile" et un mot de passe de "alpine" peuvent également être utilisés pour se connecter.

REMARQUE: Si vous ne connaissez pas le mot de passe root, utilisez Filza pour modifier les autorisations de /etc/master.passwd à 666, puis via SSH en tant qu'utilisateur mobile, ou en utilisant votre éditeur de fichiers préféré, modifiez ce fichier pour copier le hachage de "mobile" à "root" pour rendre les mots de passe identiques. (Le hachage pour "alpine" est "/ smx7MYTQIi2M", si nécessaire). Vous devriez alors pouvoir vous connecter en tant que root, ou utiliser su.

Une fois connecté, vous voudrez trouver les copies de droplist.plist qui sont actuellement sur votre machine. Il existe probablement des moyens plus efficaces de le faire, mais j'ai utilisé la commande suivante:

find . | grep dropbear.plist

Ce qui a donné:

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

La première entrée est le démon actif, mais la seconde est plus importante. C'est le démon que Yulu met en place chaque fois que vous lancez le jailbreak (ce que vous devez faire à chaque redémarrage). Si vous modifiez uniquement /Library/LaunchDaemons/dropbear.plist, il sera remplacé à chaque redémarrage.

En conséquence, nous allons modifier celui qui est fourni avec Yulu, mais si vous cat le fichier, vous le remarquerez au format PLIST binaire. Pour résoudre ce problème, nous avons besoin d' Erica Utilities afin d'obtenir plutil. Vous pouvez ensuite exécuter:

plutil -xml dropbear.plist

Cela convertira le dropbear.plist au format XML. Une fois cela fait, vous pouvez modifier le fichier dans n'importe quel éditeur de texte. J'ai utilisé nano pour faire le montage proprement dit.

par exemple

nano dropbear.plist

Lorsque vous modifiez le fichier, vous voulez vous débarrasser de "localhost:" de la dernière entrée de chaîne. Cela fera fonctionner l'écouteur sur toutes les interfaces au lieu de seulement l'interface de bouclage (qui n'est disponible que via USB). En conséquence, votre fichier devient:

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

Une fois que vous avez fait cela, vous voudrez remettre le fichier au format binaire:

plutil -binary dropbear.plist

À ce stade, je vous suggère de redémarrer l'appareil et de valider que le fichier dropbear.plist de Yalu est correctement copié lorsque vous re-jailbreakez:

par exemple

reboot

Après un redémarrage, vous devriez pouvoir SSH en utilisant l'adresse IP de votre téléphone et le port standard 22.

par exemple

  • Hôte: (IP depuis Paramètres -> WiFi -> (NOM WIFI)
  • Port: 22
Doug
la source
Merci d'avoir précisé toutes vos étapes! Cela le rend beaucoup plus évolutif. J'ai essayé> trouver. | grep dropbear.plist pour trouver la configuration dropbear sur le jailbreak LiberIOS mais je n'ai aucune idée où ils ont mis la config.
Colin
1
Essayez de naviguer vers: / Library / LaunchDaemons / et voyez si vous pouvez comprendre le nom qu'ils ont utilisé à l'intérieur. Très probablement, ils ont utilisé le même nom partout. Ce dossier est où se trouvent tous les scripts de démon, donc s'ils ont un démon existant, il devra y être référencé.
Doug
Vous avez oublié de cd / avant d'exécuter find. | grep dropbear.plist. Duh.
Colin
Cela m'a fait réaliser que nous pouvions simplement suggérer de pirater le Dropbear.plist dans l'IPA Yalu avant de le télécharger sur l'appareil avec Impactor. Mais là encore, alors que l'on peut éditer directement des fichiers binaires .plist avec Xcode sur macOS, je ne sais pas si de telles installations existent sous Windows ou Linux.
Colin
1
Oui, cela peut être fait: forensicswiki.org/wiki/Converting_Binary_Plists
Doug