네트워크가 서로 연결되고 모바일 통신이 급속히 확장되면서 기업의 보안 도전은 증가했다. 모바일 운영체제인 iOS와 안드로이드는 PC 운영체제와 유사한 기능을 갖추고 있으며, 모바일 보안 솔루션은 주로 다음과 같이 분류된다 안티바이러스: 악성코드 및 피싱 공격 탐지 및 제거 앱 위변조 방지: 악의적으로 변경된 앱 탐지 및 처리 암호화: 중요 데이터 전송 시 암호화를 통한 보안 강화 보안 키패드: 중요 입력 정보의 가상 키패드를 통한 보안 강화 인증서 중계: 전자서명의 검증 및 관리를 위한 공인인증서 기반 시스템 모바일 SSO: 통합된 아이디 관리를 통한 접근 권한 및 보안 강화 암호화는 정보를 획득하지 않는 한 무가치하게 만들어 중요 정보 보호에 중요한 역할을 한다. 특히 개인 정보와 같은 중요한 데이터를..
APK 파일의 구조 APK 파일은 ZIP 형식으로 압축되어 있으며, 내부에는 여러 가지 디렉토리와 파일이 포함되어 있다. apk 파일의 구조는 다음과 같다. APK 파일 │ ├── META-INF/ │ ├── MANIFEST.MF │ ├── CERT.SF │ └── CERT.RSA │ ├── AndroidManifest.xml │ ├── res/ │ ├── drawable/ │ ├── layout/ │ ├── values/ │ └── ... │ ├── assets/ │ ├── fonts/ │ ├── sounds/ │ └── ... │ ├── lib/ │ ├── arm64-v8a/ │ ├── armeabi-v7a/ │ ├── x86/ │ └── ... │ ├── classes.dex │ └── resour..
안드로이드 구조 는 크게 5개의 계층으로 구성되어 있다. 리눅스 커널 계층 리눅스 커널은 안드로이드의 가장 기본적인 계층으로, 하드웨어와 소프트웨어의 중간 역할을 한다. 프로세스 관리, 메모리 관리, 파일 시스템 관리, 네트워크 관리 등의 기능을 제공한다. 리눅스 커널은 안드로이드 기기의 하드웨어를 관리하고, 안드로이드 프레임워크 및 애플리케이션이 실행되기 위한 기본적인 환경을 제공한다. 하드웨어 추상화 계층(HAL) HAL은 하드웨어와 소프트웨어의 차이를 추상화하여, 하드웨어에 대한 접근을 단순화한다. 예를 들어, 카메라, 화면, 오디오 등 다양한 하드웨어 장치에 대한 접근을 HAL을 통해 제공한다. HAL은 안드로이드 프레임워크 및 애플리케이션이 하드웨어에 직접 접근하지 않고도 하드웨어를 사용할 수 ..
frida server {"type":"error","description":"Error: invalid address","stack": "Error: invalid address\n at Object.value [as patchCode] (frida/runtime/core.js:207:1)\n 해당 오류를 검색창에 입력하면 글이 거의 나오지 않는다. 나와도 중국사이트에서 selinux를 끄라고 나오는데 꺼도 꺼지지 않고 해결이 되지 않는다. 그래서 해결한 방법을 공유하고자 글을 써본다. 일단 보통 1. data/local/tmp 이 위치에 frida 서버가 저장되어있을 텐데 모두 지우고 최신 버전으로 설치한다. 로컬에서도 마찬가지로 최신버전으로 버전을 맞추고 파일 경로를 2. 파일 위치를 /system..
frida❓ Frida는 안드로이드, iOS, QNX 등 모바일 플랫폼에서 사용할 수 있는 파이썬 라이브러리이다. Frida는 JavaScript를 사용하여 모바일 앱의 메모리, 코드, 시스템 호출 등을 제어할 수 있으며 이를 통해 앱의 동작을 추적하고, 버그를 찾고, 기능을 추가하거나 수정할 수 있다. Frida의 핵심은 C로 작성되었으며 QuickJS를 대상 프로세스에 주입하고. 여기서 JS는 메모리에 대한 전체 액세스, 후킹 기능 및 프로세스 내부의 기본 기능 호출까지 실행하면서 실행된다. 앱과 대상 프로세스 내에서 실행되는 JS 간의 통신에 사용되는 양방향 통신 채널이 있는데 Python과 JS를 사용하면 위험 없는 API로 빠르게 진행할 수 있다. Frida는 JS에서 오류를 쉽게 포착하고 충돌..
adb❓ ADB(Andriod Debug Bridge)는 안드로이드 디바이스와 컴퓨터 간의 통신을 지원하는 커맨드 라인 도구이다. ADB를 사용하면 안드로이드 디바이스를 관리하고 디버깅, 설치, 파일 전송, 로그 분석, 포트 포워딩 및 다양한 디바이스 관련 작업을 수행할 수 있다. ADB는 안드로이드 애플리케이션 개발 및 디바이스 관리에 필수적인 도구 중 하나이다. adb 주요 기능 애플리케이션 설치 및 제거: ADB를 사용하여 안드로이드 애플리케이션(APK 파일)을 설치하거나 제거할 수 있다. 애플리케이션 디버깅: ADB를 통해 안드로이드 디바이스에서 애플리케이션을 디버깅하고 로그를 확인할 수 있다. 파일 관리: 파일을 디바이스로 복사하거나 디바이스에서 파일을 가져올 수 있다. 스크린샷 및 화면 녹화:..
메모리 덤프❓ 메모리 덤프(Memory Dump)는 컴퓨터 시스템의 현재 메모리 상태를 파일로 저장하는 프로세스나 결과물을 가리키는 용어이다. 디버깅(Debugging): 프로그램이 충돌하거나 예상치 못한 오류가 발생할 때, 메모리 덤프를 생성하여 오류 발생 시점의 메모리 상태를 분석할 수 있다. 이를 통해 오류 원인을 식별하고 수정할 수 있다. 보안 분석(Security Analysis): 해킹 공격이나 악성 코드 분석을 위해 시스템의 메모리 덤프를 생성한다. 이를 통해 공격자의 활동을 추적하거나 악성 코드의 작동 방식을 이해할 수 있다. 성능 분석(Performance Analysis): 프로그램이나 시스템의 성능 문제를 해결하기 위해 메모리 덤프를 생성하여 메모리 누수나 자원 소비에 대한 정보를 얻..
개요 **대응방법** 0. AndroidManifest.xml 의 부분에 android:debuggable 값을 true/false로 설정 1. 디버깅 비활성화 2. 디버깅 시 사용되는 ptrace 선점 안티디버깅 3. 디버깅 시 발생되는 SIGTRAP 시그널 무시 4. ppid를 확인하여 앱을 실행 시킨 프로세스가 디버깅툴(GDB or LLDB)인지 확인 5."/proc/self/status" 파일 내용 중 TracerPid 값 확인 **우회** 디버깅 탐지 기능 취약점은 앱이 동작할 때 동적 디버깅 도구로 디버깅 가능 여부에 따라 취약한지 결정되는데 LLDB나 GDB, IDA와 같은 동적 디버깅 도구로 앱에 attach을 때 디버깅이 가능하면 취약한 것이다. 공격자는 애플리케이션 동적 디버깅을 통하여..
서버 옮기기 Ida 설치 경로에 dbgsrv 디렉터리 안헤 사진과 같이 여러 서버 파일들이 있을 것이다. ( C:\Program Files\IDA 7.0\dbgsrv) 아키텍쳐에 맞는 것을 단말기에 넣어준다. adb shell getprop ro.product.cpu.abi // 아키텍쳐 확인 adb push android_x86_server /data/local/tmp su 로 root 권한으로 실행시키기 위해 파일 권한 변경 포트 포워딩 adb foward 명령어로 안드로이드 서버와 ida 서버를 포워딩 시킨다. adb forward tcp:23946 tcp:23946 //로컬과 단말기간의 포트 포워딩 설정 Ida를 통해 attach 기기의 경우에는 ARMLinux/Android 에뮬레이터면 Linu..
패치한 파일 적용 후 메지스크 재설치 기기를 다운로드 모드로 진입시켜 아까 다운로드 메지스크를 통해 패치한 파일을 기기에 적용시킨다. ( 로컬로 옮겨 놔야 한다. 경로: phone-download) 다운로드 모드에 들어가기 위해서는 핸드폰을 끔과 동시에 볼륨 상하 버튼을 동시에 누르면 된다. 전에 확인했더 조건들이 맞아야 다음으로 진행 가능하다. 오딘을 통해 기기에 패치한 파일을 넣어준다. 이후에 핸드폰이 재부팅 되면 바로 전원 버튼과 볼륨 상 버튼을 눌러 리커버리 모드에 들어가 공장 초기화를 진행하고 리부트를 진행한다. 이제 폰을 켤 때 루팅된 펌웨어로 진입하기 위해 볼륨 상과 전원버튼을 화면이 깜빡일 때 까지 눌러주면 된다. 메지스크를 재설치하고 버전을 확인한다. 헬조선 및 21 버전 메지스크 다운로..