R136A1

윈도우 drozer 설치(msi) - protobuf 오류 & 파이썬 2, 3 동시에 설치되어 있을 경우 본문

Android

윈도우 drozer 설치(msi) - protobuf 오류 & 파이썬 2, 3 동시에 설치되어 있을 경우

r136a1x27 2021. 9. 18. 04:54

0. drozer란?

모바일 어플리케이션(안드로이드) 동적 분석 프레임워크

https://github.com/FSecureLABS/drozer

 

GitHub - FSecureLABS/drozer: The Leading Security Assessment Framework for Android.

The Leading Security Assessment Framework for Android. - GitHub - FSecureLABS/drozer: The Leading Security Assessment Framework for Android.

github.com

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

 

Drozer

 

labs.f-secure.com

github 아래에 들어가면, Prerequisites(필요사항)과 OS에 따른 Installing 방법이 적혀있다.

 

1. apk 먼저 세팅하기

msi 설치가 굉장히 고난길이기때문에, apk 먼저 세팅한다.

nox든, 안드로이드 에뮬레이터든, USB디버깅이 켜진 자신의 안드로이드폰이든, 뭐든 사용해서

위에서 다운받은 apk파일을 설치해주고 서버를 켜준다.

adb devices

adb -s 디바이스명 install drozer-agent-2.3.4.apk

https://liveyourit.tistory.com/161 

adb forward tcp:31415 tcp:31415 로 adb와 안드로이드 앱을 연결해놓는다

 

 

2. drozer 공식 홈페이지에서 windows용 drozer 설치 툴(.msi)을 다운받는다.

 

Chrome과 일부 보안이 강한 웹 브라우저의 경우 자체적으로 아래와 같이 차단한다.

이 경우 웹 브라우저에서 제공하는 보안 기능을 잠깐 비활성한 뒤 다운받는다 (웹 브라우저마다 상이함)
Chrome의 경우 보안 설정에서 비활성화할 수 있다. chrome://settings/security 

안전한 웹 활동을 위해 다운이 완료된 뒤에는 반드시 원래대로 활성화 시켜놓자.

 윈도우에서도 한번 더 악성 파일로 필터링한다. 공홈에서 다운받은 것이니 믿고 실행시킨다.

따로 설정 없이 다음 다음 다음... 눌러서 계속 설치해준다

(단, 설치 시 2.7이 뜨지 않는다면 Python from another location을 클릭해서 python27이 설치된 경로로 변경)

그렇지 않으면 위 오류가 뜸

 

 

또는 github에 설명되어 있는 대로, 웹 브라우저를 거치지 않고 git clone을 통해 다운받는 방법도 있다.

git clone https://github.com/FSecureLABS/drozer.git
cd drozer
python.exe setup.py bdist_msi

Run dist/drozer-2.x.x.win-x.msi

 

어떤 방법으로든 설치하고, drozer console connect를 입력해보면 일반적으로 아래와 같은 오류가 뜬다.

C:\Users\r136a>drozer console connect
  File "C:\Users\r136a\AppData\Local\Programs\Python\Python39\Scripts\drozer", line 19
    print "usage: drozer [COMMAND]"
          ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("usage: drozer [COMMAND]")?

Python27를 Prerequisites로 가지는 drozer가 Python39 아래에서 작동했기 때문에 발생하는 오류이다.

 

3. Python 설정하기

https://r136a1x27.tistory.com/311 를 참고하여 python2가 기본 버전이 되도록 설정하면 된다.

(환경변수를 python3보다 위로)

 

또는 설치 시 

 

 

그럼 아래와 같은 오류가 뜨는데, 이 때부터 Prerequisites를 설치해주면 된다.

 

pip install protobuf pyOpenSSL twisted

pip가 또 python39에 설치되어 있다면 https://r136a1x27.tistory.com/311 를 참고한다

설치하다 빨간색이 뜨면 오류를 읽고 추가적으로 설치하는 등 해결해준다.

 

잘 설치했는데, 아래와 같은 오류가 뜬다.

File "C:\Python27\lib\site-packages\google\protobuf\descriptor.py", line 113

class DescriptorBase(metaclass=DescriptorMetaclass):

       ^

SyntaxError: invalid syntax 

 

protobuf 모듈 문법 오류에다가...drozer는 python2.7에서 더 이상 업그레이드가 이루어지지 않는데

거기에 필요한 모듈은 계속 업그레이드가 이루어져 python3 으로 개정되었다면,

모듈은 "다운그레이드"가 필요하다

 

pip list 하면 현재 설치된 모듈과, 버전 정보를 볼 수 있고 포스팅날 기준 protobuf는 3.18.0이다.

pip uninstall protobuf 로 삭제해주고

pip install protobuf==2.6.1 해서 버전을 지정해서 재설치해준다.

 

드디어 실행은 된다^^.......

로그를 읽어보면 서버가 연결이 되어있지 않다고 한다. 설치하다 apk와 연결이 끊긴 것이니

0. apk 먼저 세팅하기  과정으로 돌아가서 다시 한다.

 

4. 열어놓은 서버와 drozer 연결하기

정상적으로 연결되었다면, 안드로이드 캐릭터와 함께

Console이 dz> 로 변경된다.

 

Comments