관련기사 보러가기

http://acc.fss.or.kr/secu_info_view.asp?list=/secu_info_list.asp&seq=20765&pageno=1&v_num=1449


사실 안랩에 양질의 정보가 있는 줄 몰랐다. 


포스팅하기에 앞서 이 폰은 진저브레드이며, 루팅된 폰이라는 것을 밝힌다.


아이폰에서 위치정보를 수집하는 것에 대한 논란 때문인지, 기지국 정보가 담겨있는 파일은 있지 않았다.

2.2버전(프로요)에서는 있는 것 같은데, 진저브레드에는 없다.

▲루트익스플로러 실행화면(좌), Wifi cache가 있는 wpa_supplilcatn.conf파일(우)


 wpa_supplilcatn.conf 내용

위 Wifi Cache가 담긴 파일을 보면 다음과 같은 특징이 있다.

1. 최근 접속한 ap 이름

2. 최근 접속한 ap MAC

3. 접속한 AP의 내용

4. 접속한 AP가 비밀번호가 있다면 비밀번호까지

 - 이는 한번 비밀번호를 입력하면 다음부터 입력하지 않는 기능과 관련 되 있을 것이라 본다.


만약 2.2.버전(프로요)였다면 기지국의 정보까지 합쳐서 위치정보를 쉽게 빼낼 수 있을 것이라 생각된다. 뭐 일단은 지금은 안되니 넘어가도록 하자. 하지만 여기서 생각해야 할 부분은 SSID(AP의 이름)가 그 위치를 나타내주는 곳이 있다. 예를 들어 카페 같은 경우에는 그 카페의 이름이 AP의 이름인 경우가 대다수이다.(예, 스타벅스). 이런 특수한 상황에서 위치정보를 파악이 가능 할 것이라고 본다. 물론 악용될 가능성도 있다.





안드로이드 포렌식을 공부하는 과정에서 adb가 필수적이라는 것을 알았다.

먼저 루트권한이 필요한데, 루트 권한을 얻는 것은 많은 포스팅이 있으니, adb관련으로만 하도록 하겠다.

루팅이 무조건 필요한 것은 아니지만, 여러 명령어와 원하는 폴더에 들어가려면 꼭 필요하다.

먼저 스마트폰 안드로이드에서 설정한다.

설정 - 어플리케이션 - 알수 없는 소스 

설정 - 어플리케이션 - 개발 - USB 디버깅

그 후  USB로 스마트폰에 연결 후 컴퓨터가 잘 인식하고 있는지 장치관리자에서 확인한다.


▲ 올바른 ADB 인식


다음 안드로이드 sdk를 다운 받는다.

