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
- Protobuf 2.6 以上
- Pyopenssl 16.2 以上
- Twisted 10.2 以上
- Java Development Kit 1.7
Python 2.7のインストール
この時点でPython2系が入っていない人は下記のコマンドをターミナルで実行しましょう。
$sudo apt install python2
その後、Python2系に対応したpipをインストールするのですが、ここで早速問題が発生しました。
なんとpipが上手くインストール出来ませんでした!
普段私はpipをインストールする際に『get-pip.py』を使うのですが最近のアップデートでPython3系のインストールのみ対応に変更したようで、何度実行してもpipがエラーが発生してインストールされませんでした。
そこで『get-pip.py』のアーカイブを下記のURLからダウンロードしました。
その後、下記のコマンドでインストールを行うことで上手くインストール出来ました。
$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
ここでは先ほどインストールした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)の最新バージョンをダウンロードして解凍してください。
すると以下の様な構成のフォルダになっていると思います。
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を入れてサンプル問題を使って遊んでいきたいと思います。