반응형

다음으로 추가한 기능은 Memory Dump 기능이다.

 

모바일 애플리케이션을 분석하다가 보면 내가 원하는 Native Library(.so) 파일이나

 

메모리에서 원하는 파일을 덤프를 해야할 때가 있다.

 

예를 들어 모바일 보안 솔루션에서는 애플리케이션을 실행한 후 맵핑 정보에서 delete하는 경우가 있다.

 

다음 그림을 보자.

 

 

해당 파일은 분석해봐야 정확히 deleted된 파일이 so 파일인지, Dex 파일인지는 알 수 있겠지만

 

위의 그림처럼 실행시 마다 매번 이름을 변경되는 파일이 있다.

 

많이들 사용하고 있는 frida를 이용할 시 해당 파일을 덤프하기 위해서는

 

먼저 루팅 우회, 프리다 우회, 변경되는 문자열를 표현하는 정규식 등을 우회 및 설정 해야지만

 

해당 파일을 덤프할 수 있다.

 

이런 과정을 조금 더 빠르게 수행하기 위해서 Memory Dump 기능를 추가하였다.

 

Memory Dump 화면 구성은 다음과 같다.

 

 

 

Home 탭에서 Memory Dump 버튼을 클릭하면 다음과 같이 현재 연결되어 있는 단말기에서

 

실행되는 모든 애플리케이션을 보여준다.

 

 

 

여기서 분석하고자 하는 애플리케이션을 클릭하면 아래와 같이

 

메모리 맵핑 정보를 보기 편하게 자동으로 파싱하여 볼 수 있다.

 

 

 

그 후 검색을 통해서 맵핑 정보를 빠르게 검색할 수 있고, 덤프할 맵핑 정보를 클릭 시

 

덤프할 offset자동으로 입력해준다.

 

그 후 Dump 버튼을 클릭하면 /data/local/tmp에 분석하는 애플리케이션의 이름으로 된 폴더가 생성되며

 

생성된 폴더안덤프된 파일이 존재한다.

 

방금 설명한 내용이 아래의 과정이다.

 

 

 

끝으로 개인 연구개발 목적이지

 

포스팅 내용 중 보이는 애플리케이션에 대한 악의적인 목적전혀 없다.

반응형

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

07. Home - Utility - Dex Dump  (0) 2024.01.18
06. Home - Utility - System Property  (0) 2024.01.17
05. Tab - Package  (2) 2024.01.17
04. Menu-Proxy  (0) 2023.12.23
03. Menu-Connect  (0) 2023.12.22
반응형

다음으로는 모바일을 분석하던 도중 제일 첫 번째로 하는 것은

 

분석하고자 하는 APK 파일을 Decompile 하여 DEX 파일을 분석하는 것이다.

 

하지만 요즘 대부분의 모바일 보안 솔루션은 서비스하는 애플리케이션의 DEX

 

동적으로 로딩을 하거나 암호화된 파일을 런타임 중에 암호화된 DEX를 복호화를 하기 때문에

 

APK 파일을 Decompile 툴을 이용해서 분석을 할 때 보이지 않아 한계가 존재한다.

 

따라서 APK를 정적으로 분석할때 가장 먼저 하는 것이 AndroidManifest 파일을 먼저 분석하고

 

애플리케이션이 어떻게 동작하는지 이해를 해야한다.

 

AndroidManifest 파일에 대해서 조금 짧게 설명하자면 다음과 같다.

 

AndroidManifest 파일에는 앱의 기본 설정특성을 정의하는 중요한 파일이다.

 

따라서 AndroidManifest 파일에는 앱의 구성 요소, 권한, 서비스, 액티비티, 리시버 등과

 

관련된 정보가 포함되어 있다.

 

이런 정보를 가지고 분석하고자 하는 애플리케이션의 동작을 이해하는 것이다.

 

두 번째로 좋은 포인트는 바로 아래의 모습처럼 모바일 보안 솔루션에서 알려주는 탐지 문구이다.

 

다음 예시를 보자.

 

이름만 들어도 대부분이 알만한 애플리케이션을 루팅 된 단말기에서 실행하면 다음과 같은 문구를 볼 수 있다.

 

(물론 아래의 문구는 다른 단어로 대체한 것이다.)

 

 

따라서 많은 모의 해커들이 애플리케이션을 분석할 때 이런 탐지 문구가 보인다면

 

Decompile 툴을 이용하여 탐지 문구를 찾아서 해당 포인트부터 분석을 시작할 것이다.

 

이렇게 노출된다면 해당 애플리케이션을 분석하는 것은 시간문제이다.

 

따라서 많은 보안 솔루션들은 위의 탐지 로직의 문자열을 Decompile 툴에서 문자열 검색을 못하도록

 

난독화를 진행한다던지 암호화된 파일을 런타임 중 복호화하여 로딩하는

 

Dynamic Dex Loading 기법을 사용해 Decompile 툴에서 노출이 되지 않게 조치를 하고 있다.

 

아래의 예시가 암호화된 DEX 파일의 일부이다.

 

이는 한 모바일 보안 솔루션에서 Dynamic Dex Loading 기법으로 사용하고 있는 암호화된 DEX 파일이다.

 

 

이렇게 암호화된 것을 확인할 수 있다.

 

하지만 이를 런타임 중 확인을 해보면 다음과 같이 복호화 과정을 통해 원본의 파일을 얻을 수 있다.

 

 

 

또 다른 모바일 보안 솔루션에서는 assets 폴더 아래에 암호화된 파일을 활용하여 애플리케이션을 실행한다.

 

 

 

하지만 위의 작업을 통해 원본의 파일을 획득하기 위해 조금이라도 고민을 해보면 정말 귀찮은 작업이다.

 

모바일 보안 솔루션 마다 적용되어 있는 기법도 다르고, 실컷 분석하고 있는데

 

애플리케이션이 업데이트가 된다던지.. 정말 많은 노력과 시간이 필요하다.

 

따라서 이런 과정을 쉽게 하기 위해 해당 애플리케이션에서 실행하고 있는 모든 DEX를 빠르게 덤프하여

 

 Java단을 분석하고자 Utility 탭에 Dex Dump라는 버튼을 만들었다.

 

물론 그 유명한 Frida를 사용하면 되지만 Frida를 사용하여 DEX 파일을 덤프 할 시

 

대부분의 모바일 보안 솔루션에서는 이를 탐지하고 탐지 문구와 함께 분석하고 있는 애플리케이션을

 

종료시킬 것이다.

 

따라서 Frida는 사용하지 않고 해당 기능을 구현해 보았다.

 

 

 

DEX 파일을 덤프 하기 위해 Dex Dump를 클릭하면 현재 앱에서 동작하고 있는 애플리케이션을

 

다음과 같이 보여준다.

 

 

 

이렇게 현재 실행 중인 애플리케이션 목록을 확인한 후 분석하고자 하는 애플리케이션의

 

PID을 입력한 후 Dump 버튼을 클릭하면 모든 DEX가 덤프 된다.

 

하지만, 모든 DEX를 덤프 하기 때문에 시간이 조금 걸리는 건지어디서 시간이 걸리는지

 

작성한 코드를 다시 살펴봐야 하지만 일단은 기능적인 측면에서는 잘 동작한다.

 

 

 

 

위에 보이는 모든 애플리케이션에서 잘 작동하였고 결과는 아래처럼 패키지명 아래에 저장된다.

 

 

 

끝으로 개인 연구개발 목적이지

 

포스팅 내용 중 보이는 애플리케이션에 대한 악의적인 목적전혀 없다

반응형

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

08. Home - Utility - Memory Dump  (0) 2024.01.22
06. Home - Utility - System Property  (0) 2024.01.17
05. Tab - Package  (2) 2024.01.17
04. Menu-Proxy  (0) 2023.12.23
03. Menu-Connect  (0) 2023.12.22
반응형

먼저, 안드로이드에서 의미하는 System Property시스템의 설정값이라고 생각하면 된다.

 

즉, 시스템 속성(System Property)은 안드로이드 시스템의 설정관련된 정보를 포함하는 값이다.

 

이러한 속성은 안드로이드 운영 체제의 동작을 제어하고 구성하는 데 사용된다.

 

따라서 안드로이드 애플리케이션을 분석하다 보면 System Property를 수정해야 하는 경우가 생긴다.

 

만약 System Property를 수정해야하는 경우가 존재할 때 접두사가

 

ro. 또는 persist.로 되어 있는 속성을 수정할 것이다.

 

ro.으로 시작하는 것에 대해서 짧게 설명하면 다음과 같다.

 

이 접두사로 되어 있는 속성은 읽기 전용임을 나타낸다.

 

아래의 그림은 ro.debuggable이라는 속성값을 출력하는 모습이다.

 

즉, ro.로 시작하는 속성값은 속성을 읽을 수만 있고, 수정은 불가능하다.

 

아래의 그림을 보자.

 

위의 과정에서 setprop라는 명령어로 ro.debuggable를 수정하려고 했지만 수정할 수 없다.

 

다음은 persis.로 시작하는 속성값이 있다.

 

persist.으로 시작하는 속성은 영구적으로 저장되는 것을 나타낸다는 의미이다.

 

이 속성들은 장치가 재부팅되어도 유지되는 특성이 있다.

 

persist.로 이루어진 속성은 setprop라는 명령어로 값을 변경할 수 있지만 ro.로 시작하는 속성들은

 

읽기 전용이기 때문에 setprop 명령어로 값을 변경할 수 없다. 

 

따라서 System Property를 변경하기 위해서는 ro.로 시작하는 속성값들을 변경해주어야 한단 말이다.

 

하지만 이를 해결해 주는 이나 기술들은 많이 존재한다.

 

대표적으로 MagiskHidePropsConf 가 있다.

 

하지만 MagiskHidePropsConf를 사용하기 위해서는 Magisk 설치를 해야 한다.

 

Magisk 설치는 크게 어렵지는 않지만 Magisk를 설치한다면

 

루팅 탐지모바일 보안 솔루션에 의해 탐지될 수 있다.

 

하지만 Magisk 없이 편하게 사용하고 싶어,

 

다음과 같이 Utility안에 System Property라는 버튼을 만들었다. 

 

Home 화면에서 System Property라는 버튼을 클릭하면 다음과 같이 현재 단말기에서의

 

System Property의 정보들을 먼저 확인할 수 있다.

 

 

그 후 변경하고 싶은 속성값을 위 검색란에 입력한 후 값을 변경한 후 저장을 클릭한다면

 

읽기 전용을 의미하는 ro.로 시작하는 속성값도 수정할 수 있다.

 

아래의 과정은 ro.debuggable에 대한 속성값을 변경하는 과정이다.

 

 

반응형

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

08. Home - Utility - Memory Dump  (0) 2024.01.22
07. Home - Utility - Dex Dump  (0) 2024.01.18
05. Tab - Package  (2) 2024.01.17
04. Menu-Proxy  (0) 2023.12.23
03. Menu-Connect  (0) 2023.12.22
반응형

현재 Package 탭에 추가한 것은 2가지이다.

 

먼저 Packages List다.

 

Packages List는 현재 단말기에 설치된 패키지 리스트만 보여주는 창이다.

 

이는 분석하다가 Packges명을 빠르게 알아와야할때도 있고

 

어떤 애플리케이션이 설치되어있는지 확인이 필요할 때가 있다.

 

이때 빠르게 보기 위해서 만든 창이다.

 

두 번째는 Download APK이다.

 

분석을 하다가 APK를 단말기에서 추출해도 되지만 추출하다가 보면 잘 안 되는 경우도 있다.

 

잘 안되는 경우는 보통 단일 APK가 아닌 Bundle APK인 가능성이 매우 높아 이를 추출하는 과정과

 

다시 merge 과정에서 에러가 발생했을 가능성이 매우 높다.

 

위 작업을 하면 되긴 하지만.. 너무 귀찮은 작업이다.

 

위의 이유 때문에 단일로 APK 파일을 제공해 주는 사이트에서

 

APK를 다운로드 받아서 분석한 경험이 은근히 많이 있었다.

 

대표적으로 APK Pure, APK Combo 등의 사이트들이 있다.

 

따라서 분석하고자 하는 패키지 명을 입력하면 단일 APK를 다운로드 받는 APK Download 창을 만들었다.

 

com.kakao.talk로 검색

 

위의 상황은 com.kakao.talk로 패키지명을 입력하였을 때 APK ComboAPK Pure 사이트에서

 

입력한 패키지(com.kakao.talk)가 있는지 확인 한 후 존재한다면 APK ComboAPK Pure 버튼과

 

입력창이 다시 활성화 된다.

 

그 후 원하는 APK ComboAPK Pure에서 다운로드를 받으면 단일 APK를 다운로드 받을 수 있다.

 

다음 상황을 보자.

 

com.elevenst.skpay로 검색

 

입력한 패키지 명은 com.elevenst.skpay이다.

 

이것도 첫 번째 상황과 마찬가지로 APK ComboAPK Pure 사이트에서

 

입력한 패키지가 있는지 확인 확인 한다.

 

하지만 APK Combo 버튼 밖에 활성화되지 않았다.

 

이는 입력한 패키지 명에 대한 단일 APKAPK Combo 사이트 밖에 없다는 의미이다.
따라서 APK Combo 버튼만 활성화된 것이다.

 

이렇게 하면 조금 더 쉽게 단일 APK를 다운로드 받을 수 있다.

반응형

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

07. Home - Utility - Dex Dump  (0) 2024.01.18
06. Home - Utility - System Property  (0) 2024.01.17
04. Menu-Proxy  (0) 2023.12.23
03. Menu-Connect  (0) 2023.12.22
02. Home, Menu 화면  (0) 2023.12.22
반응형

 
모바일 애플리케이션을 분석할 때는 크게 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
반응형

처음에 프로그램을 실행할 때 현재 PC와 단말기가 연결되어 있는지 확인한다.

 

연결 결과는 프로그램 제일 하단에 표시되도록 설정하였다.

 

하지만 위의 그림 제일 하단에 빨간색 글씨로 Not Connected라고 적혀있다.

 

이는 프로그램 실행시

PC와 단말기가 연결이 안 되었다는 의미이다.

 

PC와 단말기를 연결 하기 위해 ADB Connect라는 기능을 만들었다.

 

드롭 다운 메뉴 방식으로 Connect 메뉴를 클릭하면 ADB Connect라는 서브 메뉴가 나오도록 구성하였다.

 

 

 

 

반응형

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

05. Tab - Package  (2) 2024.01.17
04. Menu-Proxy  (0) 2023.12.23
02. Home, Menu 화면  (0) 2023.12.22
01. Mode Select  (0) 2023.12.22
0. Prologue  (0) 2023.12.22
반응형

 

모드를 선택한 다음의 Home 화면이다.

 

당연히 Utility 외 많은 것이 추가할 것이 정말 많다.

 

앞으로도 개발하면서 Home 화면과 메뉴 화면은 계속해서 수정되고 추가될 것이다.

 

하지만 툴 개발이 처음이라 정리차원에 대략적인 형태만 잡아봤다.

 

메뉴는 현재 2가지로 구성해보았다.

 

하나는 PC와 단말기가 연결하는 Connect 메뉴

 

두 번째는 모바일에서 실행되는 애플리케이션의 패킷을 분석하기 위해 Proxy 설정이다.

 

 

 

 

 

반응형

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

05. Tab - Package  (2) 2024.01.17
04. Menu-Proxy  (0) 2023.12.23
03. Menu-Connect  (0) 2023.12.22
01. Mode Select  (0) 2023.12.22
0. Prologue  (0) 2023.12.22

반응형

서비스 보안을 하면서 수많은 툴을 사용해 보았다.

 

특히 모바일과 관련된 여러 가지 툴을 사용하면서 정말 이런 걸 어떻게 만들었을까?

 

이건 조금 별로인데.. 혹은 감탄밖에 안 나오는 툴들이 많이 있었다.

 

따라서 문득 현재까지 모바일 분야를 진단하면서

 

배웠던 기술과 좋은 툴들을 종합해서 나만의 분석툴을 만들기로 하였다.

 

뭐 기간은 얼마나 걸리지는 모르겠지만 차근차근 하나씩 해볼 생각이다.

반응형

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

05. Tab - Package  (2) 2024.01.17
04. Menu-Proxy  (0) 2023.12.23
03. Menu-Connect  (0) 2023.12.22
02. Home, Menu 화면  (0) 2023.12.22
01. Mode Select  (0) 2023.12.22
반응형

 

드디어 2021년에 가입했던 청년내일채움공제가 오늘로 끝이 났다.

 

 

타임라인을 보자면 다음과 같다.

 

계약일자 : 2021.02.02.
마지막 공제부금 납부일 : 2023.01.25.
내일채움공제 만기일 : 2023.02.01.
만기일이 속한 달의 급여일 : 2023.02.28.

--------------------------------------------------------------------

운영기관에서 고용노동부로 서류 제출 : 2023.03.13

5회차 기업기여금 적립 : 2023.03.21.
5회차 취업지원금 적립 : 2023.03.28.
만기 신청 : 2023.03.28.

공제금 지급계산서 메일 수령 : 2023. 03. 31.
입금 : 2023. 04. 04.

 

여기서 중요한건 --------------------------------------------------------------------부터이다.

 

설명부터하자면, 만기일2023년 2월 1일이다.

 

즉, 2월 1일까지만 해당 기업에서 근무하면 된다.

 

하지만 여러가지 변수가 있기 때문에 적어도 1주일이나 2주정도 더 다니는것이 좋다.

 

그 후 만기일이 포함된 날의 월급을 받자마자 바로 회사에 서류를 제출해달라고 요청을 한다.

 

여기서부터가 시간이 오래걸린다.

 

물론 알아서 바로 해주는 기업들이 있지만, 대부분 중소기업이라

 

일 처리해주는 사람이 잘 없거나 본인이 챙겨야지만 하는 상황이다.

 

각자의 상황에 맞게 일을 처리해주는분이 계시면 빨리 서류를 준비해달라고 요청을 드리거나,

 

서류를 제출해줄 사람이 없을 경우 그나마 서류를 제출해줄 수 있는 분에게 빠르게 부탁을 하자.

 

일단 내 상황에서는 준비한 서류는 다음과 같다.

 

1. 만기일 시점 (2월)부터 총 6개월간 급여명세서

 

2. 이체확인증(6개월간의 급여에 대한)

 

3. 근로계약서(최초 입사일이 나와있는)

 

4. 중소기업확인증

 

이렇게 총 4개의 서류를 내일채움운영기관에 제출하였다.

 

그렇게 제출한 서류가 1차적으로 운영기관에서 검토한 후 고용노동부로 서류를 제출한다.

 

제출한 후 고용노동부에서 약 1주일에서 2주간 검토를 마친 후 문제가 없을 경우

 

5회차(기업기여금, 정부지원금)이 입금된다.

 

일단 먼저 기업 기여금이 들어오게 되면 카톡으로 알림이 오는데

 

나같은 경우는 기업기여금이 먼저 들어오고 나서 딱 1주일 뒤에 정부지원금이 들어왔다.

 

정부지원금이 들어왔을때는 알림이 안와서 혹시나 싶어 하루에 몇번이나 홈페이지에서 확인했다.

 

홈페이지에서 확인하는게 가장 빠르다.

 

그렇게 5회차까지 모두 납부를 하게 되면 다음과 같이 만기 신청란이 보인다.

 

이렇게 만기금 신청을 눌러 만기를 신청하자.

 

기본적인 내용을 확인한 후 공제만기금 수령계좌에 수령 받을 계좌번호를 입력한다.

 

계좌 입력을 마친 후 내려가다보면 다음과 같은 간단한 설문조사가 나온다.

 

 

여기서 마지막 9번 10번 질문이 더 이어서 공제를 할거냐는 질문이 나오는데 

 

이건 각자 선택해서 진행하면된다.

 

이렇게 하면 만기 신청은 끝이다.

 

그러고 다음과 같은 카톡이 온다.

 

이렇게 왔으면 이제 진짜 마지막으로 기다리면 된다.

 

기다리던중 메일로 공제금 지급 계산서가 왔다.

 

여기서 대충 금액과 이자를 살펴보고 또 기다리면된다.

 

이런 메일을 받아보니 이제야 아 진짜 조금만 기다리면 받을 수 있겠구나라는 생각이 들었다.

 

그리고 내채공 홈페이지를 하루에 몇번씩 들어가서 확인했더니 4월 4일에 지급이 된다고 나와있었다.

 

그래서 4월 4일이 오늘이 오기를 기다리다 오늘 마침내 돈이 입금되었다.

 

 

반응형

+ Recent posts