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
azureOutlookC2 — Azure Outlook Command & Control (C2) - Controlla a distanza un dispositivo Windows compromesso dal tuo account di posta Outlook. Strumento di emulazione delle minacce per l'APT nordcoreano InkySquid / ScarCruft / APT37. TTP: Usa l'API Microsoft Graph per le operazioni C2. | Kitploit
Strumenti/GitHubGitHub/boku7/azureoutlookc2
Sicurezza CloudCommand and ControlRed TeamingSviluppo PayloadSicurezza delle API
GitHubboku7/azureoutlookc2

azureOutlookC2

Azure Outlook Command & Control (C2) - Controlla a distanza un dispositivo Windows compromesso dal tuo account di posta Outlook. Strumento di emulazione delle minacce per l'APT nordcoreano InkySquid / ScarCruft / APT37. TTP: Usa l'API Microsoft Graph per le operazioni C2.

Vedi Repository
5041003 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

Azure Outlook C2

Azure Outlook Command & Control che utilizza l'API Microsoft Graph per le comunicazioni C2 e l'esfiltrazione dei dati.

Controlla da remoto un dispositivo Windows compromesso dalla tua casella di posta Outlook.

Creatori: Bobby Cooke (@0xBoku) e Paul Ungur (@C5pider)

Aggiornamento CTI sulla minaccia (13/02/22)

Elastic Security Labs ha scoperto intrusioni attive nel mondo reale che utilizzano SIESTAGRAPH. SIESTAGRAPH interagisce con l'API Graph di Microsoft per il comando e controllo utilizzando Outlook e OneDrive. Dai un'occhiata ai loro fantastici blog di analisi malware sulle comunicazioni Azure Outlook C2 qui sotto.

  • https://www.elastic.co/security-labs/siestagraph-new-implant-uncovered-in-asean-member-foreign-ministry
  • https://www.elastic.co/security-labs/update-to-the-REF2924-intrusion-set-and-related-campaigns

Aggiornamento (27/09/21)

  • Azure Outlook C2 ora ha un'interfaccia utente grafica (GUI) multipiattaforma!
    • Un grande ringraziamento a Paul Ungur (@C5pider) per avermi insegnato come creare una GUI C2 con QT!

Controllare un computer tramite la casella di posta di Outlook con la GUI C2

Controllare un computer tramite la casella di posta di Outlook

  • L'aggiornamento supporta il controllo originale tramite la casella di posta di Outlook.

Se hai informazioni su progetti simili, informazioni CTI su questo TTP utilizzato nel mondo reale da gruppi APT/ransomware, consigli difensivi, raccomandazioni per Red Teamer interessati all'emulazione delle minacce Azure C2, o qualsiasi altra informazione che sarebbe un buon aggiunta a questo blog/readme, contattami o invia una Pull Request. Grazie!

Informazioni su Azure Outlook C2

Questo progetto consiste in un impianto che fa beaconing verso una casella di posta Outlook di Azure controllata dall'attaccante, che funge da Comando e Controllo (C2); controllando da remoto il dispositivo compromesso. Un Token di Aggiornamento (Refresh Token) di Azure per la casella di posta C2 dell'attaccante è hard-coded nell'impianto durante la compilazione. Quando viene eseguito su un dispositivo Windows, l'impianto accede alla casella Bozze (Draft) dell'attaccante tramite l'API Microsoft Graph. L'impianto legge le istruzioni di comando dalla casella Bozze dell'attaccante, esegue le istruzioni localmente sul dispositivo Windows compromesso e restituisce l'output del comando all'attaccante tramite la creazione di nuovi messaggi Bozze. L'impianto ripete questo comportamento di essere controllato da remoto dalla casella di posta dell'attaccante fino a quando il processo host dell'impianto non viene terminato.

Perché l'ho costruito

Ho iniziato il Red Teaming circa sei mesi fa nel Red Team di SpiderLabs presso Trustwave. Durante un incarico ho avuto l'onore di lavorare con il leggendario Stephan Borosh (rvrsh3ll|@424f424f). Steve e Matt Kingstone mi hanno insegnato tutto sul Domain Fronting di Azure, e sono rimasto sbalordito dal fatto che il traffico di Comando e Controllo potesse essere esfiltrato via HTTPS utilizzando domini legittimi come ajax.microsoft.com. Utilizza persino i certificati TLS di Microsoft! Sfortunatamente per me, ho iniziato il Red Teaming nello stesso momento in cui il Domain Fronting su Azure è morto. Anche se il Domain Fronting su Azure era morto, c'erano ancora molte fantastiche tecniche di Red Team che potevano essere fatte con Azure.

Steve mi ha introdotto al Device Code Phishing di Azure. Durante questo periodo mi sono immerso profondamente in Azure e nell'API Microsoft Graph per il Red Teaming. Abbiamo creato lo strumento TokenTactics, derivato dal grande lavoro del Dr. Nestori Syynimaa (@DrAzureAD), e abbiamo scritto il blog The Art of the Device Code Phish se sei interessato alla nostra metodologia.

Mentre creavo TokenTactics e sperimentavo con l'API MS Graph, ho scoperto che era possibile utilizzare l'API Microsoft Graph come canale C2. Ci sono molti modi diversi per utilizzare l'API MS Graph come canale C2, e non sono l'unica persona (o la prima) a scoprirlo. VX-Underground, creato da @smelly__vx - il creatore/pubblicatore della tecnica HellsGate, ha rilasciato informazioni il mese scorso secondo cui il gruppo nordcoreano Advanced Persistent Threat (APT) "InkySquid" (noto anche come ScarCruft e APT37) utilizza l'API Microsoft Graph per operazioni C2. Dopo aver rilasciato un teaser di questo progetto su Twitter e LinkedIn, diversi professionisti DFIR hanno commentato che questa tecnica di utilizzare l'API Microsoft Graph per operazioni C2 è attivamente utilizzata da gruppi ransomware nel mondo reale, risalendo a mesi fa.

Durante l'incarico di Red Team, ho tentato di far funzionare Cobalt Strike con l'API MS Graph come canale C2. Sfortunatamente ho fallito, ma questo rimane un obiettivo futuro. Il problema che affronto per farlo funzionare con Cobalt Strike è che l'API MS Graph utilizza due token per le comunicazioni. Il primo token è il Token di Aggiornamento (Refresh Token) che può durare fino a 90 giorni. Il secondo token, il Token di Accesso (Access Token), è un token temporaneo che dura circa un'ora. Le comunicazioni dirette all'API MS Graph vengono effettuate autenticandosi con il Token di Accesso. Una volta scaduto un Token di Accesso, il Token di Aggiornamento può essere utilizzato per ottenere nuovi Token di Accesso. Poiché sono ancora nuovo nel Red Teaming e nello sviluppo di Cobalt Strike, non sono riuscito a capire come utilizzare il profilo Malleable C2 di Cobalt Strike per supportare l'ottenimento costante di nuovi Token di Accesso e l'invio di questi Token di Accesso mutevoli nell'intestazione Authorization delle richieste HTTPS del beacon. Da quando ho rilasciato il teaser su Twitter, Joe Vest, Alfie Champion e altre rockstar della comunità mi hanno dato indicazioni epiche su come farlo funzionare con Cobalt Strike! Spero che ci sarà un seguito di Cobalt Strike per questo progetto in futuro ;)

Flusso di esecuzione dell'impianto

  1. Ottieni un Token di Accesso per l'API MS Graph utilizzando il Token di Aggiornamento hard-coded dell'attaccante.
  • Questo avviene tramite comunicazioni TCP HTTPS verso l'host graph.microsoft.com.
  • Questo traffico è crittografato utilizzando il certificato TLS restituito dal server web legittimo di Microsoft.
  • L'impianto utilizza la libreria a collegamento dinamico WinInet per le comunicazioni HTTPS.
  • Il Token di Aggiornamento hard-coded dell'attaccante dovrebbe essere valido per 90 giorni.
    • Se l'impianto viene compromesso, l'attaccante può revocare il Token di Aggiornamento hard-coded per limitare l'accesso da parte dei Reverser di Malware.
  1. Dopo che l'impianto ha ricevuto un Token di Accesso per l'API MS Graph dell'attaccante, entra in un ciclo infinito.
  • Se non c'è connessione internet o la connessione internet viene interrotta durante il ciclo, l'impianto dorme per 3 minuti e riprova.
  • L'impianto tiene traccia del tempo e, se sono passati 15 minuti, ottiene un nuovo Token di Accesso per continuare le comunicazioni.
  1. Il primo compito nel ciclo è utilizzare il Token di Accesso dell'API MS Graph per accedere alla casella Bozze dell'attaccante e leggere il messaggio più recente per i comandi da eseguire sul dispositivo Windows compromesso.
  • La casella Bozze è stata scelta perché in questo modo non vengono inviate email tramite SMTP.
  1. Una volta ricevuto il comando, viene analizzato per determinare quale metacomando eseguire. Attualmente ci sono 3 metacomandi: cmd, sleep, exit
  • cmd: Prende la stringa successiva al metacomando e la esegue generando un processo figlio.
  • sleep: Prende la parola successiva al metacomando e modifica il periodo di sleep dell'impianto al valore fornito (in millisecondi).
  • exit: Termina/uccide il processo host.
  1. Se il metacomando è cmd, l'impianto crea un processo figlio per eseguire il comando, il processo figlio scrive il suo output standard in un pipe, il processo figlio termina dopo l'esecuzione del comando, e il processo host dell'impianto legge l'output del processo figlio tramite il pipe.
  2. Dopo che l'impianto ha ottenuto l'output dal comando eseguito, utilizza l'API MS Graph per creare una nuova email bozza che contiene l'output del comando.
  3. L'impianto crea quindi una seconda email bozza con corpo vuoto.
  • Questo permette di registrare l'output del comando all'interno della casella Bozze dell'attaccante.
  • Questo mette a disposizione dell'attaccante un nuovo messaggio bozza per inserire il prossimo comando che l'impianto eseguirà.
  1. Dopo che il comando è stato eseguito e l'output è stato restituito all'attaccante, l'impianto dorme per un tempo controllato dall'attaccante, e poi ripete questo ciclo.

Istruzioni

  1. Prepara l'infrastruttura Azure del Red Team che verrà utilizzata come Comando e Controllo seguendo il mio post sul blog The Art of the Device Code Phish per configurare:
  • Sottoscrizione account Azure
    • Quando crei un account Azure, aiuta il team DFIR di Microsoft attribuendo il tuo account alla tua organizzazione di Red Team. Questo aiuta a risparmiare tempo al loro team quando stanno investigando se sei una vera minaccia, stai eseguendo servizi di emulazione delle minacce o stai conducendo ricerche sulla sicurezza offensiva.
    • Vedi Nick Carr- Lead, Cyber Crime Intelligence / Investigations @Microsoft per ulteriori approfondimenti.
  • Tenant Azure Active Directory
  • Office 365 per Azure Active Directory
  • Crea un utente per la casella di posta di Comando e Controllo di Outlook
  • Installa il modulo PowerShell TokenTactics
  1. Usa TokenTactics per ottenere l'ID tenant di Azure AD che hai appena creato:
root@kitploit:~
PS C:\Users\boku\Desktop\TokenTactics-main> Import-Module .\TokenTactics.psd1
PS C:\Users\boku\Desktop\TokenTactics-main> Get-TenantID -domain theharvester.world
1d5551a0-f4f2-4101-9c3b-394247ec7e08
  1. Aggiungi il tuo TenantID alla variabile char tenantId[] all'interno del file azureOutlookC2.c.
  2. Ottieni un Token di Aggiornamento di Azure utilizzando TokenTactics per eseguire un device code phish su te stesso con l'utente della casella di posta C2:
root@kitploit:~
# Importa il modulo TokenTactics nella sessione PowerShell
PS C:\Users\boku> cd .\TokenTactics
PS C:\Users\boku\TokenTactics> Import-Module .\TokenTactics.psd1
# Avvia una richiesta di Device Code phish per ottenere un 'user_code'
PS C:\Users\boku\> Get-AzureToken -Client Graph
user_code        : ERDVDCNHH
  1. Vai su microsoft.com/devicelogin, inserisci lo user_code da TokenTactics e accedi con l'utente della casella di posta C2.
  2. Nella sessione PowerShell in esecuzione con TokenTactics, copia il refresh token dal device code phish riuscito su te stesso.
  • Se hai bisogno di maggiori informazioni su come funziona TokenTactics, consulta The Art of the Device Code Phish
  1. Aggiungi il tuo refresh token alla variabile char refreshToken[] all'interno del file azureOutlookC2.c.
root@kitploit:~
void main() {
    // Variables
    char refreshToken[] = "0.AXwAoFFVHfL0AUGcOzlCR-x-CNYOWdOzUgJBrv-q0ikqsBx8ACA.AgABAAAAAA...
//                           ^Inserisci qui il tuo refresh token e compila
  1. Compila azureOutlookC2.c.
root@kitploit:~
# Compila con x64 MinGW:
bobby.cooke$ cat compile.sh
x86_64-w64-mingw32-gcc -m64 -mwindows -Os azureOutlookC2.c -o azureOutlookC2.exe -lwininet
bobby.cooke$ bash compile.sh
  1. Esegui il file PE azureOutlookC2.exe su un dispositivo Windows.
  2. Come attaccante dal computer dell'attaccante, apri un browser, accedi a outlook.office.com e controlla il dispositivo Windows che esegue l'impianto dalla tua casella di posta.

Obiettivi iniziali del progetto

  • Creare una proof of concept funzionante che utilizzi l'API Microsoft Graph come canale C2 e controllare un computer dalla mia email.

Cos'è questo progetto

  • Questo progetto è una proof of concept, che dimostra come un attaccante può utilizzare l'API Microsoft Graph per operazioni C2.
  • Questo progetto è destinato ad altri ricercatori di sicurezza offensiva per imparare.
  • Personalmente non ho trovato grandi modi per difendere o rilevare questo canale C2. La mia speranza è che fornendolo a menti difensive migliori della mia, si traduca in alcune fantastiche tecniche difensive.

Cosa questo progetto non è

  • Questo progetto di per sé non è un C2 completamente funzionale, pronto per impegni sicuri per OPSEC.

Idee di rilevamento e prevenzione da parte dei difensori (per aggiungere, invia una Pull Request)

Mehmet Ergene (@Cyb3rMonk) Consigli di rilevamento

  1. "Potrebbe essere un'idea fare una baseline delle applicazioni che si connettono all'API Graph e controllare le anomalie. Tuttavia potrebbe essere facilmente bypassato."
  2. "Come sempre, rilevare il traffico di beaconing. (Farò un miglioramento per coprire l'API Graph e roba simile)"

F-Secure - Condiviso da Alfie Champion

  • "Microsoft è un esempio di una di quelle organizzazioni che ha preso misure proattive per difendere le organizzazioni dall'abuso dei propri servizi. Recentemente ha sviluppato la capacità di rilevare e bloccare l'uso malintenzionato delle applicazioni Azure. Nello specifico, F-Secure ha osservato che qualsiasi applicazione utilizzata nel framework C3 (come OneDrive365 e Outlook365 (O365)) viene ora rilevata come dannosa e successivamente disabilitata da Microsoft (entro circa tre ore)."

Crediti / Riferimenti

  • Corsi di sviluppo malware Sektor7
  • @passthehashbrwn - Generazione dinamica di payload con mingw
  • Raphael Mudge - Red Team Ops con Cobalt Strike (2 di 9): Infrastruttura
  • Raphael Mudge - Red Team Ops con Cobalt Strike (3 di 9): C2
  • API REST Microsoft Graph v1.0
  • Microsoft WinInet
  • StackOverFlow - Creare un processo e catturare stdout
  • Microsoft - Creare un processo figlio con input e output reindirizzato

Progetti/Ricerche/Blog simili interessanti

F-Secure C3 - Custom Command & Control

  • "C3 è stato creato in risposta a questo requisito. È uno strumento che consente ai Red Team di sviluppare e utilizzare rapidamente canali di comando e controllo (C2) esoterici."
  • RIP OFFICE365 COMMAND AND CONTROL – WE HARDLY KNEW YOU
  • Repository GitHub F-Secure C3 - Custom Command & Control

Callidus di Chirag Savla

  • "È (Callidus) sviluppato utilizzando il framework .net core in linguaggio C#. Permette agli operatori di sfruttare i servizi O365 per stabilire un canale di comunicazione di comando e controllo. Utilizza le API Microsoft Graph per comunicare con i servizi O365."
  • Repository GitHub 3xpl01tc0d3r/Callidus
  • Introduzione a Callidus - Post del blog

Proxy dell'applicazione Azure C2 - Adam Chester (@_xpn_)

  • Proxy dell'applicazione Azure C2 - Blog di ricerca
Scarica lo strumento