Study 185

[Forensics]파일시스템 - 디스크 논리 구조

전체적인 디스크 논리 구조 디스크 부팅 영역 디스크 파티셔닝 디스크는 운영 체제가 디스크의 다른 부분보다 먼저 읽는 파티션 테이블 이라는 영역에 파티션의 위치와 크기에 대한 정보를 저장합니다. 그러면 각 파티션은 실제 디스크의 일부를 사용하는 별개의 "논리적"디스크로 운영 체제에 나타납니다. 시스템 관리자 a라는 프로그램을 사용하여 파티션을 만들고, 크기를 조정하고, 삭제하고, 조작합니다. 파티셔닝을 사용하면 다른 종류의 파일에 대해 다른 파일 시스템을 설치할 수 있습니다. MBR(Master Boot Record) GPT(GUID Partition Table) BSD 기타 볼륨 영역 파일 시스템에 의해 논리적으로 관리되는 영역 FAT NTFS EXT UFS 기타 출처 학교 수업 내용

Study/Forensics 2022.09.25

[Forensics]파일시스템 - 섹터, 클러스터, 슬랙

섹터(Sector) 디스크에서 I/O 명령을 수행하기 위한 물리적인 최소 단위 1섹터는 512byte 클러스터(Cluster) 파일 시스템에서 디스크에 접근하기 위한 논리적인 최소 단위 섹터 여러개를 묶어 하나의 클러스터로 지정 파일시스템에 따라 다름, 보통 8 sectors를 1 cluster로 지정 (4KB) 슬랙(Slack) 파일의 실제 크기와 디스크 최소 I/O크기, 파일시스템 최소 I/O크기의 차이로 인해 낭비되는 공간 램 슬랙(RAM Slack) 드라이브 슬랙(Drive Slack) 파일 시스템 슬랙(File System Slack) 볼륨 슬랙(Volume Slack) 전체 볼륨 크기와 할당된 파티션의 크기의 차이로 발생하는 낭비 공간 Ex) Disk size 10000 byte 1 Clust..

Study/Forensics 2022.09.25

[Forensics]파일시스템 - 부팅과정

용어정리 부트 코드(Boot Code): 컴퓨터 부팅 시 사용하는 기계 명령어 중앙 처리 장치(CPU): 기계 명령어가 입력되면 해석하여 연산/처리를 수행하는 하드웨어 ROM: 메인보드 내에 내장된 메모리 칩, 읽기만 가능, 비휘발성 메모리 BIOS: 메인보드 ROM에 내장된 프로그램, UEFI(GPT 파티션 형식, MBR도 지원), Legacy(MBR 파티션 형식) 부팅과정 1. 전원 ON 2. ROM 내 BIOS 프로그램에서 명령어 읽기 3. 주변기기 저장장치 탐색 → POST(Power on self test) 4. 탐색된 저장장치의 첫 번째 섹터의 디스크 부트코드 명령어 확인 → 부트스트랩(Bootstrap) 5. CPU에 해당 디스크 부트코드 명렁어 전달 6. CPU가 디스크 부트코드 명령어 해..

Study/Forensics 2022.09.25

[App]루팅된 단말기 adb 접속 및 frida

https://seomj74.tistory.com/253 [App]갤럭시s4 루팅 nox와 ldplayer가 답답해서 공기계를 찾아 루팅했다... 이것도 꽤나 긴 시간 삽질을 함.. 1. 자신의 모델명 알아두기 환경설정 > 디바이스 정보 2. 개발자 모드 아래로 내려가면 빌드번호가 있다. 이를 seomj74.tistory.com 그 다음 adb를 사용하여 접속을 하려 시도했고 이도 삽질을 많이 했다. 결론적으로는 다 필요없고 adb가 설치되어 있으면 되고, Frida가 설치되어 있으면 끝이다. ADB adb devices 를 통해 단말기가 뜨는지 확인 현재 device라고 뜨지만 맨처음엔 unauthorized라고 나왔다. 해당 링크를 참고하여 해결하였다. 다만 여기서 주의해야할 점은 4번 후에 다시 디..

Study/App 2022.09.24

[App]갤럭시s4 루팅

nox와 ldplayer가 답답해서 공기계를 찾아 루팅했다... 이것도 꽤 삽질을 함.. 1. 자신의 모델명 알아두기 환경설정 > 디바이스 정보 2. 개발자 모드 아래로 내려가면 빌드번호가 있다. 이를 여러번 누르면 개발자모드가 작동된다. 3. usb 디버킹 on 설정 > 개발자 옵션 4. 전원을 끈 후 키면서 볼륨하 키 + 전원 키 + 홈 버튼을 동시에 눌러준다. 그러면 아래와 같은 화면이 나오고 볼륨상 키를 눌러 계속 진행한다. 그러면 아래와 같이 루팅 준비가 된다. 5. 파일 다운로드 아래의 링크에 들어가 자신의 기기 모델명을 검색하여 해당 파일을 다운받는다. https://autoroot.chainfire.eu/ CF-Auto-Root autoroot.chainfire.eu 이를 사용하면 TWRP..

Study/App 2022.09.24

[App]어셈블리어 & 레지스터

전에 리버싱 공부할 때 ebp, esp 관련해서 잠시 잠깐 공부를 했었으나.. 너무 오래전이라 다 까먹었당... [Reversing]스택프레임/프롤로그&에필로그 함수호출 1.함수가 사용할 파라미터를 스택에 넣고 함수 시작지점으로 점프(함수 호출)한다. 2.함수 내에서 사용할 스택프레임을 설정한다. (프롤로그) 3.함수의 내용을 수행한다. 4.수행을 마치 seomj74.tistory.com 심지어 포스팅도 하나밖에 안함...ㅎ 이번 App을 공부하며 다시 공부하게 되었다. 레지스터 CPU가 요청을 처리하는데 필요한 데이터를 일시적으로 저장하는 다목적 공간 연산 제어, 디버깅 등등의 목적으로 사용 주황색으로 표시된 것이 범용레지스터로, 64비트 레지스터이다. 64비트가 되면서 E에서 R로 바뀌었다. 산술 연..

Study/App 2022.09.22

[App]AndroGoat Binary Patching(smali)

Binary Patching에 접속하면 아래와 같은 화면이 뜬다. 액세스 권한이 없어 사용할 수 없다고 한다. 버튼을 활성화 시키도록 하자. 실습 1. AndroidManifest.xml 파일 확인 (jadx 사용) 105번째 줄에 'BinaryPatchingActivity' 확인 2. BinaryPatchingActivity 확인 isAdmin() 반환 값이 true여야 "You are Admin now"라는 문자열과 함께 버튼이 활성화 된다. 3. smali 변조 apk 파일 디컴파일 진행 폴더로 이동하여 BinaryPatchingActiviaty.smali 코드 확인 onCreate() 함수 139번째 줄에서 isAdmin 값을 1과 비교하여 같지 않다면(ne) cond_0으로 이동 여기서 Admi..

Study/App 2022.09.15

[App]AndroGoat Emulator Detection(frida)

아래 포스팅과 동일한 환경에서 smali 대신 frida로 진행 [App]AndroGoat Emulator Detection(smali) 녹스(Nox)에서 진행 'CHECK EMULATOR'를 누르면 애뮬레이터면 'This is Emulator'가, 애뮬레이터가 아니라면 'This is not Emulator'가 뜰텐데 나는 왜 저게 뜨지요.... 어쨋든 이것을 우회해 'This is Emulator'.. seomj74.tistory.com 1. firda 서버 실행 (더 상세한 내용은 이전 포스팅들 참고) 2. script 작성 console.log("Script loaded successfully"); Java.perform(function x() { console.log("java perform f..

Study/App 2022.09.15

[App]AndroGoat Emulator Detection(smali)

녹스(Nox)에서 진행 'CHECK EMULATOR'를 누르면 애뮬레이터면 'This is Emulator'가, 애뮬레이터가 아니라면 'This is not Emulator'가 뜰텐데 나는 왜 저게 뜨지요.... 어쨋든 이것을 우회해 'This is Emulator'가 뜨도록 해볼 것이다. 실습 1. jadx를 사용해 AndroidManifest.xml을 확인 87번째 줄을 보아 'EmulatorDetectionActivity'로 이동 2. EmulatorDetectionActivity 확인 버튼을 클릭하면 isEmulator()의 값으로 출력되는 결과가 달라진다. 해당 부분을 확인 FINGERPRINT, DEVICE, MODEL, BRAND, PRODUCT, MANUFACTURER, HARDWARE 의..

Study/App 2022.09.15

[App]AndroGoat NETWORK INTERCEPTING(SSL 피닝)

burp suite를 사용하여 진행 환경설정은 아래 링크를 참고 [App]모바일 burp 프록시 환경 구성하기 1. 네트워크 프록시 설정 설정 > WIFI > WiredSSID 'WiredSSID'를 길게 누르면 아래와 같은 화면이 나온다. 여기서 '네트워크 수정'을 선택 해당 페이지에서 설정이 필요 고급옵션 프록시: 수동 프록시 호 seomj74.tistory.com SSL 피닝 클라이언트 측에서 사용하는 기법 SSL 핸드셰이킹 이후에도 서버의 증명서를 다시 확인하여 중간자 공격을 피할 수 있다. 클라이언트 측에 신뢰할 수 있는 증명서들을 저장하고, 이는 이후 실제 통신 과정에서 서버가 제공하는 증명서와 비교하는 데 사용 만약 이 과정에서 일치하지 않는다면, 연결은 중단될 것이고 유저의 정보가 서버로 ..

Study/App 2022.09.14