Azure 공격적 보안 툴킷
Azure 보안 평가를 위한 Bash 및 PowerShell 스크립트 모음으로, IAM 권한 상승, 컨테이너 보안, Key Vault 노출, Entra ID 구성 등을 다룹니다. Azure Cloud Shell 또는 인증된 모든 터미널에서 실행하도록 설계되었습니다.
스크립트
IAM / ID
| 스크립트 | 셸 | 설명 |
|---|
IAMPrivz.sh | Bash | 테넌트 전체의 모든 RBAC 역할 정의와 할당을 감사하여 위험한 권한 상승 권한인 roleAssignments/write, roleDefinitions/write, federatedIdentityCredentials/write를 찾아냅니다. 플래그가 지정된 각 할당에 대해 보안 주체(사용자, 서비스 주체, 그룹)의 ID를 확인합니다. JSON 및 텍스트 보고서를 출력합니다. |
EntraUserSettings.sh | Bash | Microsoft Graph를 통해 Entra ID 테넌트 수준 사용자 설정을 보고합니다 — 앱 등록 권한, 테넌트 생성, 보안 그룹 생성, 게스트 액세스 제한 수준 및 관리 센터 제한 사항. |
EntraUserSettings.ps1 | PowerShell | EntraUserSettings.sh의 PowerShell 버전. |
GlobalAdmins.sh | Bash | Global Administrator 디렉터리 역할의 모든 구성원을 추출합니다. 표시 이름, UPN, 개체 유형, 계정 상태 및 개체 ID를 수집합니다. 디렉터리에서 아직 활성화되지 않은 경우 역할을 활성화합니다. 형식화된 테이블 + 타임스탬프가 포함된 CSV를 출력합니다. |
GlobalAdmin.ps1 | PowerShell | GlobalAdmins.sh의 PowerShell 버전. |
GuestInvite.sh | Bash | 게스트 초대 정책 및 외부 공동 작업 설정을 감사합니다 — 게스트를 초대할 수 있는 사용자, 게스트 액세스 제한 수준, 이메일 기반 가입 권한. 고위험 구성을 플래그로 표시합니다(예: "모든 사용자가 초대 가능"). 타임스탬프가 포함된 보고서를 출력합니다. |
GuestInvite.ps1 | PowerShell | GuestInvite.sh의 PowerShell 버전. |
JoinableGroups.sh | Bash | 공개적으로 가입 가능한 Entra ID 그룹(공개 표시 유형, 비동적 멤버 자격)을 검색합니다. 메타데이터, 구성원 수 및 할당된 디렉터리 역할을 수집합니다. 그룹을 선택하고 가입할 수 있는 대화형 메뉴를 제공합니다. CSV를 출력합니다. |
JoinableGroups.ps1 | PowerShell | JoinableGroups.sh의 PowerShell 버전. |
컨테이너 보안
Key Vault
자동화
| 스크립트 | 셸 | 설명 |
|---|
RunbookGrabz.sh | Bash | 모든 구독의 모든 Azure Automation 계정을 종합적으로 감사합니다. Runbook 소스 코드, 웹후크 구성, 일정, 작업 기록(최근 30일) 및 하이브리드 작업자 세부 정보를 추출합니다. 계정별 세부 정보 파일과 전용 Runbook 콘텐츠 폴더가 포함된 계층적 디렉터리 구조를 출력합니다. |
RunbookGrabz.ps1 | PowerShell | RunbookGrabz.sh의 PowerShell 버전. |
SQL
| 스크립트 | 셸 | 설명 |
|---|
SQLAuditing.sh | Bash | 모든 구독의 모든 Azure SQL Server 및 Database에 대한 감사 상태를 확인합니다. Blob, Log Analytics 및 Event Hub 대상을 확인합니다. 스마트 로직: 서버 수준 감사가 이미 활성화된 경우 데이터베이스 수준 검사를 건너뜁니다. 감사가 적용되지 않은 데이터베이스를 플래그로 표시합니다. CSV를 출력합니다. |
SQLAuditing.ps1 | PowerShell | SQLAuditing.sh의 PowerShell 버전. |
전제 조건
- Azure CLI(
az login) 또는 Azure Cloud Shell 세션
jq — 모든 Bash 스크립트에 필수
- Az PowerShell 모듈 —
.ps1 스크립트에 필수(Az.Accounts, Az.KeyVault, Az.Sql 등)
- 감사 대상 리소스에 대한 적절한 읽기 권한(최소한 Reader;
Conreg.sh와 같은 일부 스크립트는 쓰기 작업을 테스트함)
사용법
# Run from Azure Cloud Shell or any authenticated terminal
az login
# IAM privilege escalation audit
bash Cloudshell/IAMPrivz.sh
# Container registry permission check with live tests
bash Cloudshell/Conreg.sh
# Key Vault access test (all subscriptions)
bash Cloudshell/KV-Access.sh -a
# Key Vault public exposure audit
bash Cloudshell/KV-PublicAccess.sh
# PowerShell equivalents
pwsh Cloudshell/KV-Access.ps1 -All
pwsh Cloudshell/ContainerPermz.ps1
파일 구조
Azure/
├── README.md
└── Cloudshell/
├── IAMPrivz.sh
├── Conreg.sh
├── ContainerPermz.sh
├── ContainerPermz.ps1
├── EntraUserSettings.sh
├── EntraUserSettings.ps1
├── GlobalAdmins.sh
├── GlobalAdmin.ps1
├── GuestInvite.sh
├── GuestInvite.ps1
├── JoinableGroups.sh
├── JoinableGroups.ps1
├── KV-Access.sh
├── KV-Access.ps1
├── KV-PublicAccess.sh
├── KV-PublicAccess.ps1
├── RunbookGrabz.sh
├── RunbookGrabz.ps1
├── SQLAuditing.sh
└── SQLAuditing.ps1
면책 조항
이 도구는 승인된 보안 평가 및 교육 목적으로만 사용하기 위한 것입니다. 모든 Azure 환경에서 이러한 스크립트를 실행하기 전에 항상 적절한 승인을 받으십시오.