Hiding Kernel Driver (KDMapper)
PsLoadedModuleList 일반적으로 윈도우에서 드라이버가 로드되면 PsLoadedModuleList에 기록됩니다. 이는 현재 로드된 드라이버 목록입니다. windbg에서 lmk 명령어를 사용해 확인한 리스트와 동일합니다. 대부분 해킹툴들은 iqvw64e.sys와 같은 취약 드라이버를 로드하고, 사용이 완료되면 언로드하기 때문에 PsLoade...
PsLoadedModuleList 일반적으로 윈도우에서 드라이버가 로드되면 PsLoadedModuleList에 기록됩니다. 이는 현재 로드된 드라이버 목록입니다. windbg에서 lmk 명령어를 사용해 확인한 리스트와 동일합니다. 대부분 해킹툴들은 iqvw64e.sys와 같은 취약 드라이버를 로드하고, 사용이 완료되면 언로드하기 때문에 PsLoade...
작성중….. Control Registers 컨트롤 레지스터는 현재 사용 중인 메모리에 대한 정보를 포함하고, 프로세서에 대한 다양한 기능들을 제어합니다. CR0 ~ CR4 까지 전체적인 이미지는 다음과 같습니다. CR0 보호모드, 페이징, 캐시 등 프로세서의 기본적인 기능들을 제어합니다. Bit Name ...
MSR (Model Specific Registers) IA-32 프로세서와 Intel 64 프로세서에는 MSR이라는 특수한 레지스터가 제공됩니다. RDMSR, WRMSR 명령어를 통해 읽고 쓰기가 가능하며 다양한 하드웨어 기능들을 조회하거나 제어하는데 사용됩니다. 11.4 MODEL-SPECIFIC REGISTERS (MSRS) Most IA-32...
CPUID instruction CPUID는 Intel에서 제공하는 프로세서 명령어입니다. 해당 글에서는 HyperPlatform 코드를 참조합니다. 해당 명령을 통해 현재 프로세서에 대한 식별 정보를 획득할 수 있습니다. CHAPTER 21 PROCESSOR IDENTIFICATION AND FEATURE DETERMINATION When writi...
작성 중… 내용이 너무 방대하다.. Overview 잘 만들어진 최신 해킹툴에서는 사용자에게 보이지 않는 인라인 후킹을 실행합니다. 이를 EPT hooking 또는 Stealth hooking 이라고 합니다. EPT는 Intel CPU에서 제공하는 메모리 가상화 기술(VT-x)에 해당됩니다. 인텔 CPU는 하이퍼바이저에서 GPA(Guest Phys...
Overview 최근 발견되는 해킹툴 대부분은 루트킷 기능을 포함하고 있습니다. 루트킷은 ActiveProcessLinks와 같은 커널 오브젝트를 수정하여 사용자로부터 프로세스를 숨기는 행위입니다. Windows 10 버전에서는 서명되지 않은 드라이버는 허용하지 않습니다. 그렇기에, 해킹툴 개발자들은 kdmapper와 같은 잘 알려진 드라이버 취약...
Thread Environment Block TEB는 스레드에 대한 정보를 포함하고 있는 구조체입니다. 프로세스 가상 메모리 영역에 존재하며, NtCurrentTEB 함수를 통해 획득할 수 있습니다. 함수 내부에서는 Segment Register를 통해 TEB 주소를 획득합니다. // x86 architecture ntdll!NtdllNtCurren...
Process Environment Block PEB는 프로세스에 대한 정보를 포함하고 있는 구조체입니다. 프로세스 가상 메모리 영역에 존재하며, 다음과 같이 EPROCESS를 통해 PEB 주소 확인이 가능합니다. 19: kd> dt_eprocess nt!_EPROCESS +0x550 Peb : Ptr64 _PEB ...
RamMap 물리 메모리 영역에 대한 정보는 SysInternals RAMMap를 통해 확인할 수 있습니다. 현재 제 테스트 PC에서 사용 중인 물리 메모리 영역 정보는 다음과 같습니다. Start End Size 0x1000 0x9F000 ...
STATUS_SINGLE_STEP 최근 진행했던 과제에서 디버깅 시 프로세스가 종료되는 Anti-Debugging 기법을 확인하였습니다. 당시에 Debug Register를 통해 디버깅을 시도하였습니다. DebugAcitveProcess를 통해 Debug Object 또한 정상적으로 생성되는 부분을 확인하였고, 디버깅 과정에서 문제될 요소가 없었습니...