Cara mengaktifkan OpenSSh di iOS 10.2


9

Saya telah berhasil melakukan jailbreak pada iPhone 6s saya yang berjalan di iOS 10.2.

Saya telah menginstal OpenSSH melalui Cydia dan mengubah kata sandi standar saya melalui MobileTerminal.

Satu-satunya masalah adalah, ketika saya berlari ssh root@my_iPhone_ip_addr, itu hanya hang dan tidak pernah terhubung.

Saya telah mencoba aplikasi toshle toggle SSH, namun masih hang.

Apakah ada cara saya mengaktifkan SSH di ponsel saya melalui perintah terminal atau cara lain?


Saya menggunakan iPhone Tunnel untuk terhubung ke perangkat saya melalui ssh melalui USB: code.google.com/archive/p/iphonetunnel-mac/downloads
newenglander

Jawaban:


9

Tweet ini dibuat sebelum rilis Jailbreak 10.2, jadi saya cukup yakin ini merujuk pada Jailbreak 10.1.1 yang sangat tidak stabil. Apakah Anda memiliki sumber yang diperbarui?
Wowfunhappy

Silakan ikuti saran grgarside: uninstall OpenSSH. Lihat posting saya untuk petunjuk langkah demi langkah untuk mendapatkan kembali ssh Anda.
Colin

6

Anda harus menggunakan Dropbear bawaan. Pada Yalu Beta 6, Anda harus terlebih dahulu SSH melalui USB. Kemudian setelah mengubah kata sandi Anda, Anda dapat mengaktifkan Dropbear di antarmuka lain.

Linux atau macOS:

  1. Unduh binari gandalf (saya tidak dapat menyusun kompilasi) dari halaman github ocaml-usbmux . macOS: gandalf_darwin_10_11_x86_64
  2. Hubungkan perangkat Anda melalui kabel USB, dan pindai untuk itu.
  3. Masukkan udid ke dalam file pemetaan. Pastikan device_port 22 (ssh) dipetakan!
  4. Jalankan gandalf dengan file pemetaan Anda
  5. SSH ke local_port yang sesuai dengan device_port 22 di file pemetaan Anda.
  6. Masuk dengan alpine kata sandi.
  7. GANTI PASSWORD ANDA !!!

Pindai

$ gandalf

Contoh File Pemetaan

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

Jalankan Gandalf dengan Memetakan File

$ gandalf -m myMappingFile.txt

SSH ke port 2000

$ ssh mobile@localhost -p 2000

Ubah kata sandi

$ passwd
$ su
$ passwd root

Sekarang Anda berada di perangkat iOS Anda ( kata sandi Anda telah diubah, bukan? ) Anda dapat mengaktifkan Dropbear pada antarmuka lain sebagai berikut.

  1. Buat file LaunchDaemon untuk meluncurkan instance Dropbear kedua.
  2. Mulai ulang atau gunakan launchctl load

Buat file LaunchDaemon:

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

Rekatkan ini ke 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>

Ketik Ctrl-D untuk mengakhiri input. Itu sekarang membuat file ssh10022.plist

Mulai ulang atau gunakan launchctl

launchctl load /Library/LaunchDaemons/ssh10022.plist

Masalah:

Dropbear tidak menyukai izin default iOS di direktori home mobile, jadi otentikasi kunci SSH tidak berfungsi. Setelah setiap reboot saya harus masuk dengan kata sandi dan memperbaiki izin:

$ chmod go-w /var/mobile

Untuk men-debug Dropbear: Redirect Dropbear log ke stderr (contoh di bawah ini menjalankan instance lain pada port 10023).

$ dropbear -E -p 10023

6

Anda tidak dapat terhubung ke ssh over wifi dengan jailbreak 10.2. Anda perlu ssh melalui USB. Ada beberapa opsi tetapi yang paling mudah adalah menggunakan iproxy.

  1. Instal iproxy

    brew install libimobiledevice

  2. Di terminal sekarang jalankan perintah berikut.

    iproxy 2222 22

    Ini akan memungkinkan Anda untuk meneruskan semua lalu lintas dari port 2222 ke port 22 melalui USB

  3. Sekarang Anda dapat terhubung ke iPhone dengan menjalankan ssh

    ssh root@localhost -p 2222

Perhatikan Anda terhubung ke localhostbukan alamat ip ponsel Anda. Jika semuanya berjalan dengan baik, Anda harus diberi ssh prompt.

Jika tidak berhasil, periksa apakah ssh sedang berjalan di iPhone dengan menjalankan

telnet <iphone-ip-address-here> 22

Jika Anda tidak dapat terhubung, pastikan Anda menginstal opensshpaket dari Cydia.


Mungkin sebaiknya tidak menyarankan menginstal OpenSSH karena penulis jailbreak, qwertyoruiop secara khusus mengatakan tidak menginstal OpenSSH.
Colin

1
Saya tidak dapat terhubung menggunakan Dropbear, dalam kasus saya saya harus menginstal OpenSSHpaket, itulah alasan saya menyarankan bahwa karena instruksi lain tampaknya didasarkan pada jailbreak beta
Joseph

Ini tidak benar. Anda BISA terhubung pada SSH melalui Wifi dengan Jailbreak 10.2. Itu hanya mengharuskan Anda untuk memperbarui konfigurasi dropbear agar mendengarkan di semua antarmuka.
Doug

@Doug edit jawabannya dan letakkan instruksi untuk mengaktifkan SSH melalui wifi.
Joseph

3

@Colin Memiliki jawaban yang bagus untuk jailbreak Yulu, tapi saya melakukan hal-hal yang sedikit berbeda yang mungkin berguna bagi orang-orang. Jawabannya berfokus pada pembuatan daemon baru dengan nama baru sehingga secara efektif Anda memiliki dua daemon yang menjalankan SSH. Satu untuk USB dan satu untuk koneksi TCP lainnya. Saya ingin satu pendengar yang mendengarkan semua antarmuka. Saya juga menggunakan Windows dan membutuhkan sesuatu yang bisa mengatasinya, yang tidak dilakukan Galdolf. Akibatnya saya pergi dengan Skrip Python , yang saya garpu untuk memastikan itu tidak pernah hilang pada saya.

Untuk menggunakan ini, jalankan:

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

Peta lokal port 2222 di atas ke port jarak jauh 22. Setelah pengaturan ini, Anda dapat menggunakan utilitas SSH favorit Anda untuk terhubung. Saya menggunakan Putty .

  • Tuan rumah: 127.0.0.1
  • Port: 2222

Nama pengguna default "root" dan kata sandi "alpine", tetapi nama pengguna "mobile" dan kata sandi "alpine" juga dapat digunakan untuk terhubung.

CATATAN: Jika Anda tidak tahu kata sandi root, gunakan Filza untuk mengubah izin /etc/master.passwd ke 666, lalu melalui SSH sebagai pengguna seluler, atau menggunakan editor file favorit Anda, edit file itu untuk menyalin hash dari "mobile" ke "root" untuk membuat kata sandi yang sama. (Hash untuk "alpine" adalah "/ smx7MYTQIi2M", jika diperlukan). Anda kemudian harus bisa login sebagai root, atau menggunakan su.

Setelah masuk, Anda akan ingin menemukan salinan droplist.plist yang saat ini ada di mesin Anda. Mungkin ada cara yang lebih efisien untuk melakukan ini, tetapi saya menggunakan perintah berikut:

find . | grep dropbear.plist

Yang menghasilkan:

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

Entri pertama adalah daemon aktif, tetapi entri kedua lebih penting. Ini adalah daemon yang Yulu lakukan setiap kali Anda menjalankan jailbreak (Yang harus Anda lakukan dengan setiap reboot). Jika Anda hanya mengedit /Library/LaunchDaemons/dropbear.plist, itu akan diganti setiap kali Anda reboot.

Sebagai hasilnya kita akan mengedit salah satu yang dikemas dengan Yulu, tetapi jika Anda cat file Anda akan melihat dalam format binary PLIST. Untuk memperbaikinya kita perlu Erica Utilities untuk mendapatkan plutil. Anda kemudian dapat menjalankan:

plutil -xml dropbear.plist

Ini akan mengonversi dropbear.plist ke format XML. Setelah ini selesai, Anda dapat mengedit file dalam editor teks apa pun. Saya menggunakan nano untuk melakukan pengeditan yang sebenarnya.

misalnya

nano dropbear.plist

Saat Anda mengedit file yang ingin Anda singkirkan dari "localhost:" dari entri string terakhir. Ini akan membuat pendengar berjalan di semua antarmuka, bukan hanya antarmuka loopback (Yang hanya tersedia melalui USB). Akibatnya file Anda menjadi:

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

Setelah selesai, Anda ingin mengembalikan file dalam format biner:

plutil -binary dropbear.plist

Pada titik ini saya sarankan Anda me-reboot perangkat dan memvalidasi bahwa file dropbear.plist Yalu disalin dengan benar ketika Anda melakukan jailbreak ulang:

misalnya

reboot

Setelah reboot, Anda seharusnya dapat menggunakan SSH alamat IP ponsel Anda dan port standar 22.

misalnya

  • Host: (Pengaturan IP Dari -> WiFi -> (WIFI NAME)
  • Pelabuhan: 22

Terima kasih telah menguraikan semua langkah Anda! Itu membuatnya jauh lebih tahan masa depan. Saya mencoba> menemukan. | grep dropbear.plist untuk menemukan konfigurasi dropbear pada jailbreak LiberIOS tapi saya tidak tahu di mana mereka meletakkan konfigurasi.
Colin

1
Coba navigasikan ke: / Library / LaunchDaemons / dan lihat apakah Anda dapat mengetahui nama yang mereka gunakan di sana. Kemungkinan besar mereka menggunakan nama yang sama di mana-mana. Folder itu adalah tempat semua skrip daemon berada, jadi jika mereka memiliki daemon yang ada, ia harus dirujuk di sana.
Doug

Lupa ke cd / sebelum menjalankan find. | grep dropbear.plist. Duh.
Colin

Ini membuat saya sadar bahwa kami hanya bisa menyarankan meretas Dropbear.plist di Yalu IPA sebelum kami mengunggahnya ke perangkat dengan Impactor. Tetapi sekali lagi sementara orang dapat langsung mengedit file .plist biner dengan Xcode pada macOS, saya tidak tahu apakah ada fasilitas seperti itu di Windows atau Linux.
Colin

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.