모바일 모의해킹 프로젝트 수행 중 안드로이드 메모리에 민감한 정보 평문 저장여부를 확인하기 위해 필요한 어플리케이션을 제작하였습니다. 점검 시 유용하게 사용하시길 바라며 아래와 같이 공유합니다.


버전: beta

빌드날짜: 2013. 9. 11

파일크기: 258KB

MD5: d0736e78ec7affb0ab5d89aca233fcd8


Memory_Dump.apk



사용법

 

해당 어플리케이션을 사용하기 위해서는 우선적으로 루팅되어 있는 스마트폰에서 실행해야 합니다. 


제작 당시 jni로 구성하지 않고 binary execute로 제작하여 어플리케이션 실행시 지속적으로 권한을 요청하는 단점이 있습니다.

superuser 어플리케이션에서 설정 > 보안 > 자동응답 > 허가 로 변경하여 사용하면 자동으로 권한을 부여 받아 사용할 수 있습니다.


    

<그림1> 루트권한 요청 변경




   

<그림2> 자동응답 설정 변경



위와 같이 루트권한을 설정 후 첨부된 어플리케이션을 설치 후 실행합니다.


   

<그림3> 어플리케이션 실행





Attach 버튼을 눌러 실행중인 프로세스에 Attach 합니다.


   

<그림4> 프로세스 Attach




Maps 버튼을 누른 후 덤프할 메모리 영역을 선택합니다.


    

<그림5> 덤프할 메모리 영역 선택



덤프 전 선택된 메모리 영역을 메모리 뷰 버튼을 통해 볼 수 있습니다.


<그림6> 선택된 영역 메모리 뷰



메모리 덤프된 파일이 저장될 위치를 선택합니다. 현재 에러로 새폴더가 생성되지 않습니다. 추후에 수정예정입니다.


   

<그림7> 덤프 후 저장될 디렉터리 경로 설정



디렉터리 선택 후 Memory Dump 버튼을 눌러 덤프를 실행 합니다.


   

<그림8> 선택된 디렉터리에 덤프파일 저장




저장된 파일은 선택된 폴더에 PID_시작주소-끝주소 형식으로 저장됩니다.

해당 파일을 PC에서 다운로드로 핵사에디터로 확인합니다.


<그림9> 덤프파일 확인




메모리 영역에 문자열 검색을 위해 테스트 어플리케이션을 생성하여 살펴보겠습니다.


   

<그림10> 테스트 어플리케이션 실행




Attach 버튼을 눌러 PID를 선택 후 Maps 버튼을 눌러 덤프 주소값을 설정합니다.

이때, RW Select  버튼을 눌러 쓰기권한이 존재하는 부분만 선택하여 해당 주소의 메모리 값을 덤프합니다.


    

<그림11> PID, 주소값 선택




저장될 폴더를 선택후 Memory Dump 버튼을 눌러 메모리 덤프를 합니다.

해당 테스트 어플은 75메가 정도의 크기 덤프파일이 생성되었으며 2~3분 정도 시간이 경과된 후 완료 되었습니다.




    

<그림12> 메모리 덤프파일 생성



저장된 파일을 PC에 옮겨 살펴봅니다.


<그림13> 덤프파일 생성 확인





grep 명령어를 이용하여 파일들의 문자열을 검색합니다.


<그림14> 문자열 검색


7744_0000b000-00252000 파일에 검색된 문자열이 존재하는 것을 확인 할 수 있습니다.

핵사 에디터로 메모리 영역에 저장되어 있는 문자열을 확인 할 수 있습니다.

<그림15> 문자열 확인



메모리 덤프 시 새로운 어플리케이션 메모리 덤프할 경우 어플리케이션을 종료후 다시 실행해야 에러나지 않습니다.

주소 받아오는 부분에서 새로운 PID 선택시 배열을 초기화하지 않해서 그런듯 싶습니다. 추가적으로 시간이 주어진다면 개선하여 블로그에 올리도록 하겠습니다.


어플이 허접하다며 아이콘 만들어준 하모군에게 감사하며(흰화면에 기본아이콘이였음) 포스팅을 마치겠습니다.

감사합니다.






날씨가 점점 더워지고 있습니다~

요즘 사무실 내부에서는 에어컨을 풀가동 시키고 있네요.

