
Android를 위한 선도적인 보안 평가 프레임워크.
drozer는 Android를 위한 보안 테스트 프레임워크입니다.
drozer는 앱의 역할을 가정하고 Android Runtime, 다른 앱의 IPC 엔드포인트 및 기본 OS와 상호작용하여 앱과 기기에서 보안 취약점을 검색할 수 있게 해줍니다.
drozer는 공개된 Android 익스플로잇을 사용, 공유 및 이해하는 데 도움이 되는 도구를 제공합니다.
drozer는 Reversec에서 유지 관리하는 오픈 소스 소프트웨어입니다. 입문 사용자 가이드는 Reversec Labs에서 찾을 수 있습니다.
이것은 다시 작성된 drozer 버전의 BETA 릴리스입니다. 이 버전은 python3을 지원하도록 업데이트되었습니다.
현재 다음과 같은 알려진 문제가 있습니다:
drozer가 모든 시스템에서 실행될 수 있도록 하기 위해 작동하는 drozer 빌드가 포함된 Docker 컨테이너가 생성되었습니다.
pip 또는 pipx(가능한 경우 선호)를 사용하여 PyPI에서 최신 drozer 릴리스를 설치할 수 있습니다:
pipx install drozer
또는 GitHub에서 개별 릴리스를 다운로드하여 다음을 실행할 수 있습니다:
pipx install ./drozer-*.whl
아직 하지 않았다면 다음을 실행하는 것을 고려하세요:
pipx ensurepath
pipx로 설치된 패키지가 PATH에 나타나도록 합니다.
소스에서 drozer를 빌드하려면 다음을 실행할 수 있습니다.
git clone https://github.com/ReversecLabs/drozer.git
cd drozer
pip install .
특정 SDK에 대해 Android 네이티브 구성 요소를 빌드하려면 ANDROID_SDK 환경 변수를 경로로 설정할 수 있습니다. 예:
Linux/macOS:
export ANDROID_SDK=/home/drozerUser/Android/Sdk/platforms/android-34/android.jar
Windows - PowerShell:
New-Item -Path Env:\ANDROID_SDK -Value 'C:\Users\drozerUser\AppData\Local\Android\sdk\platforms\android-34\android.jar'
Windows - cmd:
set ANDROID_SDK = "C:\Users\drozerUser\AppData\Local\Android\sdk\platforms\android-34\android.jar"
사용되는 d8 도구의 위치는 D8을 설정하여 변경할 수도 있습니다.
drozer는 Android Debug Bridge(adb)를 사용하여 설치할 수 있습니다.
최신 drozer Agent를 여기에서 다운로드하세요.
adb install drozer-agent.apk
이제 PC에 drozer Console이 설치되어 있고 테스트 장치에서 Agent가 실행 중이어야 합니다. 이제 두 가지를 연결하면 탐색을 시작할 준비가 됩니다.
이를 위해 drozer Agent에 내장된 서버를 사용합니다. 먼저 Agent를 실행하고 "Embedded Server" 옵션을 선택한 다음 "Enable"을 탭하여 서버를 시작합니다. 서버가 시작되었다는 알림이 표시됩니다.
그런 다음 아래 옵션 중 하나를 따르세요.
기본적으로 drozer Agent는 모든 인터페이스의 포트 31415에서 들어오는 TCP 연결을 수신합니다. Agent에 연결하려면 다음 명령을 실행하세요:
drozer console connect --server <phone's IP address>
Docker 컨테이너를 사용하는 경우 해당 명령은 다음과 같습니다:
docker run --net host -it drozerdocker/drozer console connect --server <phone's IP address>
일부 시나리오에서는 네트워크를 통해 장치에 연결하는 것이 불가능할 수 있습니다. 이러한 시나리오에서는 adb의 포트 포워딩 기능을 활용하여 USB를 통해 연결을 설정할 수 있습니다.
먼저 PC가 에뮬레이터 내부 또는 장치에서 Agent가 연 TCP 소켓에 연결할 수 있도록 적절한 포트 포워드를 설정해야 합니다. 기본적으로 drozer는 포트 31415를 사용합니다.
adb forward tcp:31415 tcp:31415
이제 localhost에 연결하여 drozer Agent에 연결할 수 있습니다(또는 대상 IP를 지정하지 않음).
drozer console connect
다음과 같은 drozer 명령 프롬프트가 표시됩니다:
Selecting ebe9fcc0c47b28da (Google sdk_gphone64_x86_64 12)
.. ..:.
..o.. .r..
..a.. . ....... . ..nd
ro..idsnemesisand..pr
.otectorandroidsneme.
.,sisandprotectorandroids+.
..nemesisandprotectorandroidsn:.
.emesisandprotectorandroidsnemes..
..isandp,..,rotecyayandro,..,idsnem.
.isisandp..rotectorandroid..snemisis.
,andprotectorandroidsnemisisandprotec.
.torandroidsnemesisandprotectorandroid.
.snemisisandprotectorandroidsnemesisan:
.dprotectorandroidsnemesisandprotector.
drozer Console (v3.0.0)
dz>
프롬프트는 연결된 장치의 Android ID, 제조업체, 모델 및 Android 소프트웨어 버전을 확인합니다.
이제 장치 탐색을 시작할 준비가 되었습니다.
drozer는 3-Clause BSD 라이선스로 배포됩니다. 자세한 내용은 LICENSE를 참조하세요.
drozer는 커뮤니티의 기여로 훌륭해진 오픈 소스 소프트웨어입니다.
전체 소스 코드, 버그 신고, 기능 제안 및 패치 기여를 위해 GitHub 프로젝트를 방문해 주세요:
https://github.com/ReversecLabs/drozer
버그 신고, 기능 요청, 의견 및 질문은 여기로 제출할 수 있습니다.
| Command | Description |
|---|
| run | drozer 모듈을 실행합니다. |
| list | 현재 세션에서 실행할 수 있는 모든 drozer 모듈 목록을 표시합니다. 실행할 적절한 권한이 없는 모듈은 숨깁니다. |
| shell | Agent 프로세스의 컨텍스트에서 장치에서 대화형 Linux 셸을 시작합니다. |
| cd | 특정 네임스페이스를 세션의 루트로 마운트하여 모듈의 전체 이름을 반복해서 입력하지 않도록 합니다. |
| clean | drozer가 Android 장치에 저장한 임시 파일을 제거합니다. |
| contributors | drozer 프레임워크 및 시스템에서 사용 중인 모듈에 기여한 사람들의 목록을 표시합니다. |
| echo | 콘솔에 텍스트를 출력합니다. |
| exit | drozer 세션을 종료합니다. |
| help | 특정 명령 또는 모듈에 대한 도움말을 표시합니다. |
| load | drozer 명령이 포함된 파일을 로드하고 순차적으로 실행합니다. |
| module | 인터넷에서 추가 drozer 모듈을 찾아 설치합니다. |
| permissions | drozer Agent에 부여된 권한 목록을 표시합니다. |
| set | drozer가 생성하는 모든 Linux 셸에 환경 변수로 전달될 변수에 값을 저장합니다. |
| unset | drozer가 생성하는 Linux 셸에 전달하는 명명된 변수를 제거합니다. |