Beacon Object File (BOF)
hackingDéfinition
Les Beacon Object Files (BOF) sont de petits programmes en langage C compilés comme objets relocatables (fichiers .o) qui s'exécutent directement dans le processus du Beacon de Cobalt Strike sans nécessiter de chargement de module supplémentaire. Ils permettent d'étendre les capacités du Beacon avec des fonctionnalités personnalisées de manière légère et discrète. L'avantage principal des BOF par rapport aux méthodes traditionnelles d'extension (injection de DLL, exécution de processus enfants) : ils s'exécutent dans l'espace mémoire existant du Beacon, ne créent pas de nouveaux processus visibles, ne chargent pas de nouvelles DLLs dans le processus (évitant les détections basées sur les modules inattendus), et peuvent être transmis comme de simples fichiers binaires via le C2 existant. Les BOF utilisent des fonctions d'API déclarées comme externes et résolues dynamiquement par le Beacon via son mécanisme interne. Des macros comme WINBASEAPI permettent d'utiliser les fonctions Windows standard. Les BOF doivent être position-independent (pas d'adresses absolues), complets en un seul objet (pas de librairies), et respecter les contraintes du runtime Beacon. Des projets de BOF open source couvrent de nombreuses fonctionnalités offensives : TrustedSec BOF Collection (reconnaissance AD, manipulation de tokens, credential access), BOF.NET (exécuter des assemblies .NET depuis un BOF), kdstab (stabiliser des kernel drivers pour l'accès au kernel), et des BOF implémentant des techniques spécifiques (DPAPI decryption, LSA secrets dump, COM object manipulation) sans charger de nouveaux processus. D'autres frameworks C2 (Sliver, Havoc) ont adopté le concept BOF sous différentes appellations (Extensions, Modules), reconnaissant l'élégance du modèle d'extension légère in-process.
Fonctionnement
Un BOF est compilé avec x86_64-w64-mingw32-gcc -o example.o -c example.c. Le Beacon charge le fichier .o, applique les relocations (résolution des symboles externes via son propre mécanisme de lookup), et exécute la fonction entry point. La communication avec l'opérateur se fait via des API BeaconPrintf/BeaconDataParse fournies par Cobalt Strike. La durée d'exécution est synchrone dans le thread du Beacon.
Exploitation offensive
Les BOF permettent des opérations qui seraient autrement nécessairement implémentées via des processus enfants ou des injections (plus détectables) : accès à LSASS sans exécuter mimikatz.exe, manipulation de tokens, requêtes LDAP AD, et manipulation de services Windows. Toutes ces opérations s'effectuent dans le contexte et le processus du Beacon existant.
Détection et mitigation
La détection des BOF est difficile car ils s'exécutent dans un processus légitime existant. Les EDR avec memory scanning peuvent détecter des patterns de code caractéristiques (résolution dynamique d'imports, patterns de parsing PE) dans les régions mémoire exécutables non mappées. L'exécution d'opérations sensibles (accès LSASS, manipulation de tokens) depuis un processus inattendu peut déclencher des alertes comportementales.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h