#1. 드로저(drozer) 설치

https://labs.f-secure.com/tools/drozer/

  • drozer (Agent .apk only) - 안드로이드폰에 설치
  • drozer (msi) - 윈도우 설치 파일
  • Python2 버전 사용 

#2. 드로저 실행

1) 모바일: drozer agent 앱 실행 후 우측 하단의 [ON] 버튼 클릭

    -> 디폴트로 31415 포트를 사용

2) PC: ADB로 단말기와 PC의 포트를 동일하게 설정

 ※ 다음 명령어 실행 전 adb와 모바일이 정상적으로 연결되는지 확인한다. 

adb forward tcp:31415 tcp:31415

정상적으로 포트포워딩이 되었는지 확인하면 31415 포트가 LISTENING 상태인 것을 확인할 수 있다.

netstat -an | findstr 31415 

 

3) PC: 드로저가 설치된 폴더로 이동 후 드로저 실행

drozer.bat console connect

위 명령어 실행 시 다음과 같은 에러가 나는 경우 pip install 명령어를 통해 필요한 모듈을 설치한다.

더보기

C:\Users\Administrator>drozer.bat console connect
Traceback (most recent call last):
  File "C:\Python27\Scripts\drozer", line 30, in 
    __import__("drozer.cli.%s" % (sys.argv[1]))
  File "C:\Python27\lib\site-packages\drozer\cli\console.py", line 8, in 
    from drozer.console import Console
  File "C:\Python27\lib\site-packages\drozer\console\__init__.py", line 4, in 
    from drozer.console.console import Console
  File "C:\Python27\lib\site-packages\drozer\console\console.py", line 5, in 
    from pydiesel.api.protobuf_pb2 import Message
  File "C:\Python27\lib\site-packages\pydiesel\api\__init__.py", line 9, in 
    from pydiesel.api.frame import Frame
  File "C:\Python27\lib\site-packages\pydiesel\api\frame.py", line 3, in 
    from pydiesel.api.protobuf_pb2 import Message
  File "C:\Python27\lib\site-packages\pydiesel\api\protobuf_pb2.py", line 3, in 
    from google.protobuf import descriptor
ImportError: No module named google.protobuf

pip install protobuf
pip install pyopenssl  // ERROR: drozer 2.4.4 requires pyopenssl>=16.2, which is not installed.
pip install pyyaml  // ERROR: drozer 2.4.4 requires pyyaml>=3.11, which is not installed.

pip install twisted
// drozer Server requires Twisted to run. Run 'pip install twisted' to fetch this dependency.

#3. 드로저를 이용한 취약점 분석

1) 앱 취약점 분석

run app.package.attacksurface -h // 옵션 설명
run app.package.attacksurface [패키지명] //패키지 취약점 확인

-> exported 설정된 것이 있는지, 디버깅 설정이 되어 있는지 등을 보여줌

 

2) 액티비티 분석

run app.activity.info -a [패키지명]

-> exported 설정된 액티비티의 권한 확인

 

run app.activity.start --component [패키지명] [액티비티명]

-> ADB로 am start -n [패키지명/액티비티명] 하는 것과 동일

-> 액티비티 무단 접근

 

3) 브로드캐스트 리시버 분석

 

run app.broadcast.info -a [패키지명]

run app.broadcast.info -f [검색하고자 하는 단어] //검색하고자 하는 단어가 포함된 패키지의 브로드캐스트 리비저 정보 검색

run app.broadcast.info -u [-a/-f] [패키지명/검색하고자하는 단어]  //숨겨진 리시버 정보 확인

 

 

+ Recent posts