전체 글 51

Windbg 명령어

- .process /r /p ffffe381a583b080 -> 해당 위치로 컨텍스트 설정 - .process /i ffff830f9d782380 -> 해당 위치로 컨텍스트 설정 - !process 0 0 -> 모든 프로세스 간단히 - !process 주소 7 -> 상세보기 - !dlls 확장자 는 로드된 모든 모듈 또는 지정된 스레드 또는 프로세스가 사용 중인 모든 모듈의 테이블 항목을 표시 - lmf -> 사용중인 모듈 출력 - lm m [모듈 이름] - !handle 0 7 [프로세스주소] [파일타입ex. File, Section] -> 프로세스가 가진 핸들 출력 - r [레지스터]=[변경할 값] -> 레지스터 값 변경 - !db, !dc, !dd, !dp, !du, and !dw -> To re..

ETC 2022.06.17

Kernel Memory Read/Write Primitive using NalDrv.sys

CVE-2015-2291(NalDrv.sys) 취약한 드라이버 NalDrv.sys 분석환경 Windows10 1909 x64 (빌드 18363.418) 분석 개요 이 취약점은 드라이버에 사용자가 커널 모드 메모리의 임의 주소에 임의의 데이터를 Read/Write 할 수 있도록 하는 IOCTL 코드가 존재한다는 것이다. 상세분석 https://github.com/hfiref0x/KDU GitHub - hfiref0x/KDU: Kernel Driver Utility Kernel Driver Utility. Contribute to hfiref0x/KDU development by creating an account on GitHub. github.com 코드를 바탕으로 분석을 진행하였다. `IRP_MJ_DE..

ETC 2022.05.17

[CVE-2016-5195] Dirty COW 분석

분석 환경 OS • Linux Kernel 3.8 개요 Dirty COW 라고도 불리는 CVE-2016-5195 취약점은 리눅스 커널 메모리 서브시스템에서 read-only memory에 write를 할때 copy-on-write가 발생한다. 이때 race-condition을 이용해 read-only 영역 메모리에 쓰기를하여 권한상승을 할 수 있다. 배경지식 Copy on Write 위 사진은 process1이 fork()를 통해 자식프로세스인 process2를 생성한 모습이다. 만약 자식프로세스가 page C를 사용중에 있고, 이때 부모프로세스가 page C의 데이터를 수정해야 하는 상황이 된다면 자식 프로세스가 사용 중이므로 직접 변경이 불가능하다. 그러면 OS에서는 Page C를 복사한 다음 거기에..

ETC 2022.05.02

CVE-2021-1732 LPE vulnerability analysis

분석 환경 • Windows10 1909 x64 설명 CVE-2021-1732 취약점은 win32kfull!xxxCreateWindowEx의 xxxClientAllocWindowClassExtraBytes 콜백으로 인해tagWND.WndExtra 및 해당 플래그의 설정이 동기화되지 않아 커널 내의 임의의 메모리 값에 읽기 및 쓰기가 가능하여 LPE가 가능하다. xxxCreateWindowEx가 WndExtra 영역이 있는 창을 만들때 win32kfull!xxxClientAllocWindowClassExtraBytes를 호출하여 콜백을 트리거할 것이고, 콜백은 WndExtra 영역을 할당하기 위해 사용자모드로 돌아간다. 이때 후킹된 콜백함수에서 NtUserConsoleControl()에 인자로 현재 창의 ..

ETC 2022.04.08