
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.0 라이선스로 배포됩니다.
이 도구에는 여러 기여가 포함되어 있으며, 저는 멍청이가 아니므로 다음 사용자분들의 도움과 리소스에 대해 공개적으로 감사드립니다:
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 |