> Windows Syscalls
ntoskrnl.exeT1562.002T1547.006

NtPrivilegedServiceAuditAlarm

Émet une entrée du journal Sécurité signalant une opération de service privilégiée (événement 4673).

Prototype

NTSTATUS NtPrivilegedServiceAuditAlarm(
  PUNICODE_STRING SubsystemName,
  PUNICODE_STRING ServiceName,
  HANDLE          ClientToken,
  PPRIVILEGE_SET  Privileges,
  BOOLEAN         AccessGranted
);

Arguments

NameTypeDirDescription
SubsystemNamePUNICODE_STRINGinNom de sous-système affiché dans l'événement résultant, typiquement L"Security".
ServiceNamePUNICODE_STRINGinNom libre de service (ex. L"DRIVERS", L"BackupService") attaché à l'événement.
ClientTokenHANDLEinJeton d'impersonation du client dont l'usage de privilège est enregistré.
PrivilegesPPRIVILEGE_SETinEnsemble de privilèges exercés (ex. {SeLoadDriverPrivilege}).
AccessGrantedBOOLEANinTRUE pour une opération privilégiée réussie, FALSE pour une opération tentée mais refusée.

IDs de syscalls par version de Windows

Version de WindowsID de syscallBuild
Win10 15070x124win10-1507
Win10 16070x12Awin10-1607
Win10 17030x12Ewin10-1703
Win10 17090x130win10-1709
Win10 18030x132win10-1803
Win10 18090x133win10-1809
Win10 19030x134win10-1903
Win10 19090x134win10-1909
Win10 20040x139win10-2004
Win10 20H20x139win10-20h2
Win10 21H10x139win10-21h1
Win10 21H20x13Awin10-21h2
Win10 22H20x13Awin10-22h2
Win11 21H20x140win11-21h2
Win11 22H20x142win11-22h2
Win11 23H20x142win11-23h2
Win11 24H20x144win11-24h2
Server 20160x12Awinserver-2016
Server 20190x133winserver-2019
Server 20220x13Fwinserver-2022
Server 20250x144winserver-2025

Module noyau

ntoskrnl.exeNtPrivilegedServiceAuditAlarm

APIs liées

PrivilegedServiceAuditAlarmWPrivilegeCheckNtPrivilegeObjectAuditAlarmNtAccessCheckAndAuditAlarm

Stub du syscall

4C 8B D1            mov r10, rcx
B8 44 01 00 00      mov eax, 0x144
F6 04 25 08 03 FE 7F 01   test byte ptr [0x7FFE0308], 1
75 03               jne short +3
0F 05               syscall
C3                  ret
CD 2E               int 2Eh
C3                  ret

Notes non documentées

Pendant de NtPrivilegeObjectAuditAlarm — même forme, mais pour les opérations privilégiées de niveau service (pas de handle objet). Génère l'événement Sécurité 4673 (« Un service privilégié a été appelé »). Schéma d'appelant canonique : un composant en mode service (ex. le Service Control Manager chargeant un pilote kernel via SeLoadDriverPrivilege, ou le sous-système Plug and Play invoquant SeUndockPrivilege) veut faire enregistrer l'action sous sa propre identité de service. L'événement 4673 inclut le nom de service fourni ici, les privilèges exercés et le SID utilisateur du jeton client.

Usage courant par les malwares

Pratiquement nul dans les malwares grand public. La raison d'être même du syscall est de laisser une trace, à l'inverse de l'objectif de l'opérateur malveillant. Les rares observations en environnement réel concernent des composants signés MS faisant leur travail normal. Des outils comme Mimikatz qui manient SeDebugPrivilege n'appellent jamais ce syscall — ils exercent le privilège silencieusement parce que l'Object Manager n'audite pas automatiquement l'usage de privilèges.

Opportunités de détection

Le volume d'événements 4673 sur un poste sain est dominé par un petit ensemble d'opérations légitimes (chargements de pilotes, exécutions de tâches planifiées en SYSTEM, démarrages de fournisseurs WMI). Les défenseurs devraient établir un baseline des 4673 par (ServiceName, PrivilegeList, ClientUserSid) et alerter sur les tuples inédits. Note : l'*absence* de 4673 autour d'un usage de SeLoadDriverPrivilege (vérifiable via l'événement 7045 du SCM) est bien plus intéressante que sa présence — elle signale soit un chargement de pilote non-SCM (T1547.006), soit une altération du journal d'audit (T1562.002). Defender for Endpoint expose une télémétrie équivalente via les tables DeviceProcessEvents et DeviceEvents.

Exemples de syscalls directs

asmx64 direct stub (Win11 24H2)

; Direct syscall stub for NtPrivilegedServiceAuditAlarm (SSN 0x144, Win11 24H2)
NtPrivilegedServiceAuditAlarm PROC
    mov  r10, rcx          ; syscall convention
    mov  eax, 144h         ; SSN
    syscall
    ret
NtPrivilegedServiceAuditAlarm ENDP

cManual 4673 emission from a privileged backup service

// A backup component holding SeBackupPrivilege wants to explicitly record
// a 4673 every time it begins a privileged enumeration pass.

LUID seBackupLuid;
LookupPrivilegeValueW(NULL, SE_BACKUP_NAME, &seBackupLuid);

struct {
    PRIVILEGE_SET ps;
} pset = {
    .ps = { .PrivilegeCount = 1, .Control = PRIVILEGE_SET_ALL_NECESSARY,
            .Privilege = {{ .Luid = seBackupLuid, .Attributes = SE_PRIVILEGE_USED_FOR_ACCESS }} }
};

UNICODE_STRING sub = RTL_CONSTANT_STRING(L"Security");
UNICODE_STRING svc = RTL_CONSTANT_STRING(L"ContosoBackupService");

NTSTATUS s = NtPrivilegedServiceAuditAlarm(
    &sub, &svc,
    hClientToken,
    &pset.ps,
    TRUE);   // success

// Resulting Security event 4673 records:
//   Subject  : NT AUTHORITY\SYSTEM (the service)
//   Service  : ContosoBackupService
//   Privilege: SeBackupPrivilege

rustWin32 PrivilegedServiceAuditAlarmW wrapper

use windows_sys::Win32::Security::Authorization::PrivilegedServiceAuditAlarmW;
use windows_sys::Win32::Security::*;

unsafe {
    let ok = PrivilegedServiceAuditAlarmW(
        windows_sys::w!("Security"),
        windows_sys::w!("ContosoBackupService"),
        client_token,
        &priv_set as *const _ as *mut _,
        1, // access_granted
    );
    // ok != 0 -> Security 4673 emitted (subject to "Audit Privilege Use" policy).
}

Mappings MITRE ATT&CK

Last verified: 2026-05-20