Installing Drozer on macOS Catalina - (not)Unique experience

Installing Drozer on macOS Catalina


In general, I don’t use Drozer. And using this tool on macOS is unusual for me. If I do some “pentest things” I just take my Kali Linux with pre-installed Drozer and use it there. But the day has come, and I decided to install Drozer on my macOS. It was a real hell =)

I spent a lot of time trying to make it work. Eventually, I had to rewrite a piece of class loader script… A living hell! When everything started working right, I came up with a better way of installing Drozer on macOS and removed all this stuff . In fact, there are two good ways to do it. The Docker-way and the following one

You need to download the latest release. Don’t build this app from sources, it’s a wrong way!

$ mkdir drozer
$ wget https://github.com/FSecureLABS/drozer/releases/download/2.4.4/drozer-2.4.4-py2-none-any.whl

Create virtual environment with pipenv and install required dependencies.

$ pipenv --python 2.7
$ pipenv shell
(drozer) $ pipenv install protobuf
(drozer) $ pipenv install pyOpenSSL
(drozer) $ pipenv install Twisted
(drozer) $ pipenv install drozer-2.4.4-py2-none-any.whl

You can also use this Pipfile to install all these things with one shot

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
protobuf = "*"
pyopenssl = "*"
twisted = "*"
drozer = {path = "./drozer-2.4.4-py2-none-any.whl"}

[requires]
python_version = "2.7"

Let’s check if everything works fine

(drozer) $ drozer console connect --server <smartphone ip>


            ..                    ..:.
           ..o..                  .r..
            ..a..  . ....... .  ..nd
              ro..idsnemesisand..pr
              .otectorandroidsneme.
           .,sisandprotectorandroids+.
         ..nemesisandprotectorandroidsn:.
        .emesisandprotectorandroidsnemes..
      ..isandp,..,rotectorandro,..,idsnem.
      .isisandp..rotectorandroid..snemisis.
      ,andprotectorandroidsnemisisandprotec.
     .torandroidsnemesisandprotectorandroid.
     .snemisisandprotectorandroidsnemesisan:
     .dprotectorandroidsnemesisandprotector.

drozer Console (v2.4.4)
dz> run app.package.debuggable 
Package: com.mwr.dz
  UID: 10095
  Permissions:
   - android.permission.INTERNET

dz> 

Hooray! We made it work!


See also