
APKファイルからURI、エンドポイント、シークレットをスキャンします。
APKファイルをスキャンしてURI、エンドポイント、シークレットを検出します。
APKLeaksのインストールは非常に簡単です:
$ pip3 install apkleaks
リポジトリをクローンして依存関係をインストール:
$ git clone https://github.com/dwisiswant0/apkleaks
$ cd apkleaks/
$ pip3 install -r requirements.txt
Dockerイメージをプル:
$ docker pull dwisiswant0/apkleaks:latest
APKLeaksはAPKファイルの逆コンパイルにjadx逆アセンブラを利用します。システムにjadxが存在しない場合、ダウンロードを促すプロンプトが表示されます。
シンプルに:
$ apkleaks -f ~/path/to/file.apk
# ソースから
$ python3 apkleaks.py -f ~/path/to/file.apk
# またはDockerで
$ docker run -it --rm -v /tmp:/tmp dwisiswant0/apkleaks:latest -f /tmp/file.apk
サポートされているすべてのオプションは以下の通りです。
一般的に、-o引数を指定しない場合、自動的に結果ファイルが生成されます。
[!TIP] デフォルトではテキスト形式でも保存されます。JSON出力が必要な場合は
--json引数を使用してください。
カスタムパターンは、JSONファイル形式で機密性の高い検索ルールを提供するために、次の引数で追加できます:--pattern /path/to/custom-rules.json。ファイルが設定されていない場合、ツールはregexes.jsonファイルにあるデフォルトのパターンを使用します。
カスタムパターンファイルの例は次の通りです:
// custom-rules.json
{
"Amazon AWS Access Key ID": "AKIA[0-9A-Z]{16}",
// ...
}
これらのカスタムルールを使用してツールを実行するには、次のコマンドを使用します:
$ apkleaks -f /path/to/file.apk -p rules.json -o ~/Documents/apkleaks-results.txt
ユーザーは逆アセンブラの引数を自由に渡すことができます。例えば、jadxの逆コンパイル処理でスレッドを有効にしたい場合、-a/--args引数で追加できます。例:--args="--threads-count 5"。
$ apkleaks -f /path/to/file.apk -a "--deobf --log-level DEBUG"
[!WARNING] 衝突を防ぐために、使用しているデフォルトの逆アセンブラ引数に注意してください。
apkleaksはApache 2のもとで配布されています。
このツールにはいくつかの貢献が含まれており、私は無神経な人間ではないので、以下のユーザーに助けとリソースに対して公に感謝します:
apkurlgrepのおかげでこのツールが作られました。truffleHogRegexesに貢献してくれた皆さん。LinkFinderからURL、エンドポイント、そのパラメータを発見するための素晴らしいパターンに感謝します。gfパターン。dex2jarに感謝します。SHA2048#4361(Discordユーザー) - コードをPython3に移植するのを手伝ってくれたこと。NotKeyHacksに感謝します。| 引数 | 説明 | 例 |
|---|
| -f, --file | スキャンするAPKファイル | apkleaks -f file.apk |
| -o, --output | 結果をファイルに書き込む(未指定時はランダム) | apkleaks -f file.apk -o results.txt |
| -p, --pattern | カスタムパターンJSONへのパス | apkleaks -f file.apk -p custom-rules.json |
| -a, --args | 逆アセンブラの引数 | apkleaks -f file.apk --args="--deobf --log-level DEBUG" |
| --json | JSON形式で保存 | apkleaks -f file.apk -o results.json --json |