daiki0508'足跡

Ubutnu20.04にDrozerをダウンロード・インストールしてみた

Androidの動的解析を行う際にDrozerというツールが便利という話を聞いたのでダウンロード・インストールしてみようと思ったのですが、かなり手間取ったので記事に残しておくことにしました。

Drozerとは

Drozer(以前のMercury)は、Android向けの主要なセキュリティテストフレームワークです。

また、Drozerを使用するとアプリの役割を引き受け、Dalvik VM、他のアプリのIPCエンドポイント、および基盤となるOSと対話することで、アプリやデバイスのセキュリティの脆弱性を検索できます。

Drozerは、Androidの公開エクスプロイトを使用、共有、理解するのに役立つツールを提供します。これは、悪用またはソーシャルエンジニアリングを通じてDrozerAgentをデバイスに展開するのに役立ちます。イタチ(MWRの高度な悪用ペイロード)を使用すると、Drozerは、完全なエージェントをインストールするか、実行中のプロセスに限定されたエージェントを挿入するか、リモートアクセスツール(RAT)として機能するリバースシェルを接続することにより、使用可能なアクセス許可を最大化できます。

私の初期環境

仮想OS:Ubuntu20.04
Python 3.8.5
openjdk version "11.0.10"

Drozerに必要な環境

Python 2.7のインストール

この時点でPython2系が入っていない人は下記のコマンドをターミナルで実行しましょう。

$sudo apt install python2

その後、Python2系に対応したpipをインストールするのですが、ここで早速問題が発生しました。
なんとpipが上手くインストール出来ませんでした!

普段私はpipをインストールする際に『get-pip.py』を使うのですが最近のアップデートでPython3系のインストールのみ対応に変更したようで、何度実行してもpipがエラーが発生してインストールされませんでした。

そこで『get-pip.py』のアーカイブを下記のURLからダウンロードしました。

https://bootstrap.pypa.io/

その後、下記のコマンドでインストールを行うことで上手くインストール出来ました。

$sudo python2 get-pip.py

Protobuf 2.6 以上のインストール

ここから少し同じような作業が続きます。

$sudo pip install protobuf

Pyopenssl 16.2 以上のインストール

$sudo pip install pyOpenSSL

Twisted 10.2 以上のインストール

$sudo pip install Twisted

Java Development Kit 1.7のインストール

ここで少し躓きました。
このDrozerではjavaの環境が必要になり、筆者の環境にもjavaオープンソースである『openjdk』が入っています。

では何が大変かというとこのDrozer、実はversion7でしか動きません!
ここで私の環境を見てみてください……はい、version11ですね。

ということで、明示的にversion7をインストールする方法を解説します。

まず、version7をインストールするので以下のコマンドを順に実行してください。

# apt update; apt install -y software-properties-common
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
# apt-add-repository 'deb http://repos.azulsystems.com/ubuntu stable main'
# apt update; apt install -y zulu-7

OS内に1つのjdkしか入っていないなら問題ないのですが、2つ以上の場合は以下の設定を行ってください。

まず以下のコマンドを実行してください。

$sudo update-alternatives --config java

f:id:daiki0508:20210221231052p:plain

ここでは先ほどインストールしたversionを選択してください。

その後、vimなどのエディタで

$sudo vim /etc/enviroment

を開き、以下の文を追記します。

JAVA_HOME=“/usr/lib/jvm/zulu7/jre/bin/java“

最後に以下のコマンドを実行して終了です。

$sudo source /etc/enviroment

Drozerのダウンロード

ここからようやく、Drozerのダウンロード開始です。

まずDrozerの公式GitHubページからDrozer(.tar.gz)の最新バージョンをダウンロードして解凍してください。 すると以下の様な構成のフォルダになっていると思います。

f:id:daiki0508:20210302104019p:plain

Drozerのインストール

勿論、この後 setup.pyを実行すれば良いように感じますがこの状態で実行してもスクリプトに問題があるのか

ImportEroor No module named src.drozer

上記のようなエラーが発生してしまいます。
そこでエディタ(vim等)で setup.pyを開き、スクリプトを書き換えましょう!

書き換える場所は1か所だけで

from src.drozer import meta

の部分を

from drozer import meta

に書き換えて保存するだけです。

その後、下記のコマンドを実行することで依存関係を解決させます。

$pip install drozer

後は念のため、PATHも通しておくことにします。
環境によって異なると思うので該当部分を順次書き換えながら以下のようにPATHを通してください。

$echo \$PYTHONPATH=$PYTHONPATH:/path/to/drozer/src >> ~/.profile
$echo PATH=/home/ユーザ名/Downloads(drozerがダウンロードされている場所)/drozer-2.4.4/bin:$PATH

最後に setup.pyを以下のように実行して終了です。

$python setup.py build

まとめ

いかがですか。無事、ダウンロードとインストールが出来ましたか?

私は最初、Drozerの公式ドキュメントを見ながらインストール作業を行っていたんですけどエラーばかり出て全くインストール出来ずに苦戦しました(笑)

さて、ここまで作業を終えて早速動かそうと思ってもAndroidにDrozerサーバーが入ってないと使うことが出来ないので、次回は実際にAndroidにDrozerを入れてサンプル問題を使って遊んでいきたいと思います。

参考情報

https://www.youtube.com/watch?v=7RdGuoDmhbU