Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
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
GraphStrike — Beaconing HTTPS de Cobalt Strike sobre Microsoft Graph API | Kitploit
Herramientas/GitHubGitHub/redsiege/graphstrike
Frameworks de Pruebas de PenetraciónFrameworks de ExploitsSeguridad en la NubeComando y ControlRed TeamingSeguridad de APIs
GitHubredsiege/graphstrike

GraphStrike

Beaconing HTTPS de Cobalt Strike sobre Microsoft Graph API

Ver Repositorio
6359913hace 2 añosRevisado por Kitploit

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

GraphStrike

gscolor

Publicación del lanzamiento: GraphStrike: Usando Microsoft Graph API para hacer que el tráfico Beacon desaparezca
Blog del desarrollador: GraphStrike: Anatomía del desarrollo de herramientas ofensivas

Introducción

GraphStrike es un conjunto de herramientas que permite que el Beacon HTTPS de Cobalt Strike utilice Microsoft Graph API para comunicaciones C2. Todo el tráfico del Beacon se transmitirá a través de dos archivos creados en el sitio SharePoint del atacante, y todas las comunicaciones desde el Beacon se enrutarán a https://graph.microsoft.com:

image

GraphStrike incluye un provisionador para crear los activos de Azure necesarios para Cobalt Strike HTTPS sobre Graph API:

image

GraphStrike no crea ningún activo de pago en Azure, por lo que no se incurre en costos adicionales por el uso de GraphStrike o su provisionador.

¿Por qué?

Se ha publicado inteligencia de amenazas sobre varios APT diferentes que aprovechan Microsoft Graph API y otros servicios de Microsoft para campañas ofensivas:

  1. BLUELIGHT - APT37/InkySquid/ScarCruft
  2. Graphite - APT28/Fancy Bear
  3. Graphican - APT15/Nickel/The Flea
  4. SiestaGraph - DESCONOCIDO

Los actores de amenazas continúan utilizando servicios legítimos con fines ilegítimos. Utilizar un dominio de alta reputación como graph.microsoft.com para comunicaciones C2 es extremadamente efectivo y deseable, pero a menudo complicado y prohibitivo desde el punto de vista de tiempo y esfuerzo. La mayoría de los frameworks C2 no admiten métodos para obtener o rotar tokens de acceso, lo que les impide usar Graph API. Esto puede dificultar que los equipos rojos repliquen estas técnicas y priva a los defensores de la oportunidad de observar y desarrollar firmas para este tipo de actividad. GraphStrike busca aliviar esa carga y proporcionar un proceso confiable y repetible para aprovechar Microsoft Graph API mientras se mantiene la familiaridad y confiabilidad de la experiencia de usuario de Cobalt Strike.

¿Es esto un External C2?

Técnicamente no. Habiendo construido previamente un verdadero External C2 usando Graph API (que enviaba tráfico Beacon como mensajes de Microsoft Teams), la carga de tener que desarrollar, mantener e integrar un implante personalizado que cumpla con la especificación External C2 y haga el trabajo es demasiado familiar. GraphStrike, en cambio, aprovecha un User Defined Reflective Loader (UDRL) de código abierto llamado AceLdr de Kyle Avery (adaptado como 'GraphLdr' en este proyecto) para enganchar las llamadas a la biblioteca WinINet que Beacon realiza normalmente y manipularlas según sea necesario para usar Graph API. No hay un implante personalizado ni un proceso adicional que mencionar, solo el proceso Beacon con un par de API de Windows enganchadas. Del lado del servidor, hay un programa Python3 que traduce el tráfico del Team Server de Cobalt Strike a tráfico de Graph API y viceversa.

Características

GraphStrike admite casi todas las actividades normales de Cobalt Strike, incluyendo:

  1. Uso de Proxychains a través de un proxy SOCKS de Cobalt Strike (aunque es muy lento...)
  2. Subida/Descarga de archivos grandes
  3. BOFs, execute-assembly, etc.

Esto también incluye la integración de GraphStrike con los comandos sleep, exit y remove para que los tiempos de suspensión del GraphStrike Server coincidan con los del Beacon, así como la eliminación de archivos en SharePoint cuando un Beacon se cierra o elimina.

GraphStrike también incorpora todas las características y funcionalidades del AceLdr original, con algunas API adicionales hechas para utilizar también spoofing de pila de llamadas.

Requisitos

GraphStrike requiere lo siguiente antes de comenzar:

  1. Un inquilino de Microsoft Azure con una licencia de SharePoint/O365 asignada y un sitio creado. El sitio predeterminado está bien.
  2. Una cuenta de Azure con permisos de Administrador Global en ese inquilino.
  3. Python 3.8-3.11Nota #4 (y dependencias adicionales que se instalarán durante el proceso de configuración)

Reglas de firewall

  1. Asegúrese de que cada máquina en la que se ejecute el cliente de Cobalt Strike pueda conectarse a la máquina del Team Server de Cobalt Strike en los puertos 443 y 5000.

Configuración

Tome nota de lo siguiente antes de proceder con el proceso de configuración:

1. Ciertos componentes utilizan rutas relativas para localizar otros activos. Cambie de directorio según se indica a continuación.
2. El perfil de Cobalt Strike solo puede editarse ANTES del paso 5 del proceso de configuración siguienteNota #1.

En la máquina que ejecutará el Team Server de Cobalt Strike:

  1. Clone el repositorio.
  2. Desde el directorio del repositorio, ejecute sudo setup/install_dependencies.sh para instalar las dependencias del sistema requeridas.
  3. Ejecute python3 -m venv virtual y luego source virtual/bin/activate para crear y luego ingresar al entorno virtual.
  4. Cambie al directorio setup y ejecute pip3 install -r requirements.txt.
  5. Ejecute ./provisioner.py new y complete el proceso de configuración.
  6. Inicie el Team Server de Cobalt Strike usando graphstrike.profile como perfil C2 maleable.
  7. Inicie una instancia del cliente de Cobalt Strike (puede hacerlo en una máquina cliente, o en la caja del TS y luego cerrarlo) y cree un listener HTTPS de Cobalt Strike en el puerto 443 con graph.microsoft.com en los campos HTTPS Hosts y HTTPS Host(Stager).
  8. Vuelva al directorio principal del repositorio y ejecute el GraphStrike Server usando ./GraphStrike.py.

En TODAS las máquinas que ejecutarán el cliente de Cobalt Strike:

  1. Copie el directorio GraphStrike/client desde la máquina TS a la máquina cliente. ¡Esto debe hacerse solo DESPUÉS de completar el provisionamiento!
  2. Importe GraphStrike.cna a Cobalt Strike usando el Administrador de scripts.
  3. Cree payloads de Cobalt Strike, ya sea shellcode sin formato o artefactos compilados usando el Artifact Kit o un framework alternativo de generación de payloads. ¡Usuarios de Artifact Kit vean abajo!
  4. Benefíciese.

Usuarios de Artifact Kit

Debido al tamaño de GraphLdr, los usuarios del Artifact Kit deberán recompilarlo con opciones específicas para que GraphStrike sea compatible con los payloads generados por Artifact Kit. Específicamente, los campos 'Stage Size' y 'RDLL Size' deben especificarse para usar el tamaño RDLL de 100K. A continuación se proporcionan dos ejemplos de sintaxis funcional:

./build.sh pipe VirtualAlloc 505029 100 false false none /opt/cobaltstrike/artifacts
./build.sh peek HeapAlloc 492376 100 false true indirect /opt/cobaltstrike/artifacts

Descargar herramienta