
CPU-Z CVE-2017-15303 기반 다목적 개념 증명 도구
예시:
참고: Stryker는 cpuz141.sys와 procexp152.sys가 프로그램 자체와 동일한 디렉토리에 위치해야 합니다.
사용에 따른 책임은 사용자 본인에게 있습니다. 일부 게으른 백신은 이 도구를 해킹 도구/악성코드로 표시할 수 있습니다.
CPU-Z (https://www.cpuid.com/softwares/cpu-z.html) 내부 드라이버(CVE-2017-15303에 따른 버전 1.41)를 사용하여 물리적 메모리 읽기/쓰기 및 CPU 제어 레지스터 읽기를 수행합니다.
명령에 따라 Stryker는 DSEFix/TDL로 작동하거나 커널 모드 프로세스 객체(EPROCESS)를 수정합니다.
-load 모드에서 Stryker는 SysInternals Process Explorer 소프트웨어(드라이버 버전 1.52)의 서명된 타사 드라이버를 사용하여 IRP_MJ_DEVICE_CONTROL/IRP_MJ_CREATE/IRP_MJ_CLOSE 핸들러 내에 작은 로더 쉘코드를 배치합니다. 이는 Process Explorer 디스패치 핸들러가 위치한 물리적 메모리를 덮어쓰고 드라이버 IRP_MJ_CREATE(CreateFile 호출)를 호출하여 트리거함으로써 수행됩니다. 트리거된 쉘코드는 입력 드라이버를 커널 모드의 코드 버퍼로 매핑하여 실행하며, 현재 IRQL은 PASSIVE_LEVEL이 됩니다.
또한 약간의 수정을 통해 쉘코드를 커널 모드에서 작은 코드 조각을 간단히 실행하는 데 사용할 수 있습니다(이 도구에는 구현되지 않음).
Stryker는 전체 소스 코드와 함께 제공됩니다. 소스에서 빌드하려면 Microsoft Visual Studio 2015 U1 이상이 필요합니다. 드라이버 빌드를 위해서는 Microsoft Windows Driver Kit 8.1 이상이 필요합니다.
Stryker 자체의 중요한 버그 수정을 제외한 지원은 없습니다. 작동에 대한 보증은 전혀 없습니다. 이 프로그램을 사용하면 컴퓨터가 BSOD 상태가 될 수 있습니다. 컴파일된 바이너리와 소스 코드는 도움이 되기를 바라며 "있는 그대로" 제공되지만, 어떠한 종류의 보증도 없습니다.
소프트웨어의 사용은 전적으로 사용자의 책임입니다.
Q: Process Explorer 드라이버 외에 쉘코드를 실행하는 데 사용할 수 있는 다른 것은 없나요?
A: 네, 하지만 후보를 신중히 검토하여 쉘코드를 저장하고 실행할 수 있는지 확인해야 합니다.
Q: 최신 버전의 CPU-Z는 어떻습니까? 물리적 메모리 및 CPU 제어 레지스터를 읽고 쓰는 데 사용할 수 있나요?
A: CPU-Z 드라이버는 CVE-2017-15303을 해결하기 위해 재설계되었으며 일부 기능을 더 이상 사용할 수 없습니다. 그러나 이전 버전의 CPU-Z는 동일한 기능을 가질 수 있습니다.
Q: CPU-Z와 동일한 기능을 가진 다른 유사한 드라이버가 있나요?
A: 네, 많습니다. 예: WinIO.sys, AsIO64.sys, Asmmap64.sys. 이들 모두 일반적으로 다양한 방식(\Device\PhysicalMemory)으로 물리적 메모리에 대한 읽기/쓰기 액세스를 제공합니다.
Q: 이 도구는 모든 Windows 버전(아직 출시되지 않은 버전 포함)에서 작동하나요?
A: Windows 7 / 8.1 / 10 (RS3까지)에서 테스트되었습니다. 향후 버전에서 작동할 가능성은 낮습니다.
Q: Windows 10 NEXT 또는 Windows XX NEXT에 대한 지원이 추가되나요?
A: 가능성이 낮습니다.
(c) 2018 Stryker Project