날씨도 더운데 일하랴 개인연구 하랴 바쁜 가운데 2013년 상반기의 TeamCR@K 내부 활동 정리해 보았습니다~


2013년 상반기에는 각종 프로젝트가 끊이지 않아서 개인 연구나 기타 공동 연구작업이 원활치 않았습니다.

그 와중에도 개인시간을 내어 버그헌팅을 하고 exploit 제작을 하거나, 프로젝트에 투입 중간에도 솔루션의 취약점을 찾아 0day exploit을 만든적도 있었습니다.


다음은 저희 TeamCR@K에서 금년 2013년 상반기 버그헌팅 및 0day exploit 작성과 관련한 내역을 정리한 것입니다.


Date 

Exploit Name 

Classification 

 Summary

 2013.02.22

 DoubleQuarterPounderCheese-130222.c

 0day

 Buffalo TeraStation TS5800D Command Injection Vulnerability Exploit

 2013.05.24

 XE-LFI-1day_fr33p13.py

 1day

 Zeroboard XE Local File Inclusion Vulnerability (From KISA, 2013.05.13)

 2013.05.31

 ********-insecure_file_creation.pl

 0day

 Local root exploit ${PROTECTED_COMMAND} command in ${PROTECTED_SOLUTION}

 2013.05.31

 ********-symlink_follow.sh

 0day

 Local root exploit ${PROTECTED_COMMAND} command in ${PROTECTED_SOLUTION}

 2013.06.10

 hurse.sh

 0day

 Remote Command execution exploit ${PROTECTED_COMMAND} in ${PROTECTED_SOLUTION}

 2013.06.11

 -

 0day

 Buffalo TeraStation TS5800D Remote Command Execution Vulnerability


* Buffalo TeraStation TS5800D Command Injection Vulnerability Exploit


Buffalo에서 만든 TeraStation이라는 NAS 서버에서 취약점을 발견하여 이를 자동화 하는 exploit을 구현했었습니다.

NAS라는 내부장비에서 root 권한의 명령어를 실행 할 수 있는 취약점으로 버그헌팅 당시 NAS 솔루션의 외부 침입 위험을 진단하는 관점보다는 스마트폰의 Jail Break와 같은 관점으로 버그헌팅을 시작했었습니다.


exploit 이름이 DoubleQuarterPounderCheese.c 인 이유는 exploit 작성 당시.. 야식으로 맥**드의 버거를 먹었다는 후문이... ^^;


본 취약점과 관련해서는 다음 URL에서 상세한 내용을 확인 할 수 있습니다.


http://teamcrak.tistory.com/365


* Zeroboard XE Local File Inclusion Vulnerability (From KISA, 2013.05.13)


2013년 5월 13일 KISA 홈페이지를 통해 Zeroboard XE 관련 LFI 취약점에 대해 패치권고가 올라왔었습니다.

당시 TeamCR@K 김모군(fr33p13)은 패치된 코드를 디핑하여 취약점 내용을 구현하는 테스트를 진행했었습니다.

어찌어찌해서 웹 쉘을 올리는 코드가 실행되고 이에 대해 파이썬으로 자동화 exploit을 구현까지 했었네요.


본 취약점과 관련해서는 다음 URL에서 상세한 내용을 확인 할 수 있습니다.


http://teamcrak.tistory.com/369


* Multiple Vulnerabilities in SOLUTION


본 내용은 모의해킹 수행 중 발견한 솔루션 0day 취약점으로 Local privilege escalation 취약점 2종과 Remote command execution 취약점 1종을 발견하고, 이와 관련하여 exploit을 작성 및 별도의 보고서를 고객사로 송부하였습니다.





원격명령실행 취약점과 관련한 exploit은 초기 이름이 hurse.sh 였는데..

동일 프로젝트에 소속된 정모군과 박모군이 이미 권한상승취약점에 대한 exploit을 작성하고 난 이후..

정모군曰 "오! 이거 될 것 같다. 오늘 내가 이거 원격 명령 실행 취약점 나오면 exploit한다"고 했더니..

이 말을 들은 박모군이 이랬답니다.



허세 작렬! 허세 작렬! 허세 작렬! 허세 작렬! 허세 작렬!


...

그 말에 빡친 정모군은 후일 hurse.sh라고 이름 붙인 exploit을 팀원 모두에게 공유했는데 나중에 박모군은 "허세 아닌 패기"라며 발뺌했다고 하네요!


Unix/Linux 서버용 daemon을 만들고 이를 유지보수 할 때에는 여러모로 보안에 신경써야 하는 부분이 많습니다.

특히 Port를 열고 통신을 하는 daemon의 경우 보안취약점이 존재할 경우 해당 취약점을 자동으로 공격하는 스크립트로 대량의 서버접근권한을 탈취당할 수 있고 이런 서버들은 불법적인 공격에 이용당할 수 있습니다.

솔루션의 경우에는 정식 빌드 이전이나 정식 서비스 오픈 이전, 이러한 보안취약점들을 사전에 차단할 수 있도록 보안성검토와 같은 작업을 통해 보안취약점들을 걸러낼 수 있습니다.


* Buffalo TeraStation TS5800D Remote Command Execution Vulnerability


해당 취약점은 아직 exploit까지는 만들어지지 않았지만 SSL 통신을 하는 NAS의 특정 바이너리 형태를 그대로 소스코드로 복원하여 root 권한의 명령어를 실행시킬 수 있는 취약점이라고 합니다. 자세한 사항은 추후 exploit을 작성 한 후 블로그에 올리도록 하겠습니다.


프로젝트로 심신이 고달픈 가운데 개인연구에 힘 쓰는 TeamCR@K 멤버들이 있네요.

날씨도 더운데 몸 상하지 않게 오래오래 같이 연구했으면 좋겠습니다~

Online Analyzers 

Sandroid : http://sanddroid.xjtu.edu.cn/

 

Sandroid는 온라인을 이용한 안드로이드 APK 파일 분석을 해주는 사이트로 APK 파일 업로드 안에 정적 동적 분석 보고서를 리포트해 줍니다.


정적 분석 항목

· 권한 분석(Permission Analysis)

· 구성 요소 분석(Component Analysis)

· 악성 코드 탐지(Malware Detection)

· 카테고리별 분류(Classification Analysis)


동적 분석 항목

· 응용프로그램이 실행되는 동안 파일 작업, 네트워크 행동, 개인정보 노출 등의 동적 행동들을 모니터링하여 분석

 

1. Sandroid를 이용한 APK 파일 분석


분석할 안드로이드 APK 파일을 추출하여 Sandroid 웹 페이지(http://sanddroid.xjtu.edu.cn/)를 통해 해당 파일을 업로드 시도합니다. 분석 결과를 메일로 받기 위해서 메일 주소를 포함시킵니다.

[그림 1] 분석할 APK 파일 업로드

 


파일 업로드 완료 , 완료 메시지를 확인 가능하며 FileMD5 값을 확인할 있습니다.

[그림 2] 업로드 성공 확인

 


, 분석 결과 URL 포함한 메일을 수신할 있습니다.

[그림 3] 분석 결과 URL 확인

 


분석 결과를 통해 일반적인 정보의 확인과 정적 동석 분석 결과를 확인할 있습니다.

[그림 4] 일반적인 정보 정적, 동적 분석 결과 확인

 


정적 분석 항목 Activity Services 정보, 권한 분석(Permission Analysis) 등을 확인할 있습니다.

[그림 5] Activity Services 정보, 권한 분석 확인

 


권한 분석(Permission Analysis) 경우 APK 파일을 apktool 이용한 Decoding , AndroidManifest.xml 파일 상의 권한 확인 결과 동일함을 확인할 있습니다.

[그림 6] AndroidManifest.xml 권한 확인

 


사용중인 API 정보, 포함하고 있는 URL 정보 등을 확인할 있습니다.

[그림 7] API, URL 정보 확인



API 포함하는 URL 경우 dex2jar 이용한 .dex 파일의 .jar 파일로의 변환 jd-gui 이용한 .jar 파일의 .class 파일을 .java Decompile 결과 동일한 URL 찾을 있음을 확인할 있습니다.

[그림 8] Decompile URL 정보 확인

 

Sandroid에서 지원하는 분석 항목 모바일 어플리케이션 점검 기준이 되는 권한 분석을 통한 불필요한 권한 부여 여부, 중요 정보 노출과 관련해 특정 문자열 검증 부분을 지원해 줌 확인 가능합니다. 또한, Activity, Services, 사용중인 API 정보를 통해 해당 APK 파일 분석에 있어 유용한 정보를 가져올 있습니다.

 


2. Online Analyzers 사이트


·  AMAT (http://dunkelheit.com.br/amat/analysis/index_en.php)

·  Anadroid (http://pegasus.cs.utah.edu:8080/) - static analysis

·  AndroTotal (http://andrototal.org/) - AV scanning

·  Comdroid (http://www.comdroid.org/)

·  CopperDroid (http://copperdroid.isg.rhul.ac.uk/copperdroid)

·  Dexter (https://dexter.bluebox.com/) - static analysis

·  Mobile-Sandbox23 (http://mobile-sandbox.com)

·  Stowaway http://www.android-permissions.org/

·  App360scan http://www.app360scan.com/

 


3. 참고 자료


·  http://ashishb.net/security/android-security-related-tools/

TeamCr@k 전원이 지난 주말

2013.1차 M.T project '관악산' 나들이를 다녀왔습니다.

 

신림 휴먼시아아파트 -> 안양유원지 약 6km정도의 산행이었습니다.

군시절 40km FM 군장 코스에 비하면 가벼운 런닝코스 일뿐이지만,

오랫만에 하는 운동으로 인해 지난 일요일은 

팀원 모두 근육통에 시달렸다는 잔혹한 이야기가 .......... 

(참고로 저는 인제 원통에서 군생활 했습니다. 부대 뒷산(625m)도 가볍게 뛰어다니던 ....그런 리즈 시절이...)

 

아직 2013.2차 M.T project 의 장소는 미정입니다.

좋은 곳 알고 계신분은 연락바랍니다.

 

사진 설명: 이번 산행의 유일한 깔딱 코스 돌파 후 상무님께서 등산코스에 대한 브리핑 중입니다.

 

 

사진 설명: 너무 즐거워 주먹을 불끈 쥐고 휴식을 취하는 박대리~

 

 

사진 설명: 이번 산행을 제일 즐겁게 다녀온 '간헐적 단식' 현기입니다. 지치지도 않는지 깔딱 코스도  가볍게 통과~

 

 

 사진 설명: 휴식중인 정대근 팀장입니다. 팔의 각도로 보아 많이 지쳐 있는 것을 확인할 수 있습니다.

 

 

사진설명 : 안양유원지 밥집에서 밥시켜 놓고 찍은 사진입니다. 사진 촬영 후 닭볶음탕과 묵 그리고 막걸리 아주 맛있게 먹었습니다.

 

 

이것으로 2013.1차 M.T project 관악산 나들이 프로젝트 리뷰를 종료하며, 

 

함께한 대장님과 TeamCr@k 팀원 모두 고하셨습니다.

 

 

 

 

 

 

국내 PHP 기반인 많은 사용자를 보유하고 있는 익스프레스엔진(XE)에서 LFI 취약점이 발표되었습니다.

해당 취약점은 일반 사용자 권한으로 서버에 명령어를 실행하여 웹쉘을 업로드 할 수 있어 아래주소에서 패치하시길 바랍니다.

http://www.xpressengine.com/blog/textyle/21937678

 

 

 

<그림1. KISA 보안 업데이트 권고>

 

 

패치 소스 관련해서 아래 경로에서 확인할 수 있습니다.

https://code.google.com/p/xe-core/source/detail?r=13127

 

<그림2. 변경된 소스코드 확인>

 

 

다음은 LFI 취약점이 발생하는 코드 일부 입니다.

create_function 에서 취약점이 발생합니다.

 

<그림3. LFI 취약점 발생 코드>

 

 

패치된 1.7.3.3 버전에서는 create_function 함수를 사용하지 않습니다.

<그림4. 취약점 패치된 코드>

 

패치된 소스를 분석하고 발생한 취약점을 이용하여 exploit code를 작성 하였습니다.

  

<그림5. exploit code 실행 화면>

 

웹쉘을 공격자 서버에서 업로드합니다.

 

<그림6. 웹쉘 업로드 확인>

 

업로드된 경로를 접속하게 되면 웹쉘페이지로 접속할 수 있습니다.

 

<그림7. 웹쉘 실행 확인>

 

 

exploit code와 상세 공격 내역은 문제가 될 요지가 있어 공개하지 않겠습니다.

XE를 사용하는 유저는 해당 취약점을 패치하길 권고합니다.

감사합니다.

 

ps. thanks to indra, maz3