Як увімкнути OpenSSh на iOS 10.2


9

У мене успішно збився iPhone 6s на iOS 10.2.

Я встановив OpenSSH через Cydia та змінив свій пароль за замовчуванням через MobileTerminal.

Єдина проблема, коли я бігаю ssh root@my_iPhone_ip_addr, він просто висить і ніколи не з’єднується.

Я спробував застосувати програмування для трампліну SSH, проте він все ще висить.

Чи є, як я можу включити SSH на своєму телефоні за допомогою команди терміналу чи іншим способом?


Я використовую iPhone Tunnel для підключення до свого пристрою через ssh через USB: code.google.com/archive/p/iphonetunnel-mac/downloads
newenglander

Відповіді:


9

Цей твіт був зроблений до виходу у в'язницю 10.2, тому я майже впевнений, що йдеться про дуже нестабільний тюремний в'язницю 10.1.1. Чи є у вас оновлене джерело?
Wowfunhappy

Дотримуйтесь порад grgarside: видаліть OpenSSH. Покрокові інструкції можна отримати в моєму дописі, щоб повернути свій ssh
Колін

6

Ви повинні використовувати вбудований Dropbear. Станом на Yalu Beta 6, вам потрібно спочатку SSH через USB. Потім після зміни пароля ви можете ввімкнути Dropbear на інших інтерфейсах.

Linux або macOS:

  1. Завантажте файли файлів gandalf (мені не вистачало долі) зі сторінки ocaml-usbmux github. macOS: gandalf_darwin_10_11_x86_64
  2. Підключіть свій пристрій за допомогою кабелю USB та скануйте його.
  3. Помістіть udid у файл зіставленням. Переконайтесь, що device_port 22 (ssh) відображено!
  4. Запустіть gandalf зі своїм картографічним файлом
  5. SSH до локального_порту, відповідного пристрою_порту 22 у вашому картографічному файлі.
  6. Увійдіть з паролем alpine.
  7. ЗМІНИТИ ПАРОЛЬ!!!

Сканування

$ gandalf

Зразок картографічного файлу

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

Запустіть Gandalf з картографічним файлом

$ gandalf -m myMappingFile.txt

SSH до порту 2000 року

$ ssh mobile@localhost -p 2000

Змінення паролів

$ passwd
$ su
$ passwd root

Тепер, коли ви перебуваєте на своєму пристрої iOS ( пароль змінено, правда? ), Ви можете ввімкнути Dropbear на інших інтерфейсах наступним чином.

  1. Створіть файл LaunchDaemon для запуску другого примірника Dropbear.
  2. Перезавантажте або використовуйте launchctl load

Створіть файл LaunchDaemon:

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

Вставте це в термінал:

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

Введіть Ctrl-D, щоб закінчити введення. Тепер створено файл ssh10022.plist

Перезавантажте або використовуйте startctl

launchctl load /Library/LaunchDaemons/ssh10022.plist

Проблеми:

Dropbear не любить дозволи за замовчуванням iOS у домашньому каталозі мобільних пристроїв, тому автентифікація ключів SSH не працює. Після кожного перезавантаження я повинен увійти з паролем і виправити дозволи:

$ chmod go-w /var/mobile

Для налагодження Dropbear: Перенаправляйте журнали Dropbear на stderr (приклад нижче працює ще одним екземпляром на порту 10023).

$ dropbear -E -p 10023

6

Ви не можете підключитися до ssh через wifi з джейлбрейком 10.2. Потрібно перейти через USB. Є кілька варіантів, але найпростіший у використанні iproxy.

  1. Встановіть iproxy

    brew install libimobiledevice

  2. На терміналі тепер запустіть наступну команду.

    iproxy 2222 22

    Це дозволить вам переадресувати весь трафік з порту 2222 на порт 22 через USB

  3. Тепер ви можете підключитися до iPhone, запустивши ssh

    ssh root@localhost -p 2222

Зверніть увагу, що ви підключаєтесь localhostне до ip-адреси свого телефону. Якщо все пішло добре, вам слід представити підказку ssh.

Якщо це не працює, перевірте, чи запускається ssh на iPhone

telnet <iphone-ip-address-here> 22

Якщо ви не можете підключитися, переконайтеся, що встановили opensshпакунок від Cydia.


Напевно, не слід пропонувати встановлювати OpenSSH, оскільки автор в'язниці, qwertyoruiop спеціально каже, що не встановлювати OpenSSH.
Колін

1
Я не міг підключитися, використовуючи Dropbear, в моєму випадку мені довелося встановити OpenSSHпакет, тому я запропонував, як і інші вказівки, здається, базуються на бета-джейлбрейку
Джозеф

Це не правда. МОЖЕТЕ підключитися на SSH через Wi-Fi за допомогою в'язниці 10.2. Він просто вимагає оновити конфігурацію крапель, щоб слухати його на всіх інтерфейсах.
Дуг

@Doug відредагуйте відповідь і вкажіть інструкції щодо включення SSH через wifi.
Йосип

3

@Colin Чудова відповідь на в'язницю Юлу, але я робив дещо інакше, що може бути корисним людям. Його відповідь фокусується на створенні нового демона з новим іменем, щоб у вас ефективно було два демони, що управляють SSH. Один для USB та один для інших TCP-з'єднань. Я хотів одного слухача, який слухав на всіх інтерфейсах. Я також був у Windows і мені потрібно було щось, що працювало з цим, чого Гальдольф не робив. У результаті я пішов із сценарієм Python , який я роздвояв, щоб він ніколи не зник на мені.

Щоб скористатися цим, запустіть:

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

Вищезгадане відображає локальний порт 2222 на віддалений порт 22. Після цього налаштування ви можете використовувати свою улюблену утиліту SSH для підключення. Я використовував Putty .

  • Хост: 127.0.0.1
  • Порт: 2222

Ім'я користувача "root" та пароль "alpine" за замовчуванням, але для підключення можна також використовувати ім'я користувача "mobile" та пароль "alpine".

ПРИМІТКА. Якщо ви не знаєте кореневого пароля, скористайтеся Filza, щоб змінити дозволи /etc/master.passwd на 666, а потім через SSH як мобільний користувач або використовуючи улюблений редактор файлів, відредагуйте цей файл, щоб скопіювати хеш від "мобільного" до "root", щоб паролі були однаковими. (Хеш для "alpine" - це "/ smx7MYTQIi2M", якщо його потрібно). Тоді ви повинні мати можливість увійти як root тоді або використовувати su.

Після входу в систему ви захочете знайти копії droplist.plist, які зараз є на вашій машині. Напевно, є більш ефективні способи зробити це, але я використав таку команду:

find . | grep dropbear.plist

Що дало:

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

Перший запис - активний демон, але другий важливіший. Це демон, який Юлу ставить на місце кожного разу, коли ви запускаєте джейлбрейк (що вам доводиться робити при кожному перезавантаженні). Якщо ви редагуєте лише /Library/LaunchDaemons/dropbear.plist, він буде замінюватися кожного разу при перезавантаженні.

В результаті ми будемо редагувати той, який постачається в комплекті з Yulu, але якщо ви введете файл, ви помітите його у двійковому форматі PLIST. Щоб виправити це, нам потрібні програми Erica Utilities , щоб отримати plutil. Потім можна запустити:

plutil -xml dropbear.plist

Це перетворить dropbear.plist у формат XML. Після цього ви можете редагувати файл у будь-якому текстовому редакторі. Я використовував нано для редагування.

напр

nano dropbear.plist

Редагуючи файл, ви хочете позбутися "localhost:" з останнього рядка. Це змусить слухача працювати на всіх інтерфейсах замість лише інтерфейсу зворотного зв'язку (який доступний лише через USB). У результаті ваш файл стає:

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

Щойно ви зробите це, вам захочеться повернути файл у двійковий формат:

plutil -binary dropbear.plist

На даний момент я пропоную вам перезавантажити пристрій і підтвердити, що файл Yalu dropbear.plist правильно скопійований під час повторного втечі з в'язниці:

напр

reboot

Після перезавантаження ви повинні мати можливість SSH, використовуючи IP-адресу телефону та стандартний порт 22.

напр

  • Хост: (IP від ​​налаштувань -> WiFi -> (ім'я WIFI)
  • Порт: 22

Дякуємо, що прописали всі ваші кроки! Це робить його набагато більш надійним у майбутньому. Я спробував> знайти. | grep dropbear.plist, щоб знайти конфігурацію dropbear в джейлбрейку LiberIOS, але у мене немає поняття, куди вони ставлять конфігурацію.
Колін

1
Спробуйте перейти до: / Library / LaunchDaemons / і побачити, чи можете ви з'ясувати ім’я, яке вони там використовували. Швидше за все, вони всюди вживали одне й те саме ім'я. У цій папці знаходяться всі сценарії демона, тож якщо у них є існуючий демон, на нього доведеться посилатися там.
Дуг

Забув CD / перед запуском знайти. | grep dropbear.plist. Дух.
Колін

Це дало мені зрозуміти, що ми можемо просто запропонувати зламати Dropbear.plist в IPA Yalu, перш ніж завантажувати його на пристрій за допомогою Impactor. Але знову ж таки, хоча можна безпосередньо редагувати бінарні файли .plist з Xcode на macOS, я не знаю, чи існують такі засоби в Windows чи Linux.
Колін

1
Так, це можна зробити: forensicswiki.org/wiki/Converting_Binary_Plists
Doug
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.