Arka plan
Değerlendirme yaparken mümkün olduğunca OS X’i kullanmayı seviyorum, ancak yakın zamanda yapılan bir Android testinde Drozer’ı kurarken çok zorlandım. Sonunda çalıştırmayı başardım ve başka birisinin de benim yaşadığım sorunların aynısıyla karşılaşması durumunda adımları paylaşacağımı düşündüm.
Eğer aşina değilseniz Drozer, Android için harika bir saldırı ve test çerçevesidir. Bununla ilgili daha fazla bilgiyi buradan okuyabilirsiniz: https://labs.mwrinfosecurity.com/tools/drozer/ veya ana GitHub sayfasında https://github.com/mwrlabs/drozer
Python’da yazılmıştır ve yumurta dosyasını indirebilirsiniz. Android testlerimin çoğunu Mac’ten (Genymotion ve Burp ile) yaptığım için, Drozer yumurtasını indirip yerel Python’umla kuracağımı düşündüm. Kurulum talimatlarında OS X’ten bahsedilmiyor ancak Linux için yeterince basit görünüyordu (sadece easy_install kullanarak).
Çözülmesi zor olan pek çok bağımlılık sorunu olduğu ortaya çıktı. Sonunda çalışır duruma getirmek için attığım adımların üzerinden geçeceğim.
Bağımlılık Cehennemi
Yumurtayı indirip Mac’te “ easy_install”ı kullanmayı denerseniz, bağımlılıkları yüklemeye çalışırken bazı muhteşem hata kodları alırsınız. Drozer aşağıdaki python modüllerini gerektirir:
|
|
Sorunların kökü pyOpenSSL’dedir. OS X El Capitan artık OpenSSL yüklü olarak gelmiyor ve pyOpenSSL’yi derlemeye çalışmak gerekli başlıkları bulamadığı için başarısız olacak.
Bağımlılıkları Yükleme
Öncelikle Mac’in yerleşik python’unu kullanmaya çalışmayın. Python’u homebrew ile yükleyin ($ brew install python
) ve sudo’ya ihtiyaç duymadan modülleri “pip install” yapabildiğinizden emin olun. İkinci olarak, Drozer’ın belirli sürümlere sabit kodlanmış bazı bağımlılıkları olduğundan, her şeyi bir python sanal ortamına yüklemeyi tercih ettim. Virtualenv’leri oluşturmak ve yönetmek için virtualenvwrapper’ı kullanmayı tercih ediyorum:
|
|
OpenSSL’yi yükleyin. OpenSSL’i OS X El Capitan’a tekrar yüklemek için demlemeyi kullanın. Zaten mevcutsa kaldırın ve yeniden yükleyin:
|
|
pyOpenSSL’yi derleyin. Ne yazık ki Drozer, pyOpenSSL’nin belirli bir sürümünü gerektiriyor ve bu sürümde, başarılı bir şekilde derlenmesini engelleyen bir yazım hatası var. Benzer bir hatayı ve burada düzeltmeyi görene kadar bunu anlamam çok zaman aldı. PyOpenSSL v0.13 kaynağını indirmemiz ve ardından yazım hatasını düzeltmemiz gerekiyor (sed kullanarak):
|
|
Sed komutu yazım hatasını düzeltir (‘dup’ ve ‘dupe’). Daha sonra pyOpenSSL oluşturmamız gerekiyor, ancak Brew’dan yüklediğimiz OpenSSL başlıklarının konumunu belirtmemiz gerekiyor (build_ext’i ‘-L’ ve ‘-I’ seçeneklerini kullanarak):
|
|
Not: oluşturma/kurma adımlarını gerçekleştirmeden önce drozer virtualenv’inizde olduğunuzdan emin olun!
Diğer bağımlılıkları yükleyin. pyOpenSSL v0.13 virtualenv’e yüklendikten sonra diğer bağımlılıkları yüklemek için easy_install’ı kullanın:
|
|
Drozer’ı yükleyin. Son olarak en güncel Drozer Egg dosyasını buradan indirin: https://www.mwrinfosecurity.com/products/drozer/. Hala drozer virtualenv’inizin içinde, yüklemek için easy_install’ı kullanın. Her şey yolunda giderse hatasız çalışması gerekir:
|
|
Drozer’ı Çalıştırmak
Artık drozer’ı oluşturduğunuz sanal ortamdan her zaman çalıştırabilirsiniz. Sanal ortamlara geçmekten bıktığım için, drozer’ı bulunduğu sanal ortamdan çalıştırmak için sadece bir kısayol oluşturmak mümkün.
Dosyayı oluştur /usr/local/bin/drozer
(veya kısayolun olmasını istediğiniz yer). Shebang için, drozer sanal ortamı için python çalıştırılabilirliğinin mutlak yolunu koyun. Dosya şu şekilde görünmelidir:
|
|
Artık yolunuzda bir “drozer” komutunuz var ve onu her yerde çalıştırabilirsiniz:
Umarım bu birine yardımcı olur! Mutlu Android hacklemeler 🙂
-ropnop