
Сканирование 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 использует дизассемблер jadx для декомпиляции APK-файлов. Если 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.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 |