Presentation is loading. Please wait.

Presentation is loading. Please wait.

Dakuo’s Lecture.

Similar presentations


Presentation on theme: "Dakuo’s Lecture."— Presentation transcript:

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 환경에서 작성하였습니다. 문서작성일 :

33

34


Download ppt "Dakuo’s Lecture."

Similar presentations


Ads by Google