Cobalt Strike
Les attributions s'appuient sur des rapports publics. Une famille listée signifie qu'au moins une fiche syscall la cite ; son absence n'implique pas un non-usage.
42 syscalls cités
- NtAllocateVirtualMemory
Réserve, valide ou les deux une région de mémoire virtuelle dans un processus cible.
- NtAllocateVirtualMemoryEx
Réserve ou valide de la mémoire virtuelle avec paramètres étendus (nœud NUMA préféré, CFG, contraintes d'adresse).
- NtProtectVirtualMemory
Modifie la protection d'une région de mémoire virtuelle validée dans un processus cible.
- NtWriteVirtualMemory
Écrit un tampon de l'appelant dans l'espace d'adressage virtuel d'un processus cible.
- NtReadVirtualMemory
Lit des octets de l'espace d'adressage virtuel d'un processus cible vers un tampon fourni par l'appelant.
- NtFreeVirtualMemory
Décommit ou libère une région de mémoire virtuelle dans un processus cible.
- NtQueryVirtualMemory
Récupère des informations sur les pages de l'espace d'adressage virtuel d'un processus cible.
- NtOpenProcess
Ouvre un handle vers un processus existant avec un masque d'accès demandé.
- NtCreateSection
Crée un objet section adossé à un fichier ou au pagefile système pour le mappage mémoire partagée.
- NtMapViewOfSection
Mappe une vue d'un objet section dans l'espace d'adressage virtuel d'un processus cible.
- NtCreateThreadEx
Crée un nouveau thread dans un processus cible, éventuellement suspendu, avec support des listes d'attributs.
- NtQueueApcThread
Place un appel de procédure asynchrone (APC) en mode utilisateur dans la file d'un thread cible.
- NtQueueApcThreadEx
Place un APC utilisateur dans la file d'un thread avec un objet réserve optionnel ou un flag special-user-APC pour livraison forcée.
- NtCreateUserProcess
Crée un nouveau processus en mode utilisateur et son thread initial à partir d'une image exécutable.
- NtTerminateProcess
Termine un processus cible et tous ses threads avec un code de sortie donné.
- NtSuspendProcess
Suspend tous les threads d'un processus cible en incrémentant le compteur de suspension de chacun.
- NtResumeProcess
Décrémente le compteur de suspension de chaque thread d'un processus cible et relance ceux qui atteignent zéro.
- NtOpenThread
Ouvre un handle vers un thread existant identifié par CLIENT_ID avec les droits d'accès demandés.
- NtSuspendThread
Incrémente le compteur de suspension d'un thread cible, arrêtant son exécution.
- NtResumeThread
Décrémente le compteur de suspension d'un thread, reprenant l'exécution lorsque le compteur atteint zéro.
- NtTerminateThread
Termine le thread spécifié avec le code de sortie fourni. Un handle NULL termine le thread courant.
- NtGetContextThread
Récupère le contexte des registres CPU (structure CONTEXT) d'un thread suspendu.
- NtSetContextThread
Définit le contexte des registres CPU d'un thread — primitive noyau derrière le détournement de thread et la redirection de shellcode.
- NtOpenProcessTokenEx
Ouvre le jeton d'accès d'un processus en permettant à l'appelant de spécifier des attributs de handle tels que OBJ_INHERIT.
- NtAdjustPrivilegesToken
Active ou désactive des privilèges dans un jeton d'accès spécifié.
- NtQueryInformationToken
Récupère une classe d'information spécifiée sur un jeton d'accès.
- NtSetInformationToken
Écrit une propriété d'un token d'accès — niveau d'intégrité, session id, owner, DACL par défaut, politique d'audit, token lié.
- NtDuplicateToken
Crée un nouveau jeton d'accès dupliquant un jeton existant, en modifiant éventuellement son type et son niveau d'impersonation.
- NtImpersonateThread
Fait impersonner par le thread serveur le contexte de sécurité du thread client.
- NtQueryInformationProcess
Récupère une classe d'informations sur un processus — back-end universel de GetProcessInformation et cheval de bataille des vérifications anti-debug.
- NtSetInformationProcess
Modifie une classe d'état au niveau processus — auto-nettoyage anti-debug, enregistrement de plages CET, installation de politiques ACG/CIG, callbacks d'instrumentation.
- NtSetInformationThread
Définit une propriété d'un thread via l'énumération THREADINFOCLASS — notamment ThreadHideFromDebugger.
- NtQuerySystemInformation
Récupère une classe d'informations à l'échelle du système — liste des processus, table des handles noyau, liste des pilotes chargés, état d'intégrité du code, et plus.
- NtTraceControl
IOCTL de contrôle multiplexé du sous-système ETW — démarrer, arrêter, interroger, vider les sessions et activer/désactiver les providers.
- NtOpenEvent
Ouvre un handle vers un objet événement nommé existant.
- NtWaitForMultipleObjects
Attend jusqu'à MAXIMUM_WAIT_OBJECTS objets dispatcher avec une sémantique WaitAny ou WaitAll.
- NtQuerySystemTime
Retourne l'heure système actuelle en intervalles de 100 ns depuis 1601-01-01 UTC.
- NtClose
Ferme un handle d'objet noyau (fichier, clé, événement, processus, thread, section, etc.).
- NtDuplicateObject
Duplique un handle d'un processus source vers un processus cible, avec ajustement éventuel des accès ou fermeture de la source.
- NtQueryObject
Renvoie des métadonnées sur un handle d'objet noyau : info de base, nom, type ou table de types système.
- NtSetInformationObject
Définit des attributs de niveau handle (héritage, protection contre fermeture) sur un handle d'objet noyau.
- NtOpenSymbolicLinkObject
Ouvre un lien symbolique de l'object manager existant par son nom, renvoyant un handle pour interrogation ou suppression.