(http://dev.android.com)

 그 다음 cmd가 adb를 입력하면 된다. 하지만 여기서 잠깐!

adb를 바로 입력하면 되지 않는다. 당연히 올바른 경로가 없으니까.

아래 그림처럼 필요한 경로까지 다 들어가서 adb를 매번 치는 것은 귀찮으니 환경변수로 등록하도록 하자.


▲SDK의 ADB의 경로(들어가기 힘들다)


▲환경변수 설정

그 다음 BusyBox가 필요하다. 처음에는 adb만 설치하고 각종 리눅스명령어를 실행시켜보았는데 안되는 것이었다. 그래서 따로 찾아보니 안드로이드에서 리눅스만큼의 명령어를 제공하지 않아서 곤란함이 있다고 하며, 그것을 해결해주는 BusyBox라는 앱도 있다는 것을 알게 되었다.(이 또한 루트권한이 필요함)  아래 그림에서 보면 BusyBox 설치전에는 uname 명령어가 안되는데, 설치 후 되는 것을 알수 있다.

▲어플마켓에서 BusyBox 

다운받으러가기

▲BusyBox 설치 전

▲BusyBox 설치 후


adb를 통해 안드로이드를 분석하기 위한 환경을 만들어봤다. 생각보다 필요한 것이 많아서 당황스러웠지만 시작이 반이라는 것에 의미를 두며 이번 포스팅을 마치도록 하겠다.






수업중에 트위터 API를 소개를 맡아 공부를 하게 되었다.

특이하게 다른 API와 달리 웹에서 OAuth를 통해 데스크탑 클라이언트 방식을 취한다.

트위터를 구성하는 여러 API가 있다.


Twitter4j는 자바로 트위터API를 구현 할 수 있도록 한 라이브러리다.

twitter4j.com

사용하기도 쉽고, 지원 플랫폼도 다양하므로 쓰기에 편한 것이라고 생각한다.

하지만 실행하는데 문제도 있고 뭔가 어려움이 있어서 도움이 되는 영상이 있는 사이트를 링크한다.

http://www.androidhive.info/2012/09/android-twitter-oauth-connect-tutorial/

순서를 이렇다.

1. dev.twitter.com에서 어플등록을 한다.

2. consumer,comsumer secret키를 획득한다.

3. twitter4j에서 라이브러리를 다운 받는다.

4. 이클립스에 라이브러리 추가

5. 실행!

일단 처음에는 dev.twitter.com에 들어가서 가입을 해야 한다.

콜백 URL에 대해서 서버를 구성하여 받아야 하는 URL이라고 생각했었는데

그것이랑 상관없이 자신의 블로그나 개인 홈페이지 주소를 입력해도 

따로 필요한 동작없이, 아무런 문제없이 잘 동작되는 것 같다.

▲ 어플리케이션 등록 페이지



컨슈머 키를 받는 페이지

읽고, 쓰는 권한

다운 받을 라이브러리

이클립스 라이브러리 추가

다운 받은 곳 지정(CORE파일)

지정된 모습

실행화면


2. 에러

AVD 번호

처음 올린 AVD는 이상하게 실행이 안됬다. 계속적으로 실행하다가 우연치 않게 다음 AVD에 실행을 해보았는데 잘 되었다. 이게 무슨 일인지도 모르겟고 왜 이러는지는 모르겠다. 만약 과제를 위해서 하는 사람들이라면 빠르게 산출물을 내기 위해서 이렇게  AVD를 2개 올려서 2번 째  AVD  올리면 된다. 신기해서 2개 3개 계속 올려봤었는데 첫번째 AVD만 안되고 다음 AVD부터는 실행되었다.


3. 마치며

보안에 관심있다며, 나는 보안으로 나갈 것이라며, 은연중에 코딩을 하지 않으려 했다. 또한 코딩은 그냥 하면 되지 하는 무시 또한 했었다.  하지만 이번에 트위터 API를 준비하면서 이 문제가 그렇게 어려운 것도 아닌데 밤을 새며 하는 내 모습을 보며, 기본적인 코딩과 인터페이스에 익숙해지는 것은 해두어야 할 것 같다는 생각이 들었다. 보안은 전반적인 부분을 알아야 하므로, 기본적인 것 뿐만 아니라 사용하는데 거리낌이 없을정도를 해 둬야 겠다는 생각이 들었다.







안드로이드를 백트랙5(우분투)에 설치하려고 하는데 jdk를 1.5로 해야 한다고 한다.

짚고 넘어가기

진저브레드 버전부터는 JAVA 6을 설치하고

프로요까지는 JAVA 5를 설치한다.

이미 1.6이 자동으로 설치 되있으므로  1.5로 다운그레이드 해야 한다.

http://www.oracle.com/technetwork/java/archive-139210.html에 들어가면 

ORACLE 사이트에서 다운 받을 수 있다. 




다운을 받을려고 하면 ORACLE 계정 확인을 해야 한단다.

결국 가입하고 메일 수신하여 링크를 클릭해야 승인이 된다.



귀찮아서 윈도우에서 모두 가입 승인 완료후 우분투로 넘어와서 다운로드 받았다.



다운로드 받은 곳에서 chmod를 통해 실행권한을 준 후에 실행한다

sudo chmod +x jdk-1_5_0_22-linux-i586.bin

./jdk-1_5_0_22-linux-i586.bin







y를 입력하여 설치를 진행한다.



sudo update-alternatives --install /usr/bin/java java /root/jdk1.5.0_22/bin/java 1

sudo update-alternatives --config java


java -version



설치완료!!





  1. 2013.04.24 05:23

    비밀댓글입니다

+ Recent posts