Scanning APK file for URIs, endpoints & secrets.
Project description
APKLeaks
Scanning APK file for URIs, endpoints & secrets.
Installation
It's fairly simple to install APKLeaks:
from PyPi
$ pip3 install apkleaks
from Source
Clone repository and install requirements:
$ git clone https://github.com/dwisiswant0/apkleaks
$ cd apkleaks/
$ pip3 install -r requirements.txt
from Docker
Pull the Docker image by running:
$ docker pull dwisiswant0/apkleaks:latest
Dependencies
The APKLeaks utilizes the jadx disassembler to decompile APK files. If jadx is not present in your system, it will prompt you to download it.
Usage
Simply,
$ apkleaks -f ~/path/to/file.apk
# from Source
$ python3 apkleaks.py -f ~/path/to/file.apk
# or with Docker
$ docker run -it --rm -v /tmp:/tmp dwisiswant0/apkleaks:latest -f /tmp/file.apk
Options
Here are all the options it supports.
Argument | Description | Example |
---|---|---|
-f, --file | APK file to scanning | apkleaks -f file.apk |
-o, --output | Write to file results (random if not set) | apkleaks -f file.apk -o results.txt |
-p, --pattern | Path to custom patterns JSON | apkleaks -f file.apk -p custom-rules.json |
-a, --args | Disassembler arguments | apkleaks -f file.apk --args="--deobf --log-level DEBUG" |
--json | Save as JSON format | apkleaks -f file.apk -o results.json --json |
Output
In general, if you don't provide -o
argument, then it will generate results file automatically.
[!TIP] By default it will also save the results in text format, use
--json
argument if you want JSON output format.
Pattern
Custom patterns can be added with the following argument to provide sensitive search rules in the JSON file format: --pattern /path/to/custom-rules.json
. If no file is set, the tool will use the default patterns found in regexes.json file.
Here's an example of what a custom pattern file could look like:
// custom-rules.json
{
"Amazon AWS Access Key ID": "AKIA[0-9A-Z]{16}",
// ...
}
To run the tool using these custom rules, use the following command:
$ apkleaks -f /path/to/file.apk -p rules.json -o ~/Documents/apkleaks-results.txt
Arguments (disassembler)
We give user complete discretion to pass the disassembler arguments. For example, if you want to activate threads in jadx
decompilation process, you can add it with -a/--args
argument, example: --args="--threads-count 5"
.
$ apkleaks -f /path/to/file.apk -a "--deobf --log-level DEBUG"
[!WARNING] Please pay attention to the default disassembler arguments we use to prevent collisions.
License
apkleaks
is distributed under Apache 2.
Acknowledments
Since this tool includes some contributions, and I'm not an asshole, I'll publically thank the following users for their helps and resources:
- @ndelphit - for his inspiring
apkurlgrep
, that's why this tool was made. - @dxa4481 and y'all who contribute to
truffleHogRegexes
. - @GerbenJavado & @Bankde - for awesome pattern to discover URLs, endpoints & their parameters from
LinkFinder
. - @tomnomnom - a
gf
patterns. - @pxb1988 - for awesome APK dissambler
dex2jar
. - @subho007 for standalone APK parser.
SHA2048#4361
(Discord user) that help me porting code to Python3.- @Ry0taK because he had reported an OS command injection bug.
- @dee__see - for curated potentially sensitive tokens,
NotKeyHacks
. - All contributors.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file apkleaks-2.6.3.tar.gz
.
File metadata
- Download URL: apkleaks-2.6.3.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e247b59acf4448f3c2e45449bc7564bc5b7a216ebfb166236baf602d625b1df5 |
|
MD5 | 29d3e85e1016369b5edc3f21b68fddd0 |
|
BLAKE2b-256 | 1ee6203661abe151dbc59096de65d6f0cf392d1aad3acba32f4e9f3f389acad0 |
File details
Details for the file apkleaks-2.6.3-py3-none-any.whl
.
File metadata
- Download URL: apkleaks-2.6.3-py3-none-any.whl
- Upload date:
- Size: 14.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7bdc02e65f98ca13a17c8fc83709d7f78dc451e36b7895e581d0254bb9c6f17d |
|
MD5 | 79bdf177d5d1863288cb037b3b402e60 |
|
BLAKE2b-256 | 0c200eb37ed2d4adab6eaff10ab0a531112fc3bf3e49efb29a3db310d6b01737 |