SPF Console은 SPF 사용자가 SPF의 모든 기능을 사용 할 수 있도록 펄로 제작된 텍스트 기반 프로그램이다. SPF Console을 사용하기 위해서는 config파일을 수정해야 한다. config 파일은 Smartphone-Pentest-Framework/frameworkconsole디렉터리에 존재한다. 참고로 config 파일의 설정 값들은 SPF Console 뿐만 아니라, SPF GUI 에서도 사용한다.
vi 에디터등의 편집기를 이용하여, config 파일을 열어 보면 아래와 같다. 여기서 수정해야할 부분은 웹 서버 IP와 Shell IP 부분이다. 웹 서버 IP와 Shell IP는 SPF가 설치되어 있는 자신의 IP를 입력한다.
config 파일을 수정 하였으면, 이제 SPF Console을 실행시켜 보자. SPF Console을 실행 시키는 방법은 ~/Smartphone-Pentest-Framework/frameworkconsole 디렉터리에서 ./framework.py를 입력한다. ./framework.py를 입력하면 아래와 같이 SPF Console의 메뉴들이 나타난다.
1) Attach Framework to a Deployed Agent/Create Agent
Attach Framework to a Deployed Agent/Create Agent 메뉴는 SPF와 스마트폰을 연결하는 에이전트(Agent)를 새로 만들거나 배포되어 있는 에이전트를 연결하는 메뉴이다. 메뉴를 선택 하면 아래와 같이 하위 메뉴들이 나열된다.
1.1) Attach Framework to a Deployed Agent
Attach Framework to a Deployed Agent메뉴는 이미 배포 된 에이전트를 제어하는 핸들러를 설정할 때 사용한다. Attach Framework to a Deployed Agent메뉴를 선택 하면, 아래와 같이 에이전트 URL 경로, 에이전트 컨트롤키, 커뮤니케이션 매소드를 입력 한다. 여기서 커뮤니케이션 매소드는 에이전트를 컨트롤 할때 명령을 내리는 방법을 의미한다. (참고로 에이컨트 컨트롤키는 최대 7자리만 인식한다. 7자 이상이되면 8번째 자리 부터는 제외가 된다는 메시지를 출력한다.)
커뮤니케이션 매소드는 SMS, HTTP 중 하나를 선택하게 된다. SMS를 이용해서 컨트롤 하고자 한다면 SMS를, HTTP를 이용해서 컨트롤 하고자 한다면 HTTP를 입력하면 된다. SMS를 이용하기 위해서는 모뎀을 연결해야 하는데 만약 연결되어 있지 않으면 아래와 같은 에러 메시지를 출력한다.
모뎀 연결은 추후에 다시 언급하겠다. 여기서는 HTTP를 선택하여 진행 하였다. 정상적으로 진행되었다면, /var/www 디렉터리에 위에서 입력한 URL 경로 이름으로 디렉터리가 생성되며 아래와 같이 파일들이 존재한다.
1.2) Generate Agent App
Generate Agent App 메뉴는 SPF와 스마트폰을 연결하는 에이전트를 생성하는 메뉴이다. Generate Agent App를 선택 하면 아래와 같이 에이전트 템플릿을 선택하는 메뉴가 나타난다.
MapsDemo템플릿은 앱을 실행시 가짜 지도 앱으로, 앱을 실행 시키면 제대로 지도가 로드되지 않는 것 처럼 보이게 된다. BlankFrontEnd 탬플릿은 아무것도 실행 되지 않는 상태가 된다.
에이전트 템플릿은 ~/Smartphone-Pentest-Framework/AgentTemplates디렉터리에 존재한다. 에이전트 템플릿 중 MapsDemo 템플릿 디렉터리를 살펴 보면 아래와 같다.
에이전트 생성시 입력한 값과 위의 내용들을 조합하여, 에이전트를 생성한다. 여기서는 MapsDemo을 선택 하였다. 에이전트 템플릿을 선택하면 아래와 같이 에이전트를 컨트롤할 스파트폰 전화번호와 에이전트를 컨트롤할 키(Key), 에이전트를 웹 서버에서 컨트롤 하기위한 경로를 입력한다. 모두 입력하면, 입력한 정보가 확실한지 묻는다.
y를 입력하면, 아래와 같이 에이전트를 만들기 시작한다.
생성된 에이전트는 ~/Smartphone-Pentest-Framework/frameworkconsole디렉터리에 AndroidAgent.apk 파일로 존재한다.
에이전트를 생성하는데 아래와 같은 에러가 발생한다면? 에러 유형 1 위 에러는 sdk가 설치되어 있는 경로를 찾지 못해서 발생하는 에러이다. config 파일에서 sdk 경로는 기본적으로 아래와 같이 되어 있다. 해결 방법은 sdk 경로 부분을 SPF를 사용하는 Kali Linux에서 sdk가 설치되어 있는 경로로 수정하면 된다. 에러 유형 2 위 에러는 Android 1.6 (API4)이 설치가 되어 있지 않아서 발생하는 에러이다. 해결 방법은 아래와 같이 Android SDK Manager를 이용해서 Android 1.6 (API4)를 설치해 주면 해결된다.
|
1.3) Copy Agent to Web Server
Copy Agent to Web Server메뉴는 앞서 생성한 에이전트 파일을 웹 서버로 복사하는 메뉴이다. Copy Agent to Web Server메뉴를 선택 하면 아래와 같이, 웹 서버 호스팅 경로와 에이전트 파일의 파일명을 입력 받는다.
웹 서버 호스팅 경로와 에이전트 파일의 파일명을 입력하면, 에이전트가 /var/www/에 복사가 완료된다.
참고로 파일명은 .apk만 입력하는것이 좋다. 만약, .apk가 아닌 파일명을 입력하면 호스팅 경로와 에이전트 파일명이 합처져 생성된다.
1.4) Import an Agent Template
Import an Agent Template메뉴는 SPF에 기본적으로 존재하는 에이전트 템플릿 이외에 사용자가 작성한 에이전트 소스코드를 SPF에서 사용할 수 있도록 템플릿 목록에 업로드 시키는 메뉴이다. Import an Agent Template메뉴를 선택하면, 아래와 같이 에이전트 소스코드가 있는 폴더를 지정하고 1.2) Generate Agent App 메뉴에서 템플릿 선택할 때 나열되는 템플릿 명(ProjectName)을 입력한다. 여기서는 소스코드를 별도로 생성하지 않고 기존 템플릿 소스코드를 이용하였다.
정상적으로 소스코드가 SPF 템플릿 메뉴에 업로드 되면 아래와 같이 1.2) Generate Agent App 메뉴에서 추가된것을 확인할 수 있다.
1.5)Backdoor Android APK with Agent
정상적인 APK 파일 안에 SPF 에이전트의 기능을 삽입하는 메뉴이다.정상적인 APK 파일을 설치 후 실행 시키면, 본래의 기능으로 동작 하면서 SPF의 기능 까지 함께 동작하게 된다. Backdoor Android APK with Agent 메뉴를 선택하면 아래와 같이 APKTool을 찾는다. APKTool이 설치가 되어 있지 않다면, y를 입력하여 APKTool을 다운로드 받는다.
APKTool를 설치하는 소스코드는 아래와 같다.
만약 APKTool이 설치가 되어 있다면, config 파일에서 APKTool의 경로를 수정하면 다시 설치 없이 Backdoor Android APK with Agent를 사용 할 수 있다.
APKTool이 정상적으로 설치되었거나, config 파일에서 APKTool의 경로를 수정해 주면 아래와 같이 백도어로 만들 APK 파일을 지정한다.
Smartphone-Pentest-Framework (SPF) - Console (10) (0) | 2013.12.28 |
---|---|
Smartphone-Pentest-Framework (SPF) - Console (8) (0) | 2013.12.27 |
Smartphone-Pentest-Framework (SPF) (0) | 2013.11.27 |
악성 앱에서 자주 사용되는 클래스 및 함수들 (작성중) (0) | 2013.11.21 |
악성 앱에서 자주 사용되는 권한 (작성중) (0) | 2013.11.21 |