drozer는 Android용 보안 테스트 프레임워크입니다.
drozer를 사용하면 앱의 역할을 맡고 Android 런타임, 다른 앱의 IPC 엔드포인트 및 기본 OS와 상호작용하여 앱과 기기의 보안 취약점을 검색할 수 있습니다.
drozer는 공개 Android 공격을 사용, 공유 및 이해하는 데 도움이 되는 도구를 제공합니다.
drozer는 WithSecure에서 관리하는 오픈 소스 소프트웨어이며 https://labs.withsecure.com/tools/drozer/에서 다운로드할 수 있습니다.
이것은 재작성된 드로저 버전의 베타 릴리스입니다. 이 버전은 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/WithSecureLabs/drozer.git
cd drozer
pip install .
특정 SDK에 대해 Android 기본 구성 요소를 빌드하려면 ANDROID_SDK
환경 변수를 경로로 설정할 수 있습니다. 예를 들어:
리눅스/맥OS:
export ANDROID_SDK=/home/drozerUser/Android/Sdk/platforms/android-34/android.jar
윈도우 - 파워셸:
New-Item - Path Env:ANDROID_SDK - Value ' C:UsersdrozerUserAppDataLocalAndroidsdkplatformsandroid-34android.jar '
윈도우 - cmd:
set ANDROID_SDK = " C:UsersdrozerUserAppDataLocalAndroidsdkplatformsandroid-34android.jar "
사용되는 d8
도구의 위치는 D8
설정을 통해 변경할 수도 있습니다.
drozer는 Android Debug Bridge(adb)를 사용하여 설치할 수 있습니다.
여기에서 최신 drzer Agent를 다운로드하세요.
adb install drozer-agent.apk
이제 PC에 drozer 콘솔이 설치되어 있고 테스트 장치에서 에이전트가 실행 중이어야 합니다. 이제 두 가지를 연결해야 탐색을 시작할 수 있습니다.
이를 위해 drozer Agent에 내장된 서버를 사용하겠습니다. 먼저 에이전트를 실행하고 "내장 서버" 옵션을 선택한 다음 "활성화"를 눌러 서버를 시작합니다. 서버가 시작되었다는 알림이 표시됩니다.
그런 다음 아래 옵션 중 하나를 따르십시오.
기본적으로 drozer 에이전트는 포트 31415의 모든 인터페이스에서 들어오는 TCP 연결을 수신합니다. 에이전트에 연결하려면 다음 명령을 실행합니다.
drozer console connect --server <phone's IP address>
Docker 컨테이너를 사용하는 경우 해당 명령은 다음과 같습니다.
docker run --net host -it withsecurelabs/drozer console connect --server <phone's IP address>
일부 시나리오에서는 네트워크를 통해 장치에 연결하는 것이 불가능할 수 있습니다. 이러한 시나리오에서는 adb
의 포트 전달 기능을 활용하여 USB를 통한 연결을 설정할 수 있습니다.
먼저, 에뮬레이터 내부 또는 장치에서 에이전트가 연 TCP 소켓에 PC가 연결할 수 있도록 적절한 포트 전달을 설정해야 합니다. 기본적으로 drozer는 포트 31415를 사용합니다.
adb forward tcp:31415 tcp:31415
이제 localhost
에 연결하여(또는 단순히 대상 IP를 지정하지 않고) drozer Agent에 연결할 수 있습니다.
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 소프트웨어 버전과 함께 연결한 장치의 Android ID를 확인하는 메시지가 표시됩니다.
이제 장치 탐색을 시작할 준비가 되었습니다.
명령 | 설명 |
---|---|
달리다 | Drozer 모듈을 실행합니다. |
목록 | 현재 세션에서 실행할 수 있는 모든 Drozer 모듈의 목록을 표시합니다. 이렇게 하면 실행하기에 적합한 권한이 없는 모듈이 숨겨집니다. |
껍데기 | 에이전트 프로세스의 컨텍스트에서 장치의 대화형 Linux 셸을 시작합니다. |
CD | 모듈의 전체 이름을 반복적으로 입력할 필요가 없도록 특정 네임스페이스를 세션의 루트로 마운트합니다. |
깨끗한 | Android 기기에서 drozer에 저장된 임시 파일을 제거합니다. |
기여자 | 시스템에서 사용 중인 Drozer 프레임워크 및 모듈에 기여한 사람들의 목록을 표시합니다. |
에코 | 콘솔에 텍스트를 인쇄합니다. |
출구 | Drzer 세션을 종료합니다. |
돕다 | 특정 명령이나 모듈에 대한 도움말을 표시합니다. |
짐 | drozer 명령이 포함된 파일을 로드하고 순서대로 실행합니다. |
기준 치수 | 인터넷에서 추가 drozer 모듈을 찾아서 설치하세요. |
권한 | drozer Agent에 부여된 권한 목록을 표시합니다. |
세트 | drozer가 생성한 모든 Linux 쉘에 환경 변수로 전달될 변수에 값을 저장합니다. |
설정되지 않음 | drozer가 생성된 Linux 셸에 전달하는 명명된 변수를 제거합니다. |
drozer는 3조 BSD 라이센스에 따라 출시됩니다. 자세한 내용은 라이센스를 참조하세요.
drozer는 커뮤니티의 기여로 훌륭하게 만들어진 오픈 소스 소프트웨어입니다.
전체 소스 코드를 보고, 버그를 보고하고, 기능을 제안하고, 패치를 제공하려면 Github 프로젝트를 참조하세요.
https://github.com/WithSecureLabs/drozer
버그 보고서, 기능 요청, 의견 및 질문을 여기에 제출할 수 있습니다.