Cách bật OpenSSh trên iOS 10.2


9

Tôi đã bẻ khóa thành công iPhone 6s chạy trên iOS 10.2.

Tôi đã cài đặt OpenSSH thông qua Cydia và thay đổi mật khẩu mặc định của mình qua MobileTerminal.

Vấn đề duy nhất là, khi tôi chạy ssh root@my_iPhone_ip_addr, nó chỉ bị treo và không bao giờ kết nối.

Tôi đã thử ứng dụng SSH chuyển đổi bàn đạp, tuy nhiên nó vẫn bị treo.

Có cách nào để tôi có thể kích hoạt SSH trên điện thoại của mình thông qua lệnh đầu cuối hoặc một số cách khác không?


Tôi sử dụng Đường hầm iPhone để kết nối với thiết bị của mình qua ssh qua USB: code.google.com/archive/p/iphonetunnel-mac/doads
newenglander

Câu trả lời:


9

Dòng tweet này được thực hiện trước khi phát hành bản Bẻ khóa 10.2, vì vậy tôi khá chắc chắn rằng nó đề cập đến bản Bẻ khóa 10.1.1 rất không ổn định. Bạn có một nguồn cập nhật?
Wowfunhappy

Vui lòng làm theo lời khuyên của grgarside: gỡ cài đặt OpenSSH. Xem bài viết của tôi để được hướng dẫn từng bước để lấy lại ssh của bạn.
Colin

6

Bạn nên sử dụng Dropbear tích hợp. Kể từ Yalu Beta 6, trước tiên bạn cần SSH qua USB. Sau đó, sau khi thay đổi mật khẩu, bạn có thể kích hoạt Dropbear trên các giao diện khác.

Linux hoặc macOS:

  1. Tải về nhị phân gandalf (tôi đã không biên dịch may mắn) từ trang github ocaml-usbmux . macOS: gandalf_darwin_10_11_x86_64
  2. Kết nối thiết bị của bạn qua cáp USB và quét tìm thiết bị.
  3. Đặt udid vào một tập tin ánh xạ. Đảm bảo device_port 22 (ssh) được ánh xạ!
  4. Chạy gandalf với tệp ánh xạ của bạn
  5. SSH tới local_port tương ứng với device_port 22 trong tệp ánh xạ của bạn.
  6. Đăng nhập bằng mật khẩu alpine.
  7. THAY ĐỔI MẬT KHẨU CỦA BẠN!!!

Quét

$ gandalf

Tệp bản đồ mẫu

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

Chạy Gandalf với tệp ánh xạ

$ gandalf -m myMappingFile.txt

SSH tới cổng 2000

$ ssh mobile@localhost -p 2000

Thay đổi mật khẩu

$ passwd
$ su
$ passwd root

Bây giờ bạn đang ở trong thiết bị iOS của mình ( mật khẩu của bạn đã được thay đổi, phải không? ), Bạn có thể bật Dropbear trên các giao diện khác như sau.

  1. Tạo một tệp LaunchDaemon để khởi chạy phiên bản thứ hai của Dropbear.
  2. Khởi động lại hoặc sử dụng launchctl load

Tạo tập tin LaunchDaemon:

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

Dán cái này vào 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>

Nhập Ctrl-D để kết thúc đầu vào. Bây giờ tạo tệp ssh10022.plist

Khởi động lại hoặc sử dụng launchctl

launchctl load /Library/LaunchDaemons/ssh10022.plist

Các vấn đề:

Dropbear không thích các quyền mặc định của iOS trên thư mục nhà di động, vì vậy xác thực khóa SSH không hoạt động. Sau mỗi lần khởi động lại, tôi phải đăng nhập bằng mật khẩu và sửa các quyền:

$ chmod go-w /var/mobile

Để gỡ lỗi Dropbear: Chuyển hướng bản ghi Dropbear sang stderr (ví dụ bên dưới chạy một phiên bản khác trên cổng 10023).

$ dropbear -E -p 10023

6

Bạn không thể kết nối với ssh qua wifi với bản bẻ khóa 10.2. Bạn cần ssh qua USB. Chúng là một số tùy chọn nhưng dễ nhất là sử dụng iproxy.

  1. Cài đặt iproxy

    brew install libimobiledevice

  2. Trên thiết bị đầu cuối bây giờ chạy lệnh sau.

    iproxy 2222 22

    Điều này sẽ cho phép bạn chuyển tiếp tất cả lưu lượng truy cập từ cổng 2222 sang cổng 22 qua USB

  3. Bây giờ bạn có thể kết nối với iPhone bằng cách chạy ssh

    ssh root@localhost -p 2222

Lưu ý rằng bạn kết nối với localhostkhông phải địa chỉ IP của điện thoại của bạn. Nếu mọi thứ đều ổn, bạn sẽ được trình bày với dấu nhắc ssh.

Nếu nó không hoạt động, kiểm tra xem ssh có chạy trên iPhone không bằng cách chạy

telnet <iphone-ip-address-here> 22

Nếu bạn không thể kết nối, hãy đảm bảo bạn đã cài đặt opensshgói từ Cydia.


Có lẽ không nên đề xuất cài đặt OpenSSH vì tác giả của bản bẻ khóa, qwertyoruiop đặc biệt nói không cài đặt OpenSSH.
Colin

1
Tôi không thể kết nối bằng cách sử dụng Dropbear, trong trường hợp của tôi, tôi đã phải cài đặt OpenSSHgói, đó là lý do tôi đề xuất rằng vì các hướng dẫn khác dường như dựa trên bản bẻ khóa beta
Joseph

Đây không phải là sự thật. Bạn CÓ THỂ kết nối trên SSH qua Wifi với bản Bẻ khóa 10.2. Nó chỉ yêu cầu bạn cập nhật cấu hình dropbear để nghe nó trên tất cả các giao diện.
Doug

@Doug chỉnh sửa câu trả lời và đặt hướng dẫn bật SSH qua wifi.
Joseph

3

@Colin Có một câu trả lời tuyệt vời cho bản bẻ khóa Yulu, nhưng tôi đã làm những điều hơi khác một chút có thể hữu ích cho mọi người. Câu trả lời của anh tập trung vào việc tạo một trình nền mới với một tên mới để bạn có hai trình nền chạy SSH một cách hiệu quả. Một cho USB và một cho các kết nối TCP khác. Tôi muốn một người nghe mà nghe trên tất cả các giao diện. Tôi cũng đã ở trên Windows và cần một cái gì đó hoạt động với điều đó, điều mà Galdolf không làm được. Kết quả là tôi đã đi với Python Script , mà tôi đã rẽ nhánh để đảm bảo nó không bao giờ biến mất trong tôi.

Để sử dụng, hãy chạy:

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

Trên đây ánh xạ cổng cục bộ 2222 sang cổng từ xa 22. Sau khi thiết lập xong, bạn có thể sử dụng tiện ích SSH yêu thích của mình để kết nối. Tôi đã sử dụng Putty .

  • Máy chủ: 127.0.0.1
  • Cảng: 2222

Tên người dùng mặc định của "root" và mật khẩu của "alpine", nhưng tên người dùng của "mobile" và mật khẩu của "alpine" cũng có thể được sử dụng để kết nối.

LƯU Ý: Nếu bạn không biết mật khẩu gốc, hãy sử dụng Filza để thay đổi quyền của /etc/master.passwd thành 666, sau đó thông qua SSH với tư cách là người dùng di động hoặc sử dụng trình chỉnh sửa tệp yêu thích của bạn, chỉnh sửa tệp đó để sao chép hàm băm từ "di động" sang "root" để tạo mật khẩu giống nhau. (Hàm băm cho "alpine" là "/ smx7MYTQIi2M", nếu cần). Sau đó, bạn có thể đăng nhập với quyền root hoặc sử dụng su.

Khi bạn đã đăng nhập, bạn sẽ muốn tìm các bản sao của droist.plist hiện có trên máy của bạn. Có thể có nhiều cách hiệu quả hơn để làm điều này, nhưng tôi đã sử dụng lệnh sau:

find . | grep dropbear.plist

Mà mang lại:

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

Mục đầu tiên là daemon hoạt động, nhưng mục thứ hai quan trọng hơn. Đó là daemon mà Yulu đặt đúng chỗ mỗi khi bạn chạy jailbreak (Bạn phải làm gì với mỗi lần khởi động lại). Nếu bạn chỉ chỉnh sửa / L Library / LatunchDaemons /dropbear.plist, nó sẽ được thay thế mỗi khi bạn khởi động lại.

Do đó, chúng tôi sẽ chỉnh sửa tệp được đóng gói bằng Yulu, nhưng nếu bạn gửi tệp, bạn sẽ nhận thấy tệp đó ở định dạng PLIST nhị phân. Để khắc phục điều này, chúng tôi cần Erica Utility để có được plutil. Sau đó bạn có thể chạy:

plutil -xml dropbear.plist

Điều này sẽ chuyển đổi dropbear.plist sang định dạng XML. Một khi điều này được thực hiện, bạn có thể chỉnh sửa các tập tin trong bất kỳ trình soạn thảo văn bản. Tôi đã sử dụng nano để chỉnh sửa thực tế.

ví dụ

nano dropbear.plist

Khi bạn đang chỉnh sửa tệp bạn muốn thoát khỏi "localhost:" khỏi mục nhập chuỗi cuối cùng. Điều này sẽ làm cho người nghe chạy trên tất cả các giao diện thay vì chỉ giao diện loopback (chỉ có sẵn qua USB). Kết quả là tập tin của bạn trở thành:

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

Khi bạn đã hoàn tất, bạn sẽ muốn đặt lại tệp ở định dạng nhị phân:

plutil -binary dropbear.plist

Tại thời điểm này, tôi khuyên bạn nên khởi động lại thiết bị và xác thực rằng tệp dropbear.plist của Yalu được sao chép chính xác khi bạn bẻ khóa lại:

ví dụ

reboot

Sau khi khởi động lại, bạn sẽ có thể SSH sử dụng địa chỉ IP điện thoại của bạn và cổng 22 tiêu chuẩn.

ví dụ

  • Máy chủ: (IP Từ Cài đặt -> WiFi -> (TÊN WIFI)
  • Cảng: 22

Cảm ơn đã đánh vần tất cả các bước của bạn! Điều đó làm cho nó nhiều bằng chứng trong tương lai. Tôi đã thử> tìm. | grep dropbear.plist để tìm cấu hình dropbear trên bản bẻ khóa LiberIOS nhưng tôi không biết họ đặt cấu hình ở đâu.
Colin

1
Hãy thử điều hướng đến: / Library / LaunchDaemons / và xem liệu bạn có thể tìm ra tên mà họ đã sử dụng trong đó không. Nhiều khả năng họ đã sử dụng cùng một tên ở khắp mọi nơi. Thư mục đó là nơi chứa tất cả các tập lệnh daemon, vì vậy nếu chúng có một daemon hiện có, nó sẽ phải được tham chiếu ở đó.
Doug

Quên cd / trước khi chạy tìm. | grep dropbear.plist. Tât nhiên.
Colin

Điều này khiến tôi nhận ra rằng chúng tôi chỉ có thể đề xuất hack Dropbear.plist trong Yalu IPA trước khi chúng tôi tải nó lên thiết bị với Impactor. Nhưng sau đó một lần nữa trong khi người ta có thể trực tiếp chỉnh sửa các tệp .plist nhị phân bằng Xcode trên macOS, tôi không biết liệu các phương tiện đó có tồn tại trong Windows hoặc Linux hay không.
Colin

1
Có, nó có thể được thực hiện: forensicswiki.org/wiki/Converting_Binary_Plists
Doug
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.