분류 전체보기

Mobile

Android 기기에 Frida 설치하는 방법

안드로이드 기기에서 frida를 실행하기위해서는 2가지 조건을 만족해야한다. ○ host PC에 frida 설치○ 안드로이드 기기 내에 frida-server 설치 Install○ host PC - frida 설치frida 설치pip install frida frida-toolshost PC에서 frida 설치방법은 매우 간단하다. pip를 이용해 frida python 라이브러리를 설치해주면 끝이다. frida 버전 확인$ pip show fridaName: fridaVersion: 16.0.2Summary: Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchersHome-page: https:/..

System Hacking Advanced

[dreamhack] out_of_bound

out_of_bound○ Out Of Bound(OOB)배열이나 리스트와 같은 데이터 구조에서 정의된 인덱스나 범위를 넘어선 위치에 접근하는 경우를 의미한다.즉, 배열의 범위를 벗어나는 참조라 하여 Out of Bound라고 부른다.예를 들어보자. char command[10]이 있다고 하자. command[idx]을 조회하는 과정에서 idx를 10으로 입력하면 어떻게 될까? command[10]을 참조하는 상황이 발생한다. command[10]은 idx가 0~9만 존재한다. 하지만 9를 벗어나는 10을 참조하게 된다.즉, command[10]의 영역을 벗어나는 메모리를 참조하게 된다.이렇게 개발자가 의도하지 않은 메모리 영역을 참조하는 취약점을 Out of Bound라고 한다. 만약, read/writ..

System Hacking Advanced

[dreamhack] oneshot

개념정리one_gadget은 Glibc 바이너리 내에서 execve("/bin/sh", rsp+0x30, environ)과 같은 쉘을 실행하는 특정 코드 시퀀스를 의미한다. 이 가젯을 통해 특정 조건이 충족되면 공격자가 직접 쉘을 실행할 수 있다. one_gadget의 가장 큰 장점은 단일 가젯으로 쉘을 획득할 수 있다는 점이다. one_gadget을 사용할 때 중요한 점은 각 가젯이 성공적으로 실행되기 위해 충족해야 하는 특정 조건이 있다는 것이다. 이런 조건은 가젯 실행 시 레지스터 또는 메모리 상태와 관련이 있다. 예를 들어, 일부 가젯은 특정 레지스터가 0이어야 하거나 특정 메모리 위치가 유효한 포인터를 포함해야 할 수 있다. 다음은 one_gadget을 이용한 익스플로잇 단계다.취약한 프로그램 ..

System Hacking Advanced

[dreamhack] fho

개념정리Read-Only Relocations (RELRO) 개념은 바이너리 익스플로잇 보호 메커니즘에서 중요한 역할을 한다. Full RELRO는 특정 유형의 익스플로잇을 방지하는 가장 강력한 보안 조치고 특히 GOT overwrite 기법을 막는 것에 효과적이다. 하지만 이를 우회할 수 있는 방법은 존재한다. 일단 RELRO 개념을 이해해보자. RELRO는 3가지 종류가 있다.No RELRO (RELRO 미적용):보안 수준: 최저설명: 이 설정은 어떤 재배치 읽기 전용 보호도 구현하지 않습니다.취약점: 공격자가 글로벌 오프셋 테이블(GOT)을 덮어쓸 수 있도록 허용하여 GOT 덮어쓰기 공격과 같은 다양한 익스플로잇에 취약합니다.Partial RELRO (부분적인 RELRO):보안 수준: 중간설명: 이..

System Hacking Advanced

[dreamhack] basic_rop_x86

문제풀이└─# checksec basic_rop_x86[*] '/root/dream/rop32/basic_rop_x86' Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000)NX가 적용됐다. 메모리 공간에서 쉘코드를 실행하는 방식의 접근은 힘들어보인다. #include #include #include #include int main(int argc, char *argv[]) { char buf[0x40] = {}; initialize(); read(0, buf, 0x400); write(1..

Mobile

[OWASP-MSTG] UnCrackable-Level3

문제분석UnCrackable-Level2에 이어 Level3를 풀어보자. UnCrackable-Level3.apk를 다운받고 [Android Studio Emulator]를 이용해서 App을 분석했다. 탐지 우회frida로 앱을 실행하면 프로세스가 강제종료되는 것을 확인할 수 있다. 프로세스가 종료되는 이유를 파악하기위해 apk를 디컴파일하고 코드를 확인했다. MainActivity의 oncreate()에서 처음에 verifyLibs()를 실행하는 것을 파악할 수 있었고 이 함수 내부에서 프로세스 종료와 관련된 로직이 있을 것이라고 생각했다.  ○ verifyLibs()private void verifyLibs() { this.crc = new HashMap(); this.crc..

keyme
'분류 전체보기' 카테고리의 글 목록 (10 Page)