Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
OneDrive-UDC2 — OneDrive come trasporto C2 occulto per Cobalt Strike | Kitploit
Strumenti/GitHubGitHub/nmht3t/onedrive-udc2
Strumenti DifensiviFrameworks per Penetration TestingPost-ExploitSicurezza CloudCommand and ControlRed TeamingSviluppo Payload
GitHubnmht3t/onedrive-udc2

OneDrive-UDC2

OneDrive come trasporto C2 occulto per Cobalt Strike

Vedi Repository
72108526 giorni faNon ancora revisionato

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

OneDrive UDC2

Un canale C2 User-Defined di Cobalt Strike che utilizza OneDrive come livello di trasporto.

Architecture

Cosa ti serve

  • Un tenant Microsoft Entra ID con un utente che dispone di OneDrive for Business.
  • Una registrazione app con l'autorizzazione applicativa Files.ReadWrite.All.

Configurazione

1. Registrare un'applicazione

Nel Portale di Azure, vai su Registrazioni app e crea una nuova app:

  • Tipo di account: Single tenant.
  • URI di reindirizzamento: Lascia vuoto.

Annota il tenant ID e il client ID dalla pagina di panoramica.

2. Aggiungere l'autorizzazione Graph

In Autorizzazioni API:

  1. Aggiungi Microsoft Graph, poi Autorizzazioni applicative, poi Files.ReadWrite.All.
  2. Clicca su Concedi consenso amministratore.

3. Creare un client secret

In Certificati e segreti, crea un nuovo segreto e copiane il valore.

4. Creare le cartelle OneDrive

Nel OneDrive dell'utente, crea due cartelle, una per la inbox e una per la outbox (ad es. c2inbox e c2outbox).

5. Ottenere gli ID del drive e delle cartelle

Apri Graph Explorer, accedi come quell'utente ed esegui:

GET https://graph.microsoft.com/v1.0/me/drive/root/children

Prendi l'id di ciascuna cartella e il driveId da qualsiasi voce nella risposta JSON.

Build

cp server/config.json.example server/config.json

Compila server/config.json:

CampoValore
tenant_idID tenant di Microsoft Entra ID
client_idClient ID dell'applicazione
client_secretValore del client secret
drive_idID del drive OneDrive
inbox_folder_idID della cartella inbox
outbox_folder_idID della cartella outbox

Poi compila il client:

make

Esecuzione

Avvia il relay (usa screen o tmux così rimane attivo se il terminale si disconnette):

python3 server/relay.py --config server/config.json --ts-addr <teamserver-ip> --ts-port <udc2-port>

In Cobalt Strike, crea un listener UDC2 sulla stessa porta e carica client/bof.o.

Opzioni del relay

FlagDescrizione
--configPercorso di config.json (obbligatorio)
--ts-addrIP del teamserver
--ts-portPorta del listener UDC2
--pollIntervallo di polling in secondi (predefinito 2.0)
--statePercorso del file di stato (predefinito: <config>.state.json)
--debugAbilita il logging di debug
--cleanElimina il file di stato e la directory spool, poi esci

File di stato, spool e lock

Il relay crea alcuni file accanto alla tua configurazione per tenere traccia delle cose tra un riavvio e l'altro:

  • File di stato (config.json.state.json) - tiene traccia di quali file inbox sono stati elaborati, degli upload in sospeso e delle informazioni sulla sessione del beacon. Imposta un percorso personalizzato con --state.
  • Directory spool (config.json.state.json.spool/) - contiene i dati di risposta che non sono ancora stati caricati su OneDrive. Se il relay va in crash durante un upload, lo spool conserva i dati così può riprovare al prossimo avvio.
  • File di lock (config.json.state.json.lock) - impedisce che due istanze del relay vengano eseguite sullo stesso stato. Se vedi Another relay holds the lock e nessun altro relay è in esecuzione, il lock è obsoleto a causa di un crash.

Reimpostare lo stato del relay

Se lo stato locale del relay si corrompe o un lock obsoleto blocca l'avvio, usa --clean per cancellare il file di stato e la directory spool così il relay riparte da zero:

python3 server/relay.py --config server/config.json --clean

Il file di lock viene mantenuto. Il relay non esegue la pulizia mentre un'altra istanza è in esecuzione. Al successivo avvio normale si reinizializza e salta qualsiasi file inbox più vecchio di 30 minuti.

Puoi anche reimpostare manualmente eliminando tu stesso il file di stato e la directory spool. Se il file di lock è obsoleto (nessun relay in esecuzione), eliminalo anche tu.

Demo

POC

Riferimenti

  • Cobalt Strike UDC2 docs
  • Cobalt Strike ICMP UDC2
  • WKL Slack UDC2
Scarica lo strumento