Drozer’ı OS X El Capitan’a Yükleme


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:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
$ cat requirements.txt
cffi==1.1.2
cryptography==0.9.3
drozer==2.3.4
enum34==1.0.4
idna==2.0
ipaddress==1.0.14
protobuf==2.4.1
pyasn1==0.1.8
pycparser==2.14
pyOpenSSL==0.13
six==1.9.0
Twisted==10.2.0
zope.interface==4.1.2

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:

1
2
3
$ pip install virtualenvwrapper
$ mkvirtualenv drozer
$ workon drozer

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:

1
2
$ brew uninstall openssl #if installed already
$ brew install openssl

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):

1
2
3
4
$ wget https://pypi.python.org/packages/source/p/pyOpenSSL/pyOpenSSL-0.13.tar.gz
$ tar xzvf pyOpenSSL-0.13.tar.gz
$ cd pyOpenSSL-0.13
$ sed -i '' 's/X509_REVOKED_dup/X509_REVOKED_dupe/' OpenSSL/crypto/crl.c

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):

1
2
3
$ python setup.py build_ext -L/usr/local/opt/openssl/lib -I/usr/local/opt/openssl/include
$ python setup.py build
$ python setup.py install

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:

1
2
$ easy_install --allow-hosts pypi.python.org protobuf==2.4.1
$ easy_install twisted==10.2.0 #ignore any warnings/errors, it works

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:

1
$ easy_install ./drozer-2.3.4-py2.7.egg

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:

1
2
3
4
#!/Users/rflather/.virtualenvs/drozer/bin/python
# EASY-INSTALL-SCRIPT: 'drozer==2.3.4','drozer'
__requires__ = 'drozer==2.3.4'
__import__('pkg_resources').run_script('drozer==2.3.4', 'drozer')

Artık yolunuzda bir “drozer” komutunuz var ve onu her yerde çalıştırabilirsiniz:

Drozer OS X'te çalışıyor

Umarım bu birine yardımcı olur! Mutlu Android hacklemeler 🙂

-ropnop


Ayrıca bakınız



Source link