
실행 중인 프로세스, 로드된 DLL, 서비스, 레지스트리 및 드라이버를 열거하여 AV, EDR 및 로깅 도구의 존재를 탐지하는 PowerShell 스크립트로, 레드 팀 정찰을 위한 도구입니다.
이 스크립트는 실행 중인 프로세스, 프로세스 메타데이터, 현재 프로세스에 로드된 DLL 및 각 DLL의 메타데이터, 일반적인 설치 디렉터리, 설치된 서비스, 레지스트리 및 실행 중인 드라이버에서 알려진 방어 제품(예: AV, EDR, 로깅 도구)의 존재 여부를 확인합니다.
이 스크립트는 C2 서버(예: PoshC2)에도 로드할 수 있으며, 모듈 디렉터리에 스크립트를 배치하고 모듈을 로드한 후 실행하면 됩니다. 참고: 이 스크립트는 이제 PoshC2에 포함되어 있으므로 수동으로 추가할 필요가 없습니다.
또한 이 스크립트는 권한이 있는 경우 원격 대상에 대해 검사를 수행할 수 있습니다. 하지만 현재 이러한 검사는 프로세스 확인, 일반적인 설치 디렉터리 및 설치된 서비스로 제한됩니다.
시간이 허락하는 대로 계속 목록을 추가하고 개선할 예정입니다. 전체 로드맵은 아래에서 확인할 수 있습니다.
이 도구의 C# 버전은 PowerShell 버전보다 훨씬 개선되었으며, 다음에서 찾을 수 있습니다:
https://github.com/PwnDexter/SharpEDRChecker
문제나 질문이 있으면 트위터 @PwnDexter로 연락해주세요!
git clone https://github.com/PwnDexter/Invoke-EDRChecker.git
스크립트를 호스트 또는 선택한 C2에 로드한 후 다음 명령을 사용할 수 있습니다:
현재 사용자 권한을 기준으로 로컬 호스트에 대해 검사를 수행합니다:
Invoke-EDRChecker
레지스트리 검사를 강제로 수행합니다(관리자 권한이 아닌 경우 사용):
Invoke-EDRChecker -Force
원격 호스트에 대해 검사를 수행합니다. 실행 전에 연결을 테스트하고 호스트 이름을 확인하려고 시도합니다:
Invoke-EDRChecker -Remote <hostname>
원격 호스트에 대한 사전 검사를 건너뛰려면 -Ignore 플래그를 사용하여 연결 검사를 우회합니다:
Invoke-EDRChecker -Remote <hostname> -Ignore
프로세스와 드라이버가 숨겨져 있어도 발견된 경우:

관리자 권한이 아닌 경우의 가시성 차이를 보여주는 경우:

PoshC2와 함께 EDR-Checker 사용:
