Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/darkquasar/azurehunter
Information GatheringDigital ForensicsCloud SecurityThreat IntelligenceIncident ResponseLog Analysis
GitHubdarkquasar/azurehunter

AzureHunter

Azure 및 O365 데이터에 대해 위협 헌팅 플레이북을 실행하는 클라우드 포렌식 PowerShell 모듈

저장소 보기
7958453년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

azurehunter-logo

클라우드 포렌식을 위해 Azure 및 O365 데이터에서 위협 헌팅 플레이북을 실행하는 Powershell 모듈입니다.

ko-fi

CI PS Gallery Coverage Status Documentation Status azurehunter-demo-gif

시작하기

1. 올바른 O365 권한이 있는지 확인

Exchange Online에서 UnifiedAuditLog에 읽기 전용 액세스 권한을 가지려면 다음 역할이 필요합니다: View-Only Audit Logs 또는 Audit Logs.

이러한 역할은 Exchange 관리 센터의 Compliance Management 역할 그룹에 기본적으로 할당됩니다.

참고: 귀하가 보안 분석가, 사고 대응자, 위협 헌터이고 조직에서 이러한 감사 로그에 대한 읽기 전용 액세스 권한을 제공하지 않는 경우, 탐지 및 대응 전략에 대해 심각하게 의문을 제기해야 합니다!

추가 정보:

  • GUI를 사용하여 감사 로그 검색하는 방법
  • Exchange Online에서 역할 그룹 관리
  • UnifiedAuditLog 활성화 방법

참고: 관리자는 Azure 테넌시 클라우드 셸 또는 Azure에 연결된 로컬 PowerShell 인스턴스에서 Get-ManagementRoleEntry "*\Search-UnifiedAuditLog"를 실행하여 이러한 요구 사항을 확인할 수 있습니다.

2. ExchangeOnlineManagement v2 PowerShell 모듈이 설치되어 있는지 확인

ExchangeOnlineManagement(EXOv2)가 설치되어 있는지 확인하십시오. 웹에서 지침을 찾거나 the soc analyst scrolls에서 제 작은 KB로 직접 이동할 수 있습니다.

3. 리포지토리 복제 또는 PSGallery에서 AzureHunter 설치

3.1 리포지토리 복제

  1. 이 리포지토리를 복제합니다.
  2. 모듈을 가져옵니다. Import-Module .\source\AzureHunter.psd1

3.2 PSGallery에서 AzureHunter 설치

다음만 수행하면 됩니다:

root@kitploit:~
Install-Module AzureHunter -Scope CurrentUser
Import-Module AzureHunter

UnifiedAuditLog란 무엇인가?

통합 감사 로그에는 Microsoft 365 관리 센터 또는 Azure 관리 포털에서 수행된 사용자, 그룹, 애플리케이션, 도메인 및 디렉터리 활동이 포함됩니다. Azure AD 이벤트의 전체 목록은 RecordTypes 목록을 참조하십시오.

UnifiedAuditLog는 ExchangeItems, SharePoint, Azure AD, OneDrive, 데이터 거버넌스, 데이터 손실 방지, Windows Defender 경고 및 격리 이벤트, Microsoft Defender for Office 365의 위협 인텔리전스 이벤트 등 다양한 클라우드 작업 유형에 대한 풍부한 데이터를 포함하고 있기 때문에 클라우드 포렌식 정보의 훌륭한 소스입니다!

AzureHunter 데이터 일관성 검사

AzureHunter는 Azure 및 O365 감사 로그에서 가장 높은 로그 밀도가 채굴 및 내보내기되도록 보장하는 유용한 논리를 구현합니다. 이를 위해 각 주기(배치)에 대해 두 가지 작업을 실행합니다:

  1. 자동 시간 창 축소: 이 검사는 ResultSizeUpperThreshold 매개변수(기본값 20k)에 따라 시간 간격이 최적의 간격으로 축소되도록 보장합니다. 즉, 지정된 TimeInterval 내에서 반환된 로그 양이 ResultSizeUpperThreshold보다 높으면 자동 조정이 발생합니다.
  2. 순차 데이터 검사: 반환된 레코드 인덱스가 순차적으로 유효한가?

azurehunter-logical-consistency-checks

사용법

ExchangeOnline에 연결되어 있는지 확인

AzureHunter 명령을 실행하기 전에 Connect-ExchangeOnline을 실행하는 것이 좋습니다. 프로그램은 활성 원격 세션을 확인하고 연결을 시도하지만 일부 PowerShell 버전에서는 이를 허용하지 않으며 직접 수행해야 합니다.

AzureHunter 실행

AzureHunter에는 두 가지 주요 명령이 있습니다: Search-AzureCloudUnifiedLog 및 Invoke-AzHunterPlaybook.

Search-AzureCloudUnifiedLog의 목적은 Azure에서 UnifiedAuditLog 레코드의 가장 높은 비율이 채굴되도록 보장하는 복잡한 논리를 구현하는 것입니다. 기본적으로 중복 제거 및 정렬된 레코드를 CSV 파일로 내보냅니다.

Invoke-AzHunterPlaybook의 목적은 playbooks 폴더에 저장된 헌팅 플레이북에 대한 유연한 인터페이스를 제공하는 것입니다. 이러한 플레이북은 누구나 자신의 분석 및 아이디어를 기여할 수 있도록 설계되었습니다. 현재까지는 두 가지 매우 간단한 플레이북인 AzHunter.Playbook.Exporter와 AzHunter.Playbook.LogonAnalyser만 개발되었습니다. Exporter는 데이터에 중복 제거 및 정렬 작업을 적용한 후 레코드를 내보냅니다. LogonAnalyser는 베타 모드로, Operations 속성이 UserLoggedIn인 이벤트를 추출합니다. 이는 플레이북으로 할 수 있는 작업의 예시이자 플레이북 구성이 얼마나 쉬운지 보여줍니다.

Search-AzureCloudUnifiedLog를 실행할 때 로그 배치당 실행할 플레이북 목록을 전달할 수 있습니다. Search-AzureCloudUnifiedLog는 Invoke-AzHunterPlaybook을 통해 배치를 플레이북에 전달합니다.

마지막으로 Invoke-AzHunterPlaybook은 독립적으로 사용할 수 있습니다. UnifiedAuditLog 레코드의 내보내기가 있는 경우 PowerShell 배열에 로드하여 이 명령에 전달하고 관련 플레이북을 지정할 수 있습니다.

예제 1 | Azure UnifiedAuditLog 검색 실행 및 레코드를 CSV 파일로 추출 (기본 동작)

root@kitploit:~
Search-AzureCloudUnifiedLog -StartDate "2020-03-06T10:00:00" -EndDate "2020-06-09T12:40:00" -TimeInterval 12 -AggregatedResultsFlushSize 5000 -Verbose

이 명령은 다음을 수행합니다:

  • StartDate와 EndDate 사이의 데이터를 검색합니다.
  • 이 날짜 사이에 12시간 창을 구현하여 전체 시간 간격(StartDate --> EndDate)을 스윕합니다. 이 창은 자동으로 축소 및 조정되어 창 내에서 최대 레코드 수를 제공하므로 출력 품질이 향상됩니다. 시간 창은 EndDate에 도달할 때까지 순차적으로 슬라이딩합니다.
  • AggregatedResultsFlushSize 매개변수는 다운스트림 플레이북에서 처리할 레코드 배치를 지정합니다. 여기서는 총량이 5000에 도달하면 AzureHunter에 레코드 배치를 처리하도록 지시합니다. 이렇게 하면 수 시간 동안 방대한 레코드 범위가 CSV 파일로 내보내질 때까지 기다리지 않고 즉시 결과를 얻을 수 있습니다.

예제 2 | CSV 파일에서 헌팅 플레이북 실행

UnifiedAuditLog 레코드를 CSV 파일로 내보냈다고 가정하면 다음을 수행할 수 있습니다:

root@kitploit:~
$RecordArray = Import-Csv .\my-exported-records.csv
Invoke-AzHunterPlaybook -Records $RecordArray -Playbooks 'AzHunter.Playbook.UAL.LogonAnalyser'

쉼표로 구분하여 여러 플레이북을 실행할 수 있으며, 순차적으로 실행됩니다:

root@kitploit:~
$RecordArray = Import-Csv .\my-exported-records.csv
Invoke-AzHunterPlaybook -Records $RecordArray -Playbooks 'AzHunter.Playbook.UAL.Exporter', 'AzHunter.Playbook.UAL.LogonAnalyser'

예제 3 | 깨끗한 eDiscovery 요약 보고서를 생성하기 위해 헌팅 플레이북 실행

eDiscovery 요약 보고서를 CSV 파일로 내보냈다고 가정하면 다음을 수행할 수 있습니다:

root@kitploit:~
$eDiscoReportFile = .\eDisco-Summary-Report-PersonOfInterest.csv
Invoke-AzHunterPlaybook -Records $eDiscoReportFile -Playbooks 'AzHunter.Playbook.eDisco.SummaryReportCleaner'

선택적으로 다음과 같이 플레이북에 일부 매개변수를 전달할 수 있습니다:

root@kitploit:~
$eDiscoReportFile = .\eDisco-Summary-Report-PersonOfInterest.csv
Invoke-AzHunterPlaybook -Records $eDiscoReportFile -Playbooks 'AzHunter.Playbook.eDisco.SummaryReportCleaner' -PlayBookParameters @{"CsvRecordsBatchSize" = 700}

매개변수 "CsvRecordsBatchSize"는 플레이북에 레코드를 700개 단위로 디스크에 플러시하도록 지시합니다.

왜?

SolarWinds 공급망 침해 이후로 사이버 포렌식 전문가들의 깊은 대장간에서 많은 도구가 등장했으며, 사이버 블랙스미스 닌자들이 신중하게 개발했습니다. 이러한 도구는 일반적으로 Azure에서 클라우드 포렌식을 수행하는 데 도움을 줍니다. AzureHunter의 의도는 이 혼잡한 공간에 더 많은 소음을 추가하는 것이 아닙니다. 그러나 저는 이 공간의 일부 도구에서 관찰한 몇 가지 격차를 해결할 필요성을 느꼈습니다(틀릴 수도 있습니다. 다양한 도구가 있으며 모두 알지는 못하기 때문입니다):

  1. Azure 클라우드 포렌식 도구는 일반적으로 UnifiedAuditLog용 Powershell API의 복잡성을 다루지 않습니다. 이 API는 대량의 데이터를 내보낼 때 매우 불안정하고 일관성이 없습니다. 저는 이러한 문제 중 일부를 해결하는 데 충분히 내결함성이 있는 인터페이스를 개발하고자 했으며, 오직 UnifiedAuditLog에만 집중했습니다. 이는 사용자, 애플리케이션 및 서비스에 대한 가장 관련성 높고 상세한 활동 로그를 포함하는 Azure 아티팩트이기 때문입니다.
  2. Azure 클라우드 포렌식 도구는 일반적으로 확장 가능한 Playbooks 개발에 중점을 두지 않습니다. 저는 커뮤니티가 동일한 데이터에서 다양한 의미를 추출하는 새로운 플레이북을 만들고 공유할 수 있도록 돕는 간단한 프레임워크를 고안하고자 했습니다.

그러나 Azure 클라우드 포렌식을 위한 더 많은 기능과 성숙한 애플리케이션을 찾고 있다면 다음 애플리케이션을 만든 사이버 보안 전문가들의 훌륭한 작업을 확인하는 것이 좋습니다:

  • CISA의 Sparrow
  • HAWK
  • CrowdStrike Reporting Tool for Azure CRT

더 포괄적인 도구 목록이 있을 것으로 확신하지만, 제가 생각해낸 것은 이것들입니다. 자유롭게 더 제안해 주십시오.

왜 Powershell인가?

  1. 바퀴를 재발명하고 싶지 않았습니다.
  2. 네, Azure의 UnifiedAuditLog에 대한 PowerShell 인터페이스는 불안정하지만, 생산 시간 측면에서 .NET, Golang, Python과 같은 언어로 완전히 새로운 인터페이스를 작성하여 동일한 목표를 달성하는 데 엄청난 시간이 소요되었을 것입니다. 그동안 사이버 방어 및 대응의 세계는 기다리지 않습니다!

TODO

  • AzureHunter가 활용할 수 있도록 존재해야 하는 표준 플레이북 메타데이터 속성을 지정합니다.
  • 플레이북이 다른 플레이북에 대한 종속성을 지정할 수 있도록 하여 하나가 다른 것보다 먼저 실행되어야 하도록 합니다. 플레이북 체이닝은 흥미로운 결과를 생성하고 코드 중복을 방지할 수 있습니다.
  • Pester 테스트 및 Coveralls 결과를 개발합니다.
  • ReadTheDocs에서 문서를 개발합니다.
  • SIGMA 규칙 표준으로 플레이북을 지정할 수 있도록 합니다(이를 위해 SIGMA 리포지토리에 대한 PR이 필요할 수 있음).

추가 정보

더 많은 정보를 원하시면:

  • AzureHunter.readthedocs.io
  • github.com/darkquasar/AzureHunter
  • ThreatHunterz.com

감사의 말 및 지지자

이 프로젝트 및 기타 오픈 소스 프로젝트를 지원하는 모든 분들께 감사드립니다! 여러분은 저와 같은 사람들이 사이버 전사의 길을 걷고 커뮤니티에 양질의 도구를 제공할 수 있도록 도와주고 있습니다 :)

크레딧

  • 아이콘은 www.flaticon.com의 itim2101이 제작했습니다.
도구 다운로드