반응형

 
모바일 애플리케이션을 분석할 때는 크게 2가지로 나뉜다.
 
첫 번째는 애플리케이션, 두번째는 모바일 웹 이렇게 2가지로 나뉜다.
 
애플리케이션단은 해당 애플리케이션이 루팅된 환경에서 실행이 되는지
 
또는 안티 디버깅이 적용되어 있는지, 메모리에 중요 정보가 남아 있는지 등
 
애플리케이션을 개발하면 보안에 취약한 점이 없는지 분석을 하는 것이다.
 
모바일 웹단은 애플리케이션서버 간의 통신 구간에서 중요 정보가 노출이 되는지
 
모바일 웹 취약점이 발생하는지 점검을 하는 것이다.
 
따라서 모바일 웹 취약점을 진단하기 위해서는 Proxy가 필수이며
 
Proxy로 통신 구간을 분석하기 위해서는 Proxy의 인증서가 단말기에 꼭 설치가 되어야 한다.
 
하지만 분석 환경이 달라지거나, 인증서가 만료가 되었던가
 
갑자기 Proxy로 웹 구간을 분석이 안될 때 다시 인증서를 발급받고 다시 단말기에 설치해줘야 한다.
 
회사 갔다 와서 거의 공부하고 개인 연구를 진행하다 보면
 
회사에 설치된 Proxy 인증서, 집에 설치된 Proxy 인증서를 매번 넣어줘야 하기 때문에
 
위의 작업이 정말 귀찮다.
 
따라서 해당 작업을 편하게 하기 위해서 Proxy Setting이라는 메뉴에
 
Register CA certificate라는 서브 메뉴를 만들었다.
 
Register CA certificateCA 인증서를 자동으로 단말기에 설치해 주고 알아서 재부팅까지 해준다.

 
Register CA certificate를 클릭하면 2가지 옵션이 나온다.
 
하나는 Home, 하나는 Company다.
 
그 이유는 위에서 말했듯이 환경이 달랐지만 Proxy 인증서도 다시 설치를 해줘야 하기 때문이다.

 
여기서 버튼이 총 3가지가 있다.
 
1. adb root
2. adb disable-verity
3. adb reboot
 
여기서 중요한 것은 2번째 기능이다.
 
adb disable-verity 명령은 Android 기기의 dm-verity 기능을 비활성화하는 명령이다.
 
dm-verity는 Android 기기의 시스템 이미지의 무결성을 보장하기 위한 기능이다.
 
인증서를 설치하기 위해서는 /system/etc/security/cacerts/ 디렉토리에 인증서를 설치해줘야 하는데
 
dm-verity가 활성화되어있으면 /system 디렉토리를 remount 할 수 없다.

따라서 인증서를 단말기에 설치하기 전 adb disable-verity를 꼭 해줘야 한다.
 
따라서 adb disable-verity를 실행하기 전 adb root가 필요하고
 
adb disable-verity를 적용한 후 단말기를 재부팅을 해줘야 한다.
 
하지만 해당 단말기가 adb disable-verity비활성화되어 있다면 굳이 다시 작업을 할 필요가 없다.
 
따라서 인증서를 자동으로 설치하기 전 이를 먼저 체크한 후
 
위 3가지 작업을 하지 않아도 될 때 미리 체크가 되어 있도록 만들었다.
 
하지만 위 3가지 작업을 해야 하는 단말기라면??

 
이렇게 체크를 하도록 설정할 수 있다.
 
다음은 Home 버튼을 클릭했을 때 PC와 단말기 화면이다.
 
모두 자동으로 수행된다.

 

 

 

 

위에서 언급한 것처럼 위의 과정에서 사용자의 개입 없이 모두 자동으로 설정을 진행해 준다.

반응형

'모바일 분석 도구' 카테고리의 다른 글

06. Home - Utility - System Property  (0) 2024.01.17
05. Tab - Package  (2) 2024.01.17
03. Menu-Connect  (0) 2023.12.22
02. Home, Menu 화면  (0) 2023.12.22
01. Mode Select  (0) 2023.12.22
반응형

모의해킹을 하다보면 이든 이든 진단을 하기 위해서는 프록시는 필수다.

 

대표적으로 피들러 버프 많이 사용된다.

 

하지만 모바일을 진단할때는 피들러버프+피들러를 많이 사용한다.

 

먼저 피들러를 다운로드 받자. (클릭)

 

 

저기에 정보를 입력하고 Download for Windows 클릭해서 다운로드 받아주자.

 

 

그리고 그냥 설치 해주면된다.

 

설치가 끝나면 피들러를 실행 시키면 다음과 같은 화면을 볼 수 있다.

 

이처럼 밑에 Capturing을 볼 수 있는데 이것은 지금 웹 프록시가 작동중이다는것이다.

 

피들러가 켜진 상태로 네이버에 들어가보자

 

 

이렇게 20번째로 잡힌 패킷에서 URL이 네이버인것을 볼 수 있는데 해당 패킷을 더블 클릭하면

 

오른쪽에 웹 프록시에서 잡은 패킷을 볼 수 있다.

 

하지만 저렇게 노란색 문구로 HTTPS decryption이 불가능하다고 한다.

 

HTTPS 프로토콜은 암호화 프로토콜이기 때문에 제 3자가 볼 수 없다.

 

하지만 웹 프록시에서 나의 패킷을 볼 수가 있는데 이를 보기 위해서 인증서를 설치를 해주어야한다.

 

따라서 저기 노란색 문구를 클릭해서 피들러 인증서를 설치해보자.

 

 

위에서 Decryption HTTPS traffic을 체크하면 옆의 피들러의 인증서를 설치하겠냐고 묻는다.

 

Yes를 눌러주자.

 

또 Yes

 

 

또 또 Yes

또 또 또 Yes

또 또 또 또 Yes

 

이렇게 하다보면 이제 HTTPS 프로콜의 내용도 볼 수있다.

 

다시 네이버에 접속해보자.

 

 

이제 HTTPS 패킷의 내용도 볼 수 있게된다!

 

추가


 

 

그리고 만약에 브라우저에서 서버로 Requset할 때 패킷을 수정하고 싶으면 F11을 누르고 

 

패킷을 수정하면 된다.

 

 

또한 서버로 보내고 응답오는 Response 패킷을 수정하고 싶으면 Alt+F11을 누르고

 

Response 패킷을 수정하면 된다.

 

 

실제 문제에서 사용하는 예시는 여기(클릭)에 있다.

반응형

'기타' 카테고리의 다른 글

[Anaconda] Frida 설치  (0) 2022.01.23
[Java] 자바 JR 설치  (0) 2021.11.06
[Python] 파이참(Pycharm) 설치  (0) 2021.11.06
[Python] 아나콘다(Anaconda) 설치  (0) 2021.01.15
Apache 및 PHP 연동  (0) 2020.12.08
반응형

먼저 안드로이드의 Pentesting를 배우기 위해서는 환경을 Setup 해줘야한다.

 

먼저 준비물이다.

 

3가지만 있으면 된다.

 

루팅된 테스트 폰과 PC와 테스트 폰과 PC가 연결 할 수 있는 선만 있으면된다.

 

다른것도 있지만 그건 설치만 하면된다.

 

우선 PC와 테스트용 모바일 폰이 연결이 되어야하며 PC에서 폰으로 명령어를 내리기 위해

 

ADB를 설치해주어야한다.

 

ADB란?

 

Android Debug Bridge의 약자로, Android를 위한 Debugging Tool이다.

 

주로 Debugging 용도로 사용되며 쉽게 설명하자면 PC에서 Android 기반의 Device와 연결하여

 

PC에서 보다 쉽게 Debugging 하기 위해 사용된다.

 

설치는 다음 주소에서 한다. (클릭)

 

 

Windows용을 다운받아 알집을 풀어주자.

 

압축을 풀면 platform-tools 폴더와 함께 다음과 같은 파일이 보일 것이다.

 

 

이제 cmd창에서 adb를 사용하기 위해 환경 변수를 설정해 줄것이다.

 

 

윈도우키를 누르고 "환경" 이라고 검색하면 시스템 환경 변수 편집이 있다.

 

 

여기서 환경 변수를 클릭한다.

 

 

클릭한 후 Path라는 것을 더블클릭하여 아까 설치한 platform-tools 폴더 경로를 입력해주자.

 

 

그 후 cmd 창을 열어 adb라고 입력 해보자.

 

이렇게 adb가 실행되면 PC와 테스트용 단말기가 연결이 가능하다.

 

pc와 테스트용 단말기를 연결하여 adb shell을 입력해보자.

 

이렇게 여러가지 명령어를 cmd 창을 통해 명령 할 수 있다.

 

일단 diva-beta.apk를 설치 해준다. (댓글로 요청시 보내드리겠습니다.)

 

설치 하면 zip 파일 형태인 diva-beta.apk가 보인다.

 

 

해당 경로에서 cmd 창을 열어 adb install diva-beta.apk를 입력해준다.

 

 

위의 명령어는 adb로 apk를 install 설치 한다는 의미이다.

 

이렇게하면 테스트용 단말기에 diva.apk가 설치된다.

 

그리고 pc에서 알집으로 diva-beta.apk를 풀어보자.

 

알집으로 푼 AndroidManifest.xml 파일을 에디터로 열어보자.

 

 

이렇게 알 수 없는 값으로 보인다.

 

그 이유는 APK가 컴파일 된 후 바로 알집을 풀었기 때문에 컴파일된 코드이다.

 

따라서 우리가 눈으로 읽을 수 없다.

 

AndroidManifest.xml 코드를 읽고 싶다면 Decomplie 과정을 진행해야한다.

 

Decomplie 과정을 진행하기 위해서는 apktool이나 JEBDecomplier tool을 사용한다.

 

apktool이란 대표적인 안드로이드 애플리케이션(Android Application) 대상의 리버스 엔지니어링 도구이다.

 

APK 파일을 분석하여 리소스를 뽑아낼 수 있고(디코딩), 코드를 수정하여 다시 재빌드(Rebuild)할 수도 있으며

 

실제로 XML, 이미지 파일, .dex 파일을 포함하여 안드로이드 앱의 주요 소스를 뽑기 위해 가장 많이 사용되고 있는 Tool 중 하나이다.

 

JEB 또한 apktool과 같은 리버스 엔지니어링 도구라고 생각하면 된다.

 

apktool은 여기서 다운로드 받을 수 있다. (클릭)

 

apktool로 Decomplie을 진행 할 때 다음과 같은 명령어를 입력한다.

 

java -jar apktool_버전 d diva-beta.apk

 

 

또한 JEB로 apk를 Decomplie할 때는 JEB에 Decomplie을 원하는 apk를 드래그하면 된다.

 

 

이제 AndroidManifest.xml가 Decomplie 되어 우리가 소스를 다시 분석할 수 있다.

 

 

위의 과정은 우리가 Source Code Level에서 분석할 때 주로 쓰이는 방법이다.

 

이제 App과 서버단에서 통신을 할 때 어떤 데이터를 주고 받는지 분석하기 위해

 

Android Traffic를 잡는 방법을 알아보자.

 

Android Traffic를 잡기 위해서는 Web-proxy를 사용한다.

 

Web-proxy로 대표적으로 burpfiddler가 있다.

 

burp에 대해서는 많은 포스팅이 되어 있으므로 이번에는 fiddler로 기준으로 설명하겠다.

 

fiddler를 설치하고 Tool-Options-HTTPS 탭에가서 밑에처럼 박스를 체크한다.

 

체크할 때 시스템에 인증서를 설치하는데 다 Yes를 눌러주자.

 

 

그 후 Connections 탭에가서 Allow remote computers to connect 박스를 체크를 해주자.

 

그 후 테스트용 폰으로 들어가서 PC의 ip 주소:8888를 입력한다.

 

 

그 후 fiddler 인증서를 테스트 단말기에 설치 해준다.

 

설치 한 후 테스트용 단말기에서 WiFi 항목에서 PC와 같은 네트워크 대역에 있는 WiFi을 클릭 한 후

 

고급탭에서 프록시를 자동에서 수동으로 변경한다.

 

변경 후 프록시 호스트 이름에 PC의 IP를 입력해주고 프록시 포트에는 8888로 입력 후 저장을 누른다.

 

 

 

 

그 후 fiddler에서 보면 테스트 단말기에서 전송되는 패킷을 볼 수 가 있다.

 

여기까지가 DIVA를 풀기 위한 전체적인 Setup 과정으로 보면 되겠다.

반응형

'모바일 해킹 > AoS' 카테고리의 다른 글

[Android] NDK란??  (0) 2022.03.09
[Android] Frida 설치  (0) 2022.01.23
Byte Code & Binary Code  (2) 2021.11.09
Android Penetration Testing - Rooting (Galaxy S6)  (5) 2021.08.27
Android Penetration Testing - Introduction  (0) 2021.01.11

+ Recent posts