Infomation

Smartphone-Pentest-Framework (SPF) - Console (10)

DarkSoul.Story 2013. 12. 28. 06:43
반응형


10)  Install Stuff

Install Stuff 메뉴는 SPF에서 필요한 도구를 설치할 때 사용하는 메뉴이다. Install Stuff 메뉴를 선택하면 아래와 같이 하위 메뉴가 존재한다. 



10.1) Android SDKS

Android SDKS 메뉴는 Android SDK를 설치하는 메뉴이다. Android SDKS 메뉴를 선택하면 아래 같이 현재 설치되어 있는 SDK, 사용가능한 SDK의 목록을 나열해 준다. 



현재 설치되어 있는 SDK, 사용가능한 SDK의 목록을 나열되면 이후 패키지 업데이트 및 설치 목록이 나열된다. 여기서 SPF 사용자가 업데이트 및 설치하고자 하는 패키지를 선택하면, 해당 패키지가 설치된다. 



Android SDKS 메뉴가 어떻게 현재 설치되어 있는 SDK, 사용 가능한 SDK의 목록, 패키지 업데이트 및 설치 목록이 나열하는지 소스코드를 살펴 보자. 가장 먼저 현재 설치되어 있는 SDK 목록을 나열하는 소스코드는 아래와 같다. config 파일에서 지정한 SDK 하위 경로의 tools 폴더에 존재하는 android 파일의 list target 명령어를 이용하여 현재 설치되어 있는 SDK 목록을 불러온다.


835 def installandroid():

836     while True:

837         print "Installed SDKs:"

838         sdkloc = config.get("ANDROIDSDK")

839         installedcommand = sdkloc + "/tools/android list target | grep id: | cut -d\" \" -f 4"

840         os.system(installedcommand)


다음 사용 가능한 SDK의 목록을 나열 하는 소스코드이다. config 파일에서 지정한 SDK 하위 경로의 tools 폴더에 존재하는 android 파일의 list sdk 명령어를 이용하여 사용 가능한 SDK 목록을 나열한다. 사용 가능한 SDK 목록이란? 원격 저장소에 있는 SDK 내용을 의미한다.


840         os.system(installedcommand)

841         print "Available SDKs:"

842         newcommand = sdkloc + "/tools/android list sdk"

843         os.system(newcommand)


마지막으로 패키지 업데이트 및 설치 목록을 나열하는 소스코드는 아래와 같다. config 파일에서 지정한 SDK 하위 경로의 tools 폴더에 존재하는 android 파일의 update sdk 명령어를 이용하여 패키지 업데이트 및 설치 목록을 나열한다.


844         print "Which SDK Would You Like to Install?"

845         choice = raw_input('spf> ').strip()

846         print

847         if choice == '0':

848             break

849         installcommand = sdkloc + "/tools/android update sdk --no-ui --filter " + choice

850         os.system(installcommand)


10.2) Android APKTool

Android APKTool메뉴는 APKTool을 설치하는 메뉴이다. Android APKTool를 선택하면 아래와 같이 APKTool을 다운로드 받아 설치한다. 



Android APKTool 메뉴의 소스코드는 아래와 같다. 가장 먼저 apktool-install-linux-r05-ibot.tar.bz2 파일을 다운로드 받은 후 해당 파일을 압축을 푼다. 다음으로 apktool1.5.2.tar.bz2 파일을 다운로드 받은후 마찬가지로 압축을 푼다. 이후 apktool1.5.2.tar.bz2 파일을 압축을 푼 apktool.jar 파일을 apktool-install-linux-r05-ibot 디렉터리로 옮긴다. 마지막으로 apktool-install-linux-r05-ibot 디렉터리를 상위 디렉터리로 옮김으로서 APKTool 설치를 마친다.


813 def installapktool():

814     print "Install Android APKTool(y/N)?"

815     choice = raw_input('spf> ').strip()

816     print

817     if choice == 'y':

818             downloadhelper = "wget https://android-apktool.googlecode.com/files/apktool-install-linux-r05-ibot.tar.bz2"

819             os.system(downloadhelper)

820             bunziphelper = "bunzip2 apktool-install-linux-r05-ibot.tar.bz2"

821             os.system(bunziphelper)

822             tarhelper = "tar xvf apktool-install-linux-r05-ibot.tar"

823             os.system(tarhelper)

824             downloadapktool = " wget https://android-apktool.googlecode.com/files/apktool1.5.2.tar.bz2"

825             os.system(downloadapktool)

826             bunzipapktool = "bunzip2 apktool1.5.2.tar.bz2"

827             os.system(bunzipapktool)

828             tarapktool = "tar xfv apktool1.5.2.tar"

829             os.system(tarapktool)

830             moveapktool = "mv apktool1.5.2/apktool.jar apktool-install-linux-r05-ibot/"

831             os.system(moveapktool)

832             moveapktool2 = "mv apktool-install-linux-r05-ibot ../"

833             os.system(moveapktool2)


10.3) Download Android Nmap

Download Android Nmap메뉴는 Android 용 Nmap 다운로드하는 메뉴이다. Download Android Nmap메뉴를 선택하면 아래와 같이 nmap을 다운로드 받는다. 



Download Android Nmap메뉴의 소스코드를 살펴 보자. 가장 먼저 wget을 이용하여, nmap-5.61TEST4-android-arm-bin.tar.bz2을 다운로드 받는다. 다운로드 받은 nmap-5.61TEST4-android-arm-bin.tar.bz2 을 압축을 푼 후 해당 디렉터리를 상위 디렉터리로 옮김으로써 Nmap을 다운로드 받는것이 완료된다.


799 def installandroidnmap():

800         print "Download Nmap for Android(y/N)?"

801         choice = raw_input('spf> ').strip()

802         print

803         if choice == 'y':

804                 download = "wget http://ftp.linux.hr/android/nmap/nmap-5.61TEST4-android-arm-bin.tar.bz2"

805                 os.system(download)

806                 bunzipper = "bunzip2 nmap-5.61TEST4-android-arm-bin.tar.bz2"

807                 os.system(bunzipper)

808                 tarer = "tar xvf nmap-5.61TEST4-android-arm-bin.tar"

809                 os.system(tarer)

810                 movenmap = "mv nmap-5.61TEST4 ../"

811                 os.system(movenmap)


모든 작업이 완료되면, nmap은 ~/Smartphone-Pentest-Framework/ 디렉터리에 nmap-5.61TEST4 폴더로 존재한다. 



반응형