> Windows Syscalls
ntoskrnl.exeT1562.002T1547.006

NtPrivilegedServiceAuditAlarm

Emittiert einen Security-Eventlog-Eintrag, der eine privilegierte Dienst-Operation meldet (Event 4673).

Prototyp

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

Argumente

NameTypeDirDescription
SubsystemNamePUNICODE_STRINGinIm resultierenden Event angezeigter Subsystemname, typischerweise L"Security".
ServiceNamePUNICODE_STRINGinFreier Service-Name (z. B. L"DRIVERS", L"BackupService"), der dem Event beigefügt wird.
ClientTokenHANDLEinImpersonation-Token des Clients, dessen Privilegiennutzung aufgezeichnet wird.
PrivilegesPPRIVILEGE_SETinGenutzter Privilegien-Satz (z. B. {SeLoadDriverPrivilege}).
AccessGrantedBOOLEANinTRUE bei erfolgreicher privilegierter Operation, FALSE bei versuchter-aber-verweigerter.

Syscall-IDs pro Windows-Version

Windows-VersionSyscall-IDBuild
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

Kernel-Modul

ntoskrnl.exeNtPrivilegedServiceAuditAlarm

Verwandte APIs

PrivilegedServiceAuditAlarmWPrivilegeCheckNtPrivilegeObjectAuditAlarmNtAccessCheckAndAuditAlarm

Syscall-Stub

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

Undokumentierte Hinweise

Geschwister-Syscall von NtPrivilegeObjectAuditAlarm — gleiche Form, aber für service-level (kein Pro-Handle-Objekt) privilegierte Operationen. Erzeugt das Security-Event 4673 ("Ein privilegierter Dienst wurde aufgerufen"). Kanonisches Aufrufer-Muster: eine Service-Mode-Komponente (z. B. der Service Control Manager beim Laden eines Kernel-Treibers via SeLoadDriverPrivilege oder das Plug-and-Play-Subsystem beim Aufruf von SeUndockPrivilege) möchte die Aktion unter ihrer eigenen Service-Identität protokolliert haben. Das 4673-Event enthält den hier übergebenen Service-Namen, die genutzten Privilegien und die User-SID des Client-Tokens.

Häufige Malware-Nutzung

Im Wesentlichen null in Commodity-Malware. Der Zweck des Syscalls ist gerade, eine Spur zu hinterlassen — das Gegenteil des Ziels eines Malware-Operators. Die wenigen In-the-Wild-Beobachtungen sind MS-signierte Komponenten in normaler Arbeit. Werkzeuge wie Mimikatz, die SeDebugPrivilege schwingen, rufen diesen Syscall nie auf — sie üben das Privileg lautlos aus, weil der Object Manager Privilegiennutzung nicht automatisch auditiert.

Erkennungs­möglichkeiten

Das 4673-Eventvolumen auf einer sauberen Workstation wird von einer kleinen Menge legitimer Operationen dominiert (Treiber-Loads, geplante-Task-Läufe als SYSTEM, WMI-Provider-Starts). Verteidiger sollten 4673 nach (ServiceName, PrivilegeList, ClientUserSid) baselinen und auf neue Tupel alarmieren. Anmerkung: das *Fehlen* eines 4673 rund um eine SeLoadDriverPrivilege-Nutzung (über SCM-Event 7045 verifizierbar) ist weit interessanter als deren Anwesenheit — es deutet entweder auf einen Non-SCM-Treiber-Load (T1547.006) oder auf Audit-Log-Tampering (T1562.002). Defender for Endpoint zeigt äquivalente Telemetrie über die DeviceProcessEvents- und DeviceEvents-Tabellen.

Direkte Syscall-Beispiele

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).
}

MITRE ATT&CK-Mappings

Last verified: 2026-05-20