Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
AzureHunter — Un modulo Powershell per Cloud Forensics per eseguire playbook di threat hunting sui dati di Azure e O365 | Kitploit
Strumenti/GitHubGitHub/darkquasar/azurehunter
Raccolta InformazioniDigital ForensicsSicurezza CloudThreat IntelligenceRisposta agli IncidentiAnalisi dei Log
GitHubdarkquasar/azurehunter

AzureHunter

Un modulo Powershell per Cloud Forensics per eseguire playbook di threat hunting sui dati di Azure e O365

Vedi Repository
795843 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

azurehunter-logo

Un modulo Powershell per eseguire playbook di threat hunting su dati di Azure e O365 per scopi di Cloud Forensics.

ko-fi

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

Per Iniziare

1. Verifica di avere le autorizzazioni O365 corrette

In Exchange Online sono richiesti i seguenti ruoli per avere accesso in sola lettura a UnifiedAuditLog: View-Only Audit Logs o Audit Logs.

Questi ruoli sono assegnati per impostazione predefinita al gruppo di ruoli Compliance Management nell'Exchange Admin Center.

NOTA: se sei un analista della sicurezza, un incident responder o un threat hunter e la tua organizzazione NON ti concede accesso in sola lettura a questi log di audit, devi seriamente chiederti qual è la loro strategia di rilevamento e risposta!

Ulteriori informazioni:

  • Come cercare il registro di controllo tramite GUI
  • Gestire i gruppi di ruoli in Exchange Online
  • Come abilitare UnifiedAuditLog

NOTA: il tuo amministratore può verificare questi requisiti eseguendo Get-ManagementRoleEntry "*\Search-UnifiedAuditLog" nel cloud shell del tenant Azure o in una sessione PowerShell locale connessa ad Azure.

2. Assicurati che il modulo PowerShell ExchangeOnlineManagement v2 sia installato

Assicurati di avere ExchangeOnlineManagement (EXOv2) installato. Puoi trovare istruzioni sul web o andare direttamente alla mia piccola knowledge base su come farlo su the soc analyst scrolls

3. Clona il repository o installa AzureHunter da PSGallery

3.1 Clonare il repository

  1. Clona questo repository
  2. Importa il modulo Import-Module .\source\AzureHunter.psd1

3.2 Installare AzureHunter da PSGallery

Tutto ciò che devi fare è:

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

Cos'è UnifiedAuditLog?

Il registro di controllo unificato contiene attività di utenti, gruppi, applicazioni, domini e directory eseguite nell'interfaccia di amministrazione di Microsoft 365 o nel portale di gestione di Azure. Per un elenco completo degli eventi di Azure AD, consulta l'elenco di RecordTypes.

UnifiedAuditLog è una grande fonte di informazioni forensi cloud poiché contiene una ricchezza di dati su molti tipi di operazioni cloud come ExchangeItems, SharePoint, Azure AD, OneDrive, Data Governance, Data Loss Prevention, avvisi di Windows Defender ed eventi di quarantena, eventi di intelligence sulle minacce in Microsoft Defender per Office 365 e la lista continua!

Controlli di Coerenza dei Dati di AzureHunter

AzureHunter implementa una logica utile per garantire che la massima densità di log venga estratta ed esportata dai log di controllo di Azure e O365. Per fare ciò, eseguiamo due diverse operazioni per ogni ciclo (batch):

  1. Riduzione Automatica della Finestra Temporale: questo controllo assicura che l'intervallo di tempo venga ridotto all'intervallo ottimale in base al parametro ResultSizeUpperThreshold che per impostazione predefinita è 20k. Ciò significa che se la quantità di log restituiti all'interno del tuo TimeInterval designato è superiore a ResultSizeUpperThreshold, verrà effettuata una regolazione automatica.
  2. Controllo Sequenziale dei Dati: gli indici dei record restituiti sono sequenzialmente validi?

azurehunter-logical-consistency-checks

Utilizzo

Assicurati di connetterti a ExchangeOnline

Si consiglia di eseguire Connect-ExchangeOnline prima di eseguire qualsiasi comando di AzureHunter. Il programma controlla la presenza di una sessione remota attiva e tenta di connettersi, ma alcune versioni di PowerShell non lo consentono e devi farlo comunque manualmente.

Eseguire AzureHunter

AzureHunter ha due comandi principali: Search-AzureCloudUnifiedLog e Invoke-AzHunterPlaybook.

Lo scopo di Search-AzureCloudUnifiedLog è implementare una logica complessa per garantire che la percentuale più alta di record di UnifiedAuditLog venga estratta da Azure. Per impostazione predefinita, esporterà i record estratti e deduplicati in un file CSV.

Lo scopo di Invoke-AzHunterPlaybook è fornire un'interfaccia flessibile per i playbook di hunting memorizzati nella cartella playbooks. Questi playbook sono progettati in modo che chiunque possa contribuire con le proprie analisi e idee. Finora sono stati sviluppati solo due playbook molto semplici: AzHunter.Playbook.Exporter e AzHunter.Playbook.LogonAnalyser. L'Exporter si occupa di esportare i record dopo aver applicato operazioni di deduplicazione e ordinamento ai dati. Il LogonAnalyser è in modalità beta ed estrae eventi in cui la proprietà Operations è UserLoggedIn. È un esempio di ciò che si può fare con i playbook e di quanto sia facile costruirne uno.

Quando esegui Search-AzureCloudUnifiedLog, puoi passare un elenco di playbook da eseguire per ogni batch di log. Search-AzureCloudUnifiedLog inoltrerà il batch ai playbook tramite Invoke-AzHunterPlaybook.

Infine, Invoke-AzHunterPlaybook può essere utilizzato in modo autonomo. Se hai un'esportazione di record di UnifiedAuditLog, puoi caricarli in un array PowerShell e passarli a questo comando specificando i playbook pertinenti.

Esempio 1 | Eseguire una ricerca su Azure UnifiedAuditLog ed estrarre record in file CSV (comportamento predefinito)

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

Questo comando:

  • Cerca dati tra le date in StartDate e EndDate
  • Implementa una finestra di 12 ore tra queste date, che verrà utilizzata per spazzare l'intera lunghezza dell'intervallo di tempo (StartDate --> EndDate). Questa finestra verrà automaticamente ridotta e regolata per fornire la quantità massima di record all'interno della finestra, garantendo così una maggiore qualità dell'output. La finestra temporale scorre sequenzialmente fino a raggiungere EndDate.
  • Il parametro AggregatedResultsFlushSize specifica i batch di record che verranno elaborati dai playbook downstream. Stiamo dicendo ad AzureHunter di elaborare il batch di record una volta che la quantità totale raggiunge 5000. In questo modo, puoi ottenere risultati al volo, senza dover attendere ore fino a quando un'enorme quantità di record viene esportata in file CSV.

Esempio 2 | Eseguire Playbook di Hunting su file CSV

Supponiamo di aver esportato record di UnifiedAuditLog in un file CSV, quindi puoi fare:

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

Puoi eseguire più di un playbook separandoli con virgole; verranno eseguiti in sequenza:

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

Esempio 3 | Eseguire un Playbook di Hunting per produrre un report di riepilogo eDiscovery pulito

Supponiamo di aver esportato un report di riepilogo eDiscovery in un file CSV, quindi puoi fare:

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

Opzionalmente, possiamo passare alcuni parametri al playbook in questo modo:

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

Il parametro "CsvRecordsBatchSize" dirà al playbook di scrivere i record su disco in batch di 700 record.

Perché?

Dalle conseguenze della SolarWinds Supply Chain Compromise sono emersi molti strumenti dalle profondità dei cyberforensicatori, sviluppati attentamente da ninja cyber blacksmith. Questi strumenti di solito aiutano a eseguire la cloud forensics in Azure. La mia intenzione con AzureHunter non è aggiungere più rumore a questo spazio già affollato, tuttavia mi sono trovato nella necessità di affrontare alcune lacune che ho osservato in alcuni degli strumenti in questo campo (potrei sbagliarmi, dato che c'è una proliferazione di strumenti là fuori e non li conosco tutti...):

  1. Gli strumenti forensi cloud Azure di solito non affrontano le complicazioni dell'API PowerShell per UnifiedAuditLog. Questa API è molto instabile e inconsistente quando si esportano grandi quantità di dati. Volevo sviluppare un'interfaccia che fosse tollerante ai guasti (abbastanza) da affrontare alcuni di questi problemi concentrandomi esclusivamente su UnifiedAuditLog, poiché questo è l'artefatto Azure che contiene i log di attività più rilevanti e dettagliati per utenti, applicazioni e servizi.
  2. Gli strumenti forensi cloud Azure di solito non si concentrano sullo sviluppo di Playbook estensibili. Volevo creare un framework semplice che aiutasse la comunità a creare e condividere nuovi playbook per estrarre diversi tipi di significato dagli stessi dati.

Se, tuttavia, stai cercando un'applicazione più ricca di funzionalità e matura per Azure Cloud Forensics, ti suggerisco di dare un'occhiata all'eccellente lavoro svolto dagli esperti di sicurezza informatica che hanno creato le seguenti applicazioni:

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

Sono sicuro che esista un elenco più esteso di strumenti, ma questi sono quelli a cui sono riuscito a pensare. Sentiti libero di suggerirne altri.

Perché PowerShell?

  1. Non volevo reinventare la ruota
  2. Sì, l'interfaccia PowerShell per UnifiedAuditLog di Azure è instabile, ma in termini di time-to-production mi ci sarebbero volute un'enormità di ore per ottenere la stessa cosa scrivendo una nuova interfaccia in linguaggi come .NET, Golang o Python per raggiungere gli stessi obiettivi. Nel frattempo, il mondo della difesa e risposta informatica non aspetta!

TODO

  • Specificare gli attributi standard dei metadati dei playbook che devono essere presenti in modo che AzureHunter possa sfruttarli.
  • Consentire ai playbook di specificare dipendenze da altri playbook in modo che uno debba essere eseguito prima dell'altro. Il concatenamento dei playbook potrebbe produrre risultati interessanti ed evitare duplicazioni di codice.
  • Sviluppare test Pester e risultati Coveralls.
  • Sviluppare documentazione su ReadTheDocs.
  • Consentire la specifica dei playbook secondo lo standard delle regole SIGMA (questo potrebbe richiedere qualche PR al repository SIGMA)

Ulteriori Informazioni

Per maggiori informazioni

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

Riconoscimenti e Sostenitori

Grazie a tutte le persone che supportano questo e altri progetti Open Source! State aiutando persone come me a percorrere la via del cyberwarrior e a fornire toolcraft di qualità alla comunità :)

Crediti

  • Icona realizzata da itim2101 su www.flaticon.com
Scarica lo strumento