Cài đặt môi trường Pentest iOS (Phần 1)

Sẽ là một thiếu sót nếu mình chỉ nói về pentest ứng dụng Android nhưng lại không đề cập gì tới pentest ứng dụng iOS, bởi vì cả hai đều là những hệ điều hành phổ biến nhất dành cho các thiết bị di dộng. Tính ra cũng đã được 1 năm kể từ lần

Sẽ là một thiếu sót nếu mình chỉ nói về pentest ứng dụng Android nhưng lại không đề cập gì tới pentest ứng dụng iOS, bởi vì cả hai đều là những hệ điều hành phổ biến nhất dành cho các thiết bị di dộng. Tính ra cũng đã được 1 năm kể từ lần mình đăng bài viết cuối cùng trong series cài đặt môi trường Pentest Android. Có 3 lý do mà cho tới bây giờ mình mới viết về iOS.

Lí do đầu tiên, là mình mới bắt đầu tìm hiểu về pentest iOS hồi đầu năm nay thôi. Giữa ứng dụng Android và ứng dụng iOS có nhiều điểm chung do Google và Apple đều học hỏi lẫn nhau để tạo ra các tính năng tiện dụng hơn cho người dùng. Vì thế nếu đã biết một trong hai thì việc học thêm cái còn lại sẽ không quá xa lạ. Tuy nhiên giữa hai nền tảng Android và iOS vẫn có những sự khác biệt lớn, cần thời gian để nghiên cứu và làm quen.

Lí do thứ hai, là mình cần chờ thiết bị để có thể bắt đầu làm việc. Đối với pentest iOS app thì chúng ta cần có một thiết bị vật lý, có thể jailbreak được để pentest. Bên Android thì có nhiều chương trình “emulator” như: AVD, Genymotion, Bluestack, Nox,… nhưng lại không có iOS “emulator” nào miễn phí cả. Chương trình giả lập trong XCode thì chỉ là “simulator”, còn “emulator” dành cho iOS thì lại tính phí cao, trong khi mình thì nghèo.

Lí do thứ ba, là mình bắt đầu lười viết hơn 🤧🥹.

Lí do thì luôn đúng, thật may thì cuối cùng series về pentest iOS cũng được bắt đầu. Sau đây chúng ta sẽ cùng nhau cài đặt môi trường pentest ứng dụng iOS.

1. Jailbreak thiết bị test

1.1. Chọn mua thiết bị

Để pentest ứng dụng iOS thì chúng ta bắt buộc phải chuẩn bị một thiết bị iOS đủ yêu cầu, hoặc chấp nhận trả ít nhất 99$ mỗi tháng cho việc dùng giả lập của Corellium. Để lựa chọn thì tốt nhất là hãy mua lấy một chiếc iphone cũ. Ở Việt Nam hiện tại thì mua một chiếc iphone cũ không hề khó, thậm chí chúng ta còn có thể mua được chiếc iphone có ngoại hình đẹp như mới nếu chịu bỏ thêm tiền.

Cần lưu ý rằng không phải chiếc iphone nào cũng thích hợp. Vì chúng ta cần jailbreak nên sẽ phải tìm được chiếc iphone có thể jailbreak được. Đến hiện tại phần mềm jailbreak mới chỉ hỗ trợ tối đa đến iOS 13.5 thôi. Chúng ta có 1 tin tốt và 1 tin xấu:

  • Tin tốt là: chúng ta không cần bỏ ra nhiều tiền để mua thiết bị test. Chỉ cần 1 – 2 triệu để mua một chiếc iphone 6/6s/7/7s cũ là quá OK rồi.
  • Tin xấu là: để tìm được một chiếc iphone chưa update lên cao hơn iOS 13.5 không hề dễ.

Ngoài iphone ra thì mua ipad cũng được, tuy nhiên sẽ khó hơn mua iphone cũ, việc cài đặt ứng dụng cũng như jailbreak trên iphone cũng tiện nữa. Do đó tốt nhất chúng ta cứ tìm mua một chiếc iphone cũ, mình cũng phải đi hỏi bạn bè mãi mới tìm được một chiếc 6s chưa update iOS với giá 1 triệu.

Để biết hiện tại những phiên bản iOS nào có thể jailbreak, jailbreak kiểu nào và sử dụng công cụ gì, chúng ta sẽ kiểm tra tại trang web https://canijailbreak.com

Để hiểu thêm về jailbreak và các kiểu jailbreak có gì khác nhau thì các bạn có thể đọc bài viết của bạn mình về jailbreak: https://viblo.asia/p/jailbreaking-co-ban-cho-thiet-bi-ios-E375z2eq5GW

1.2. Jailbreak thiết bị

Phiên bản iOS mà con iphone 6s mình đang có là 13.5.1 => Mình có thể lựa chọn trong hai cách jailbreak:

  • Semi-tethered jailbreak bằng checkra1n.
  • Semi-untethered jailbreak bằng unc0ver.

1.2.1. Jailbreak bằng checkra1n

Mình thấy jailbreak bằng checkra1n đơn giản hơn unc0ver, tuy nhiên cần phải có máy tính để thực hiện. Các bước jailbreak như sau:

  • Bước 1: kết nối iphone với máy tính. Lưu ý là sử dụng cáp có thể truyền dữ liệu chứ không phải sợi cáp chỉ sạc.
  • Bước 2: khởi động checkra1n, trong phần “option” tích chọn safe mode.
  • Bước 3: bấm nút “start” để khởi động quá trình jailbreak trên checkra1n, sau đó làm theo hướng dẫn
  • Bước 4: chờ quá trình jailbreak hoàn thành

Sau khi jailbreak thành công, trong iphone sẽ có thêm 2 ứng dụng mới là checkra1n và Cydia.

Vì Semi-tethered jailbreak nên mỗi lần máy để qua đêm hết pin thì mình sẽ phải jailbreak lại.

1.2.2. Jailbreak bằng unc0ver

Jailbreak bằng unc0ver có thể thực hiện ngay trên thiết bị iOS luôn, tuy nhiên cần phải cài unc0ver vào thiết bị trước. Chúng ta có thể cài unc0ver vào thiết bị thông qua Sideloading (tham khảo thêm về cách Sideloading tại đây).

Link tải unc0ver: https://unc0ver.dev

Ở đây mình sẽ sideload bằng ứng dụng Sideloadly: link tải Sideloadly. Nếu như cài trên MacOS thì có thể chúng ta sẽ nhận được thông báo yêu cầu bật plugin Sideloadly trong ứng dụng Mail để có thể cài đặt ứng dụng vào thiết bị iOS.

Để bật plugin thì chúng ta truy cập cài đặt tại Mail > Preferences... > General > Manage Plug-ins... Sau đó tích vào ô Sideload.mailbundle, cuối cùng bấm vào nút Apply and Restart Mail là được.

Bây giờ thì chúng ta có thể sử dụng ứng dụng Sideloadly bình thường, giao diện của ứng dụng rất tối giản và trực quan.

Các bước thực hiện như sau:

  • B1: kết nối thiết bị iOS với máy tính qua cáp truyền dữ liệu.
  • B2: chọn thiết bị trong ứng dụng Sideloadly.
  • B3: nhập email của tài khoản iCloud.
  • B4: chọn tệp tin ipa của ứng dụng muốn cài đặt.
  • B5: bấm nút start.

Sau khi Sideload ứng dụng thành công, trong thiết bị của chúng ta sẽ có thêm ứng dụng unc0ver. Vì ứng dụng không được cài từ app store nên sẽ chưa được chạy ngay. Chúng ta cần vào cài đặt để cho phép chạy ứng dụng: Cài đặt > Cài đặt chung > Quản lý Cấu hình & Thiết bị.

Chúng ta chọn Apple ID tương ứng với email đã nhập khi cài đặt ứng dụng qua Sideloadly.

Bấm vào dòng chữ màu xanh “Tin cậy…”, sau đó tiến hành xác nhận lựa chọn.

Giờ chỉ cần mở ứng dụng unc0ver lên và bấm nút Jailbreak, sau đó ngồi đợi ứng dụng hoàn thành là được.

Theo thông tin trên canijailbreak thì unc0ver là Semi-untethered jailbreak, tức là khi chúng ta tắt nguồn sau đó khởi động lại thiết bị thì sẽ không bị mất jailbreak. Nhưng ở con iporn 6s của mình thì vẫn bị mất jailbreak như khi dùng checkra1n. Được cái nếu không có checkra1n thì chúng ta vẫn có thể dễ dàng jailbreak thiết bị vì unc0ver sẽ không tự động xoá.

2. Cài đặt các gói tin vào thiết bị test

Sau khi jailbreak thành công thì chúng ta đã có thể sử dụng Kho ứng dụng Cydia để cài đặt thêm các ứng dụng và gói tin mà bình thường không thể cài đặt qua app store. Chúng ta sẽ cài đặt thêm các gói tin hỗ trợ cho quá trình pentest qua Cydia.

2.1. OpenSSH

Với pentest Android app thì có công cụ ADB để hỗ trợ chúng ta kết nối với thiết bị Android, nhưng với pentest iOS app thì mình chưa thấy có công cụ giống như ADB. Chúng ta không thể chỉ cắm cáp USB truyền dữ liệu vào máy tính, sau đó khởi động công cụ kết nối là được. Với iOS chúng ta sẽ phải cài OpenSSH từ kho ứng dụng Cydia, sau đó SSH vào thiết bị iphone.

Ở ngay trang chủ cũng có hướng dẫn cài và sử dụng OpenSSH rất đầy đủ.

Tại tab “Tìm kiếm” nhập vào từ khoá “openssh”, chúng ta sẽ chỉ cài gói tin đầu tiên như đã khoanh trong hình.

Cài gói tin này sẽ tự động cài thêm các chương trình thích hợp, gồm:

  • OpenSSH
  • OpenSSH Clients
  • OpenSSH Global Listerner
  • OpenSSH Server Binaries

Sau khi bấm nút “xác nhận” thì công cụ sẽ bắt đầu cài đặt.

Sau khi quay lại Cydia, chúng ta sẽ thấy OpenSSH đã được cài đặt thành công.

Từ giờ chúng ta đã có thể SSH vào thiết bị iphone.

2.1.1. Cách lấy IP của điện thoại để SSH

Trước tiên, để có thể SSH được thì máy tính và thiết bị iphone cần vào chung một mạng. Cách nhanh nhất để đảm bảo việc này là phát wifi bằng máy tính, sau đó thiết bị iphone sẽ tham gia.

Khi máy tính và thiết bị iphone đã chung một dải mạng rồi, chúng ta sẽ vào phần cài đặt trên thiết bị iphone => chọn mục mạng wifi => chọn cấu hình mạng wifi đang sử dụng.

2.1.2. SSH vào thiết bị iphone

Khi có được địa chỉ IP của thiết bị iphone rồi thì chúng ta có thể SSH vào máy bằng tài khoản root/alpine.

2.1.3. Đổi mật khẩu của tài khoản root

Theo khuyến nghị từ Cydia thì chúng ta nên thay đổi mật khẩu root để tránh việc có người khác SSH được vào thiết bị iphone đã jailbreak của chúng ta. Tuy nhiên mình nghĩ máy test thì cũng chẳng cần thay đổi làm gì vì chúng ta sẽ không kết nối với mạng nào khác trừ mạng wifi do chính chúng ta phát ra. Tuy nhiên nếu muốn yên tâm hơn thì nên đổi mật khẩu tài khoản root bằng command passwd.

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