[보안 메커니즘]
CPU - 링 모드
RING 0,3 주사용 / 대체로 1,2번은 자주 사용 X
RING 0-윈도우 운영체제의 모든 커널 코드
RING 3-유저모드 프로그램
CPU가 끊임없이 링 레벨을 확인함 -> 권한이 없는 메모리 접근 시 인터럽트!!
커널인지 유저 모드인지 링모드를 통해 확인함
유저는 프로세스를 바로 접근 불가
유저모드 쪽에 PEB,TEB 를 통해 프로세스 접근 가능 (??)


KTHREAD에서만 디스패칭 정보 있음
*윈도우는 특권과 계정권한을 모두 사용하여 시스템 관리자로 어떤 계정들이 보안 관련 작업을 할 수 있는지 제어
[보안 식별자 : SID(Security ID)]
- 시스템에서 동작하는 객체들을 식별하기 위해서 사용 (로컬과 도메인 그룹, 로컬 컴퓨터, 도메인, 도메인 멤버, 서비스)
- 보안 관리자는 프로세스인 Lsass.exe에서 관리
- SID는 크게 4개의 값으로 구분할 수 있으며, 하위 권한 식별 필요 시 -A가 추가되는 구조 (S-R-I-A[-A])
-> SID의 필드별 설명(S,R,I,A를 필드라고 부름)
S : 고정된 값 S = Identifies a SID
R : 보정 값 1 = 현재는 1이 사용된다. 이유는 없으며, Microsoft의 사정에 따라 변경될 수 있다.
I : 권한 식별
A: 하위 권한 식별
ex) S-1-1-0 = NULL (Everyone을 의미)
슈퍼특권들 위험할 수 있다 ..!>>!!!
음 강연자분 혼자 가상머신에 자료 복사해와서ㅓ 실습 진행 ..
이벤트 로그 종류

로그를 다 외울 필요까진 없음 .. 그냥 뭐 이런게 있구나 ~ / 포렌식에선 타임로그 중요*
[EPROCESS]
- 개별 프로세스를 나타내는 거대한 구조체
- KPROCESS(Kernel Process Block)의 포인터 포함
(프로세스 정보, 생성되는 스레드 정보를 가짐)
- 프로세스 식별 정보
- 프로세스에서 사용하는 메모리 정보
- PEB 위치 정보를 확인할 수 있으며 커널 모드에 위치 (PEB에는 EPROCESS에 관한 정보를 포함)
EPROCESS와 연관된 개체들
- 프라이빗 가상메모리 공간: 프로세스 실행파일 DLL,공유라이브러리,스택공간,합공간 , 사용자 입력 정보

dt _EPROCESS 입력 시 많은 구조체들 알 수 있음
EPROCESS 어떻게 찾는가 ? -> KDBG를 통해 찾기 가능
[KDBG(_KDDEBUGGER_DATA64) 구조체]
- 크래시나 디버깅 시에 필요한 커널의 정보들을 담은 구조체
- 이 구조체는 아래와 같은 구조의 헤더로 시작
typedef struct _DBGKD_DEBUG_DATA_HEADER64 {
LIST_ENTRY64 List;
ULONG OwnerTag;
ULONG Size;
} DBGKD_DEBUG_DATA_HEADER64, *PDBGKD_DEBUG_DATA_HEADER64;
• 다음의 경우를 통하여 패턴 매칭
- List 변수의 마지막 8바이트가 항상 0으로 채워짐
- OwnerTag는 KDBG로 세팅
- Size는 XP일 경우 0x290, Windows 2000의 경우 0x208 Bytes
VAD (Virtual Address Descriptor)
: 페이지 폴트 발생 시 MMU는 프로세스 주소 공간에서 어떤 가상 주소가 예약되어 있는지 여부를 추적할 수 있게 관리하는 데이터 구조체 집합
- 각 프로세스 주소 공간 상태를 서술하며 자체 균형 AVL Tree 형식으로 구성되어 탐색을 용이하게 만듦
VAD유형
-> Vad - nt!mm - Mm virtual address descriptors
-> VadF - nt!mm - VADs created by a FreeVM splitting
-> Vadl - nt!mm - Mm virtual address descriptoer (long)
-> VadS - nt!mm - Mm virtual address descriptoer (short)
**삽입된 쉘 코드를 포함하는 메모리 영역은 파일로 백업되지 않기 때문에 VadS나 VadF로 Tag가 설정됨
VadS나 VadF로 Tag가 설정되어 있다면 한 번 의심해볼것 !!
파일로 백업되지 않은 부분에 MZ파일이 있다는 것은 인젭션된 (?) 모듈일 가능성 높음
<- 볼라틸리티 플러그 인을 통해 찾아볼 수 있음
DLL 세가지 이중 연결 리스트
-EPROCESS->Peb->Ldr->_PEB_LDR_DATA


- Windbg *86으로 열어줄 것
- 업로드 된 강의자료로 파일 오픈 후 심볼 설정
'소학회 > 인프런_강의정리' 카테고리의 다른 글
| [Memory Forensic Volatility 와 악성코드 분석] ~8/8 강의 정리본 (0) | 2023.08.08 |
|---|---|
| [Memory Forensic Volatility 와 악성코드 분석] ~7/31 강의 정리본 (0) | 2023.07.30 |
| [Memory Forensic Volatility 와 악성코드 분석] ~7/18 강의 정리본 (0) | 2023.07.17 |
| [Memory Forensic Volatility 와 악성코드 분석] ~7/11 강의 정리본 (0) | 2023.07.11 |
| 7주차 개인과제 (0) | 2023.05.23 |