Android

드로저(Drozer)를 활용한 앱 취약점 진단 | part.1 - 정보 추출

Ate1es 2021. 8. 10. 19:11

드로저(Drozer)는 모바일 애플리케이션 취약점 진단 프레임워크입니다.

 

단말기 또는 가상 디바이스에 에이전트를 설치한 후 PC에서 명령을 내리는 서버-클라이언트 구조입니다.

 

다운로드 : https://labs.f-secure.com/tools/drozer/

 

Drozer

 

labs.f-secure.com

위 두개의 파일을 다운받아서 PC와 단말기에 각각 설치해주면 됩니다.

 

드로저 에이전트.apk는 adb 명령어를 이용해 디바이스에 설치해주었습니다.

드로저 에이전트가 설치된 것을 확인할 수 있습니다.

다음 해당 단말기에서 Drozer를 실행시켜서 포트를 열어줍니다. 기본포트는 31415/TPC 입니다.

 

그 다음 < adb forward tcp:31415 tcp:31415 > 입력합니다. -- 31415 포트 열어주는 명령어.

PC에 설치했던 드로저로 명령어를 통해 해당 디바이스 에이전트로 접속합니다.

명령어 < drozer console connect

위와같이 드로저 콘솔로 접속할 수 있습니다.

이제 드로저(Drozer)의 다양한 기능을 사용해볼 차례입니다.

 

명령어 :< run app.package.list >

설치된 패키지 목록을 띄워주는 명령어 입니다. 

 

+옵션 : < run app.package.list -f [특정단어]

특정 단어가 들어간 패키지 정보를 추출할 수 있습니다.

이제 해당 인시큐어뱅크 앱에 대한 정보를 수집하겠습니다.

명령어 :< run app.package.info -a [패키지명] >

 

위 명령어를 통해 프로세스 정보, 버전, 데이터를 저장하는 위치, apk 파일의 위치, UID 등을 알 수 있으며 앱이 가지고 있는 권한(Permission)도 확인할 수 있었습니다.

다음으로 해당 애플리케이션의 AndroidManifest.xml 파일을 분석하려고 합니다. 해당 파일에는 해당 앱의 모든 권한이 정의되어 있으며, 여러가지 유용한 정보를 담고 있는 파일이기 때문에 분석이 필요합니다.

명령어 :< run app.package.manifest [패키지명]

위와 같이 해당 앱의 권한과 여러가지 설정 정보 등이 출력되는 것을 확인할 수 있습니다.

 

이제 해당 앱의 취약점을 드로저를 사용해 자동으로 분석해보겠습니다.

명령어 :< run app.package.attacksurface [패키지명] >

해당 앱 패키지에서는 5개의 액티비티(Activity)가 노출되었으며, 브로드캐스트 리시버 취약점, 콘텐츠 프로바이더 취약점 등이 발견되었습니다. 

 

해당 취약점들에 대해선 다음 Part에 취약점의 정의와 함께 분석하도록 하겠습니다.