
AMD의 Ryzen Master 드라이버(버전 17)를 이용한 커널 익스플로잇을 위한 Cobalt Strike(CS) Beacon Object File(BOF)
AMD의 Ryzen Master 드라이버(버전 17)를 사용한 커널 익스플로잇용 Cobalt Strike Beacon Object File.
제작: Tijme. 저를 가르쳐 준 Alex에게 감사를 전합니다! Northwave Security 덕분에 가능했습니다.
이것은 AMD의 Ryzen Master 드라이버(버전 17)를 익스플로잇하는 Cobalt Strike(CS) Beacon Object File(BOF) 및 실행 파일입니다. 이는 단지 beacon 프로세스 토큰을 시스템 프로세스 토큰으로 덮어씁니다. 그러나 KernelMii와 마찬가지로, 이 BOF는 대부분 CS를 통한 추가 커널 익스플로잇을 위한 좋은 기반에 불과합니다. 이를 이용해 EDR을 비활성화하고, ETW TI를 비활성화하고, LSASS PPL을 덤프하거나, 다른 탐지되지 않는 악성 작업을 수행할 수 있습니다.
저는 커널 드라이버 연구 중에 처음으로 이 취약점(관리자-커널 경계는 보안 경계가 아님으로 간주되므로 취약점이라고 부를 수 있다면 말이죠)을 식별했습니다. 드라이버에서 네 가지 공격 벡터를 식별했습니다. 나중에 저는 @h0mbre가 이러한 벡터 중 두 가지를 2020년(CVE-2020-12928)에 식별했다는 것을 알게 되었습니다. 당시 시스템의 모든 사용자는 심볼릭 링크에 대한 핸들을 열 수 있었습니다. AMD는 로컬 관리자에 대한 접근을 제한함으로써 이를 '수정'했습니다. 그러나 위협 행위자 및 레드 팀 관점에서 여전히 매우 유용합니다.
저는 이 익스플로잇을 Windows 10 Pro 22H2 19045.2486에서 개발하고 테스트했습니다. 이 실행 파일은 어느 정도 안정적입니다. Cobalt Strike beacon에는 4096바이트의 스택 제한이 있으므로 작동할 가능성이 낮습니다(하지만 개발 중에는 항상 작동하긴 했습니다). 실행 파일은 항상 작동해야 합니다.
먼저 이 저장소를 클론하세요. 그런 다음 코드를 검토하고 소스에서 컴파일하여 Cobalt Strike에서 사용하세요.
컴파일
make
사용법
Cobalt Strike Script Manager를 사용하여 AMDRyzenMasterDriverV17Exploit.cna 스크립트를 로드하세요. 그런 다음 아래 명령을 사용하여 익스플로잇을 실행하세요.
$ amd_ryzen_master_driver_v17_exploit
또는 (테스트 목적으로) 컴파일된 실행 파일을 직접 실행할 수 있습니다. 그러면 SYSTEM 권한으로 명령 프롬프트가 실행됩니다.
$ .\AMDRyzenMasterDriverV17Exploit.x64.exe
이슈나 새로운 기능은 issue tracker를 통해 보고할 수 있습니다. 새로 제출하기 전에 여러분의 이슈나 기능이 다른 사람에 의해 아직 보고되지 않았는지 확인하세요.
Copyright (c) 2022 Tijme Gommers & Northwave Security. 모든 권리 보유. 전체 라이선스는 LICENSE.md에서 확인하세요.