IOS uygulamaları İçin Test Ortamının Oluşturulması

BGA Security Wiki sitesinden
Şuraya atla: kullan, ara

Amaç:

Test edilebilir ortamın kurulması ve ilgili güvenlik testlerinin, bir an önce başlatılması

Lab Senaryosu:

Fiziksel olarak, bir iOS kurulu iPhone/iPad testi için cihaza erişim sağlanması. Test edilebilir ortamın hazırlanması için ilgili araçların kurulması.

Adımlar:

  • iPhone kendisi tarafından imzalanan uygulamaların kurulmasına izin verir. Pentest esnasında kurmamız gereken uygulamalar, iPhone tarafından onaylanmayan uygulamalardır. Bundan dolayı, gerekli uygulamaların ilgili kısıtlamalara takılmamadan kurulabilmesi için bu tür kod imzalama kısıtlamalarının(code signing restrictions) bypass edilmesi için cihaz Jailbreaking işlemine tabi tutulur. Bu işleme, cihaz rootlama da denilebilir. Jailbreaking bize iPhone cihaza, root haklarla tam olarak erişebilmeyi ve iPhone iOS tarafından onaylanmayan uygulamalarında kurulabilmesine izin vermektedir.
  • Cihaza Jailbreaking işleminden sonra iPhone tarafından imzalanmayan uygulamaların temini için Cydia isimli App Store(imzasız uygulama veritabanı) kullanılmalıdır. Jailbreaking işleminden sonra cihaza, her türlü imzasız uygulamaların kurulabiliyor olması, iPhone cihazı güvenlik açısından büyük bir risk alanına almaktadır.

Jailbreaking’e tabi tutulmayan bir cihaz üzerinde de uygulama test edilebilir, fakat bu bize bakış açımızı, kapsamımızı daraltır. Özetle cihaz Jailbreak edilerek karşılaşılabilecek tüm kısıtlamalar atlatılır, rahat çalışma imkanı sağlar ve uygulama daha detaylı ve eksiksiz test edilebilir. iPhone Jailbreak etmek için pwnage, readsn0v, greenposi0n gibi uygulamalar kullanılabilir.

  • Testlerde sıkça kullanılacak komutlar ve uygulamalar için Cydia’dan aşağıdaki uygulamalar kurulmalı.
  • OpenSSH – SSH üzerinden cihaza bağlantı kurmamıza izin verir.
  • Adv-cmds : ps, kill, finger gibi bir takım komutlar ile gelir
  • Sqlite3 : Sqlite veritabanı clientıdır. Sqlite veritabanlarına bağlanmak için kullanılır.
  • GNU Debugger: Reverse engineering ve run time analiz imkanı sağlar
  • Syslogd : iPhone loglarını görüntülememizi sağlar
  • Veency: veency clientı yardımı ile workstation üzerindeki iphone görüntülememizi sağlar
  • Tcpdump: Telefon üzerindeki network trafiğinin capture edilmesinde kullanılır.
  • com.ericasadun.utlities: plutil to view property list files
  • Grep: arama için
  • Odcctools: otool – object file görüntüleme aracı
  • Crackulous: iPhone apps decrypte etmek için
  • Hackulous: decrypte edilen apps(uygulamaların) kurulması için
  • iPhone bize sistem ve dosya dizin yapısını görüntülememiz için bir terminal vermemektedir. Bunun için iPhone Jailbreak edilir ve cihaz üzerine OpenSSH kurulur daha sonra iPhone üzerindeki bu OpenSSH Server’a herhangi bir SSH client (Putty, Cyberduck) kullanılarak, bağlantı kurulur ve komut satırından cihaza erişilir.
  • iPhone cihazlar ön tanımlı 2 kullanıcı ile birlikte gelirler; bunlar mobile ve root kullanıcılarıdır. iPhone üzerindeki kurulu tüm uygulamalar, mobile kullanıcı hakları ile çalışırlar. Fakat SSH ile biz cihaza root kullanıcısı ile bağlanabiliriz ve cihaz üzerinde tüm kontrolü root olarak elde edebiliriz. Ön tanımlı olarak tüm iphone cihazlarda, root ve mobile kullanıcı parolaları alpine olarak gelir. Eğer iPhone cihazımız Wi-Fi ağına bağlı ise doğrudan Wi-Fi üzerinden aldığı IP adresine, SSH ile bağlantı kurulabilir.

Eğer iPhone cihazımız wifi bağlı değil ise USB kablosu üzerinden de cihaza SSH bağlantısı yapılabilir. Bunun için iPhone tünel yazılımı kullanılmalıdır. http://code.google.com/p/iphonetunnel-usbmuxconnectbyport/ adresindeki uygulama kullanılabilir.

SSH bağlantısı:

MACBOOK:iphonetunnel root# ./itnl --lport 5555
[INFO] Waiting for new TCP connection on port 5555
[INFO] Waiting for device...
[INFO] Device connected: 9eda09e1f101cf07b6e3b1569c80b36a86198d44

Ardından ilgili port üzerinden cihaza bağlanılır:

n003-000-000-000:~ root# ssh -p 5555 root@127.0.0.1
root@127.0.0.1's password: 
iPad:~ root$ 
iPad:~ root$

Bir kere SSH bağlantısı kurulduktan sonra cihaz üzerinden doğrudan komutlar çalıştırılabilir. IOS yazılımı, MAC OS yazılımının kırpılmış bir sürümü olduğu için MAC komutlarının çoğu doğrudan SSH üzerinden iphone cihaz üzerinde de çalışacaktır.

  • Cihaza erişim sağlandıktan sonra belirlenen mobil güvenlik test adımları çerçevesinde testler başlatılabilir.