Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
OneDrive-UDC2 — OneDrive como transporte C2 encubierto para Cobalt Strike | Kitploit
Herramientas/GitHubGitHub/nmht3t/onedrive-udc2
Herramientas DefensivasFrameworks de Pruebas de PenetraciónPost-ExplotaciónSeguridad en la NubeComando y ControlRed TeamingDesarrollo de Payloads
GitHubnmht3t/onedrive-udc2

OneDrive-UDC2

OneDrive como transporte C2 encubierto para Cobalt Strike

Ver Repositorio
34843hace 5 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

OneDrive UDC2

Un canal C2 definido por el usuario de Cobalt Strike que utiliza OneDrive como capa de transporte.

Architecture

Lo que necesitas

  • Un inquilino de Microsoft Entra ID con un usuario que tenga OneDrive for Business.
  • Un registro de aplicación con el permiso de aplicación Files.ReadWrite.All.

Configuración

1. Registrar una aplicación

En Azure Portal, ve a App registrations y crea una nueva aplicación:

  • Tipo de cuenta: Single tenant.
  • URI de redirección: Déjalo vacío.

Anota el tenant ID y el client ID de la página de resumen.

2. Añadir el permiso de Graph

En API permissions:

  1. Añade Microsoft Graph, luego Application permissions, luego Files.ReadWrite.All.
Descargar herramienta
  • Haz clic en Grant admin consent.
  • 3. Crear un secreto de cliente

    En Certificates & secrets, crea un nuevo secreto y copia su valor.

    4. Crear las carpetas de OneDrive

    En el OneDrive del usuario, crea dos carpetas, una para la bandeja de entrada y otra para la bandeja de salida (por ejemplo, c2inbox y c2outbox).

    5. Obtener los IDs de la unidad y las carpetas

    Abre Graph Explorer, inicia sesión como ese usuario y ejecuta:

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

    Toma el id de cada carpeta y el driveId de cualquier entrada en la respuesta JSON.

    Compilación

    root@kitploit:~
    cp server/config.json.example server/config.json
    

    Rellena server/config.json:

    CampoValor
    tenant_idID del inquilino de Microsoft Entra ID
    client_idID de cliente de la aplicación
    client_secretValor del secreto de cliente
    drive_idID de la unidad de OneDrive
    inbox_folder_idID de la carpeta de entrada
    outbox_folder_idID de la carpeta de salida

    Luego compila el cliente:

    root@kitploit:~
    make
    

    Ejecución

    Inicia el relay (usa screen o tmux para que siga activo si tu terminal se desconecta):

    root@kitploit:~
    python3 server/relay.py --config server/config.json --ts-addr <teamserver-ip> --ts-port <udc2-port>
    

    En Cobalt Strike, crea un listener UDC2 en el mismo puerto y carga client/bof.o.

    Opciones del relay

    FlagDescripción
    --configRuta a config.json (obligatorio)
    --ts-addrIP del teamserver
    --ts-portPuerto del listener UDC2
    --pollIntervalo de sondeo en segundos (por defecto 2.0)
    --stateRuta al archivo de estado (por defecto: <config>.state.json)
    --debugActivar el registro de depuración
    --cleanEliminar el archivo de estado y el directorio de spool, luego salir

    Archivo de estado, spool y bloqueo

    El relay crea algunos archivos junto a tu configuración para llevar un seguimiento de las cosas entre reinicios:

    • Archivo de estado (config.json.state.json) - rastrea qué archivos de la bandeja de entrada se han procesado, las subidas pendientes y la información de la sesión del beacon. Establece una ruta personalizada con --state.
    • Directorio de spool (config.json.state.json.spool/) - contiene los datos de respuesta que aún no se han subido a OneDrive. Si el relay se bloquea a mitad de una subida, el spool conserva los datos para poder reintentarlo en el siguiente inicio.
    • Archivo de bloqueo (config.json.state.json.lock) - evita que dos instancias del relay se ejecuten contra el mismo estado. Si ves Another relay holds the lock y no hay otro relay en ejecución, el bloqueo es obsoleto debido a un fallo.

    Restablecer el estado del relay

    Si el estado local del relay se corrompe o un bloqueo obsoleto impide el inicio, usa --clean para borrar el archivo de estado y el directorio de spool para que el relay empiece de cero:

    root@kitploit:~
    python3 server/relay.py --config server/config.json --clean
    

    El archivo de bloqueo se conserva. El relay no limpiará mientras haya otra instancia en ejecución. En el siguiente inicio normal se reinicializa y omite cualquier archivo de la bandeja de entrada con más de 30 minutos de antigüedad.

    También puedes restablecerlo manualmente eliminando tú mismo el archivo de estado y el directorio de spool. Si el archivo de bloqueo es obsoleto (no hay ningún relay en ejecución), elimínalo también.

    Demo

    POC

    Referencias

    • Cobalt Strike UDC2 docs
    • Cobalt Strike ICMP UDC2
    • WKL Slack UDC2