Как включить OpenSSh на iOS 10.2

9

Я успешно взломал свой iPhone 6s на iOS 10.2.

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

Единственная проблема, когда я запускаю ssh root@my_iPhone_ip_addr, он просто зависает и никогда не подключается.

Я попробовал приложение трамплина SSH с переключателем, однако оно все еще зависает.

Есть ли способ включить SSH на телефоне с помощью команды терминала или каким-либо другим способом?

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

Ответы:

9

OpenSSH не совместим с iOS 10.2 и сломает вещи в более поздних выпусках джейлбрейка. Вы должны удалить как OpenSSH, так и OpenSSL (зависимость).

yalu102 поставляется с dropbear.

Grg
источник
Этот твит был написан до выпуска 10.2 Jailbreak, поэтому я уверен, что это относится к крайне нестабильному 10.1.1 Jailbreak. У вас есть обновленный источник?
Wowfunhappy
Пожалуйста, следуйте совету grgarside: удалите OpenSSH. Смотрите мой пост для пошаговых инструкций, чтобы вернуть ваш ssh.
Колин
6

Вы должны использовать встроенный Dropbear. Начиная с Yalu Beta 6, вам нужно сначала SSH через USB. После изменения пароля вы можете включить Dropbear на других интерфейсах.

Linux или macOS:

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

сканирование

$ gandalf

Образец файла сопоставления

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

Запустить Гэндальфа с файлом сопоставления

$ 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

Перезагрузитесь или используйте launchctl

launchctl load /Library/LaunchDaemons/ssh10022.plist

Вопросы:

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

$ chmod go-w /var/mobile

Для отладки Dropbear: перенаправьте журналы Dropbear на stderr (в приведенном ниже примере запускается еще один экземпляр на порту 10023).

$ dropbear -E -p 10023
Colin
источник
6

Вы не можете подключиться к SSH через Wi-Fi с 10,2 джейлбрейк. Вам нужно ssh через 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, потому что автор jailbreak, qwertyoruiop специально говорит, что не следует устанавливать OpenSSH.
Колин
1
Я не мог подключиться, используя Dropbear, в моем случае мне пришлось установить OpenSSHпакет, поэтому я предположил, что, поскольку другие инструкции основаны на бета-версии джейлбрейка
Джозеф
Это неправда. Вы можете подключиться по SSH через Wi-Fi с 10,2 Jailbreak. Вам просто нужно обновить конфигурацию dropbear, чтобы она прослушивала все интерфейсы.
Дуг
@ Отредактируйте ответ и вставьте инструкции по включению SSH через Wi-Fi.
Джозеф
3

У @Colin есть отличный ответ для джейлбрейка Yulu, но я сделал немного иначе, что может быть полезно для людей. Его ответ сфокусирован на создании нового демона с новым именем, чтобы у вас было два демона с 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».

ПРИМЕЧАНИЕ. Если вы не знаете пароль пользователя root, используйте 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
Doug
источник
Спасибо за разъяснение всех ваших шагов! Это делает его намного более ориентированным на будущее. Я пытался> найти. | grep dropbear.plist, чтобы найти конфигурацию dropbear на джейлбрейке LiberIOS, но я понятия не имею, куда они помещают конфигурацию.
Колин
1
Попробуйте перейти к: / Library / LaunchDaemons / и посмотреть, сможете ли вы выяснить имя, которое они там использовали. Скорее всего, они использовали одно и то же имя везде. В этой папке находятся все сценарии демона, поэтому, если у них есть существующий демон, на него нужно будет ссылаться.
Даг
Забыл на cd / перед запуском найти. | grep dropbear.plist. Duh.
Колин
Это заставило меня понять, что мы могли бы просто предложить взломать Dropbear.plist в IPA Yalu, прежде чем загружать его на устройство с Impactor. Но опять же, хотя можно напрямую редактировать двоичные файлы .plist с помощью Xcode на macOS, я не знаю, существуют ли такие средства в Windows или Linux.
Колин
1
Да, это можно сделать: forensicswiki.org/wiki/Converting_Binary_Plists
Даг