
OMIGOD! OM I GOOD? Wiz의 위협 연구팀이 발견한 "OMIGOD" 취약점 중 하나인 CVE-2021-38647에 취약한 VM을 탐지하는 무료 스캐너입니다.
이 저장소는 Wiz의 위협 연구팀이 발견한 "OMIGOD" 취약점 중 하나, 특히 CVE-2021-38647에 취약한 VM을 탐지하는 무료 스캐너를 포함하고 있습니다.
Wiz의 원본 블로그 게시물: https://www.wiz.io/blog/omigod-critical-vulnerabilities-in-omi-azure
스캐너는 Azure API에 연결하기 위해 Azure 자격 증명이 필요하며, 구독 및 리소스 그룹이 주어지면(또는 기본적으로 사용 가능한 모든 항목을 스캔) Linux VM 목록을 검색하고 머신이 취약할 수 있는지 보고합니다.
또한 Microsoft의 자체 도구도 확인하세요: https://github.com/microsoft/OMS-Agent-for-Linux/tree/master/tools/OMIcheck
Azure API에 인증하려면 azure cli(기본값)와 대화형 브라우저 인증이 모두 지원됩니다. --auth 명령줄 매개변수를 확인하세요.
Linux 머신 자체에서 명령을 실행하지 않고 머신이 OMI에 취약한지 여부를 판단하는 직접적인 방법은 없습니다. 이는 Azure API를 통해 확장을 사용하여 RunShellCommand 명령을 실행함으로써 지원됩니다. Microsoft의 자체 도구(https://github.com/microsoft/OMS-Agent-for-Linux/tree/master/tools/OMIcheck)도 이 접근 방식을 사용합니다.
VM이 취약하더라도 HTTP/HTTPS를 통해 OMI 서버를 노출하지 않을 수 있으며(기본값), 노출하더라도 해당 포트가 Azure의 네트워크 보안 그룹에 의해 차단될 수 있으므로 연결할 수 없을 수 있습니다. 이것이 패치를 피해야 하는 이유는 아니지만, 취약한 Linux VM이 많다면 어떤 VM이 더 노출되어 있는지 파악하여 우선순위를 정하는 것이 유용할 수 있습니다.
omigood는 더 포괄적인 접근 방식을 따르며, 명령줄 옵션을 통해 트리거할 수 있는 여러 검사 항목이 포함된 JSON 출력을 생성하여 공격 표면을 결정할 수 있습니다.
omigood가 수행하는 검사는 다음과 같습니다:
1.13.40 이상이어야 합니다. 실행하는 스크립트는 여기에서 확인할 수 있습니다.-e 명령줄 옵션으로 활성화하세요.-r 명령줄 옵션으로 활성화하세요. 사용에 따른 책임은 본인에게 있습니다!/usr/bin/id 명령을 실행하여 머신의 공용 IP를 공격해 봄. 이 검사는 선택 사항이며 VM을 익스플로잇하려는 시도를 포함합니다. -a 명령줄 옵션으로 활성화하세요. 테스트할 권한이 있는 대상에만 사용하세요. 사용에 따른 책임은 본인에게 있습니다!생성된 JSON 출력 파일에는 스캔된 VM에 대한 모든 정보(ID, 운영 체제, 네트워크 보안 그룹, 전원 상태 등)가 포함되어 있습니다.
검사와 관련된 플래그('YES'/'NO')는 다음과 같습니다:
YES.1.13.40 미만인 경우 YES.YES.YES. -e 명령줄 옵션을 사용한 경우에만 해당.1.6.8-1 미만인 것으로 확인된 경우 YES. -r 명령줄 옵션을 사용한 경우에만 해당.YES. -r 명령줄 옵션을 사용한 경우에만 해당.YES. -r 명령줄 옵션을 사용한 경우에만 해당.usage: omigood_scanner.py [-h] [-v] [--auth {azurecli,interactivebrowser}] [-r] [-a] [-e] [-s SUBSCRIPTIONS]
[-g RESOURCEGROUPS] [-m VMS] -o OUTPUT
OMIGood scanner for CVE-2021-38647
optional arguments:
-h, --help show this help message and exit
-v, --verbose [OPTIONAL] Verbose mode: Displays additional debug details.
--auth {azurecli,interactivebrowser}
Authentication mode. Default: azurecli.
-r, --runscript [OPTIONAL] Run Script. Runs bash script on target VMs to check for OMI server, agent and
version. Disabled by default. Use at your own risk.
-a, --attack [OPTIONAL] Try to attack the host. Disabled by default. Use at your own risk.
-e, --effective [OPTIONAL] Check Effective Security Rules. Disabled by default. Requires higher permissions on
Azure.
-s SUBSCRIPTIONS, --subscriptions SUBSCRIPTIONS
[OPTIONAL] Comma separate list of subscriptions IDs. If not specified, it will try all.
-g RESOURCEGROUPS, --resourcegroups RESOURCEGROUPS
[OPTIONAL] Comma separated list of Resource Group names. If not specified, it will try all. If
specified, it will work only with a single subscription provided.
-m VMS, --vms VMS [OPTIONAL] Comma separated list of VM names. If not specified, it will try all. If specified,
it will work only with a single subscription and a single resource group provided.
-o OUTPUT, --output OUTPUT
JSON output file with results.
이 저장소에서 제공되는 소프트웨어 및 코드 샘플은 명시적이든 묵시적이든 어떠한 종류의 보증 없이 "있는 그대로" 제공됩니다. 사용에 따른 책임은 본인에게 있습니다.