Download presentation
Presentation is loading. Please wait.
1
Dakuo’s Lecture
2
EPROCESS Struct 를 이용한 Process Hide
김종민(dakuo) / 회장
3
Contents Ⅰ. Idea Ⅱ. EPROCESS Struct Ⅲ. Source Ⅳ. Execute
4
Ⅰ. Idea 프로세스 목록확인 : taskmgr (작업관리자) 프로세스 목록에서 타겟 프로세스를 지운다.
Windows는 프로세스 구조체로 프로세스를 관리 (EPROCESS Struct) 프로세스들은 Double Linked List 로 이루어짐 타겟 프로세스의 리스트를 연결에서 끊는다. Hide Success
5
Ⅰ. Idea
6
Ⅰ. Idea
7
Ⅰ. Idea
8
Ⅱ. EPROCESS Struct EPROCESS Struct Windows 에서는 EPROCESS 구조체를
사용하여 프로세스를 표현 프로세스 관리에 유용한 멤버 변수를 포함 Kernel 영역에 존재 WinDbg 에서 dt _eprocess 명령으로 확인 가능
9
Ⅱ. EPROCESS Struct
10
Ⅱ. EPROCESS Struct typedef struct _EPROCESS { KPROCESS Pcb;
EX_PUSH_LOCK ProcessLock; LARGE_INTEGER CreateTime; LARGE_INTEGER ExitTime; EX_RUNDOWN_REF RundownProtect; PVOID UniqueProcessId; LIST_ENTRY ActiveProcessLinks; // 프로세스 앞, 뒤에 연결된 프로세스 리스트 주소 // Flink : 다음 프로세스 리스트 주소 // Blink : 이전 프로세스 리스트 주소 ULONG QuotaUsage[3]; ……………….. ALPC_PROCESS_CONTEXT AlpcContext; } EPROCESS, *PEPROCESS;
11
Ⅱ. EPROCESS Struct
12
Ⅱ. EPROCESS Struct Procexp.exe ps_hide.exe notepad.exe
13
Ⅲ. Source 소스의 흐름 현재 프로세스 목록을 출력 숨기고 싶은 프로세스의 PID 를 입력
OpenProcess() 로 해당 프로세스 오픈 ZwQuerySystemInformation() 으로 EPROCESS 구조체 주소 값 획득 AdjustTokenPrivileges() 으로 가상 메모리 R/W 권한 획득 ZwSystemDebugControl() 으로 Flink, Blink 값 변경
14
Ⅲ. Source
15
Ⅲ. Source Struct OpenProcess() ZwQuerySystemInformation()
소스의 구성 Struct OpenProcess() ZwQuerySystemInformation() AdjustTokenPrivileges() ZwSystemDebugControl()
16
1. Struct
17
2. OpenProcess() 프로세스를 열어야만 프로세스 핸들이 시스템에 로드된다. OpenProcess( DWORD dwDesiredAccess, // access flag BOOL bInheritHandle, // handle inheritance flag DWORD dwProcessId // Process identifier ); OpenProcess(PROCESS_QUERY_INFORMATION, 0, dwProcessId);
18
3. ZwQuerySystemInformation()
시스템에 로드된 모든 핸들의 정보를 조사하여 EPROCESS 구조체의 주소를 얻는다.
19
3. ZwQuerySystemInformation()
20
4. AdjustTokenPrivileges()
가상 메모리에 R/W 할 수 있는 권한을 얻는다.
21
5. ZwSystemDebugControl()
가상 메모리에 접근하여 값을 변경한다.
22
5. ZwSystemDebugControl()
23
6. Final Flink, Blink 값 변경.
24
Ⅳ. Execute
25
Ⅳ. Execute
26
Ⅳ. Execute
27
Ⅳ. Execute
28
+ Bonus 마찬가지 방법으로 숨겼던 프로세스를 보이게 할 수 있다.
29
+ Bonus
30
+ Bonus
31
+ Bonus
32
Environment 본 문서는 XP 환경에서 작성하였습니다. 문서작성일 :
Similar presentations