> Windows Syscalls
ntoskrnl.exeT1562.002T1134

NtPrivilegeObjectAuditAlarm

Emittiert einen Security-Eventlog-Eintrag, der die Nutzung eines oder mehrerer Privilegien an einem bestimmten Objekt meldet.

Prototyp

NTSTATUS NtPrivilegeObjectAuditAlarm(
  PUNICODE_STRING SubsystemName,
  PVOID           HandleId,
  HANDLE          ClientToken,
  ACCESS_MASK     DesiredAccess,
  PPRIVILEGE_SET  Privileges,
  BOOLEAN         AccessGranted
);

Argumente

NameTypeDirDescription
SubsystemNamePUNICODE_STRINGinIm resultierenden Event angezeigter Subsystemname, z. B. L"Security".
HandleIdPVOIDinOpaker Pro-Handle-Identifikator zur Korrelation mit zugehörigen Open/Close-Events.
ClientTokenHANDLEinImpersonation-Token des Clients, dessen Privilegiennutzung protokolliert wird.
DesiredAccessACCESS_MASKinZugriffsmaske, die der Client beim Privilegien-Check auszuüben versuchte.
PrivilegesPPRIVILEGE_SETinGeprüfter Privilegien-Satz, z. B. {SE_SECURITY_PRIVILEGE} für SACL-Zugriff.
AccessGrantedBOOLEANinTRUE bei Erfolg der Operation (als Erfolg 4673/4674 protokolliert), FALSE bei Fehlschlag.

Syscall-IDs pro Windows-Version

Windows-VersionSyscall-IDBuild
Win10 15070x123win10-1507
Win10 16070x129win10-1607
Win10 17030x12Dwin10-1703
Win10 17090x12Fwin10-1709
Win10 18030x131win10-1803
Win10 18090x132win10-1809
Win10 19030x133win10-1903
Win10 19090x133win10-1909
Win10 20040x138win10-2004
Win10 20H20x138win10-20h2
Win10 21H10x138win10-21h1
Win10 21H20x139win10-21h2
Win10 22H20x139win10-22h2
Win11 21H20x13Fwin11-21h2
Win11 22H20x141win11-22h2
Win11 23H20x141win11-23h2
Win11 24H20x143win11-24h2
Server 20160x129winserver-2016
Server 20190x132winserver-2019
Server 20220x13Ewinserver-2022
Server 20250x143winserver-2025

Kernel-Modul

ntoskrnl.exeNtPrivilegeObjectAuditAlarm

Verwandte APIs

ObjectPrivilegeAuditAlarmWPrivilegeCheckNtPrivilegedServiceAuditAlarmNtAccessCheckAndAuditAlarm

Syscall-Stub

4C 8B D1            mov r10, rcx
B8 43 01 00 00      mov eax, 0x143
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

Erzeugt das Security-Event 4674 ("Es wurde versucht, eine Operation an einem privilegierten Objekt durchzuführen"), wann immer eine privilegierte Operation gegen ein *Objekt* (keine Service-Aktion — dafür NtPrivilegedServiceAuditAlarm) geprüft wird. Klassisches Beispiel ist der Aufruf von Backup-APIs, die SeBackupPrivilege datei-für-datei ausüben: jeder privilegierte Datei-Open emittiert ein 4674. Der Aufrufer ist verantwortlich, den Syscall zu invocieren — Privilegiennutzung wird vom Object Manager nicht automatisch geprüft, also muss ein privilegiertes Subsystem mit Log-Treue es explizit aufrufen. Sysmon Event ID 4673/4674 (mit entsprechenden Regeln) füllt dieselben Daten mit zusätzlichem Prozesskontext.

Häufige Malware-Nutzung

Fast null. Malware, die Privilegien nutzt, tut das typischerweise lautlos — NtPrivilegeObjectAuditAlarm aufzurufen würde gerade den Eintrag erzeugen, den sie zu vermeiden versucht. Die einzigen legitimen Aufrufer sind MS-Subsysteme, die *Audit-Treue wollen* (LSASS, ntdsa.dll, der Backup-Dienst, Defender-for-Identity-Sensoren). Jeder Aufrufer außerhalb dieses kleinen Sets ist primär durch seine Seltenheit verdächtig.

Erkennungs­möglichkeiten

Volumen auf einer normalen Workstation ist nahe null, außer Backup-Jobs laufen. Plötzliches Fehlen erwarteter 4674-Events während einer bekannten privilegierten Operation (z. B. geplanter Volume Shadow Copy) ist ein stärkeres Signal als deren Anwesenheit — es deutet auf Eventlog-Subsystem-Beeinträchtigung (T1562.002). Für positive Detektion auf 4674-Events mit Privileg == SeDebugPrivilege, SeTcbPrivilege oder SeLoadDriverPrivilege fokussieren, die von einem unsignierten Image oder einem Image, das normalerweise nicht mit diesen Privilegien gesehen wird, emittiert wurden.

Direkte Syscall-Beispiele

asmx64 direct stub (Win11 24H2)

; Direct syscall stub for NtPrivilegeObjectAuditAlarm (SSN 0x143, Win11 24H2)
NtPrivilegeObjectAuditAlarm PROC
    mov  r10, rcx          ; syscall convention
    mov  eax, 143h         ; SSN
    syscall
    ret
NtPrivilegeObjectAuditAlarm ENDP

cBackup service emitting a 4674 per protected file

// A backup service holding SeBackupPrivilege walks the volume and, for each
// file it opens via FILE_FLAG_BACKUP_SEMANTICS, explicitly emits a 4674
// so the Security log records *which* files were touched with the privilege.

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

struct {
    PRIVILEGE_SET ps;
    LUID_AND_ATTRIBUTES extra; // tail for >1 privilege
} 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");

NtPrivilegeObjectAuditAlarm(
    &sub,
    (PVOID)hFile,           // handle id
    hClientToken,
    FILE_GENERIC_READ,
    &pset.ps,
    TRUE);                  // access granted

rustWin32 PrivilegeCheck + ObjectPrivilegeAuditAlarmW

// The Win32 wrappers are PrivilegeCheck (decision) +
// ObjectPrivilegeAuditAlarmW (audit emission).
use windows_sys::Win32::Security::Authorization::ObjectPrivilegeAuditAlarmW;
use windows_sys::Win32::Security::*;

unsafe {
    let ok = ObjectPrivilegeAuditAlarmW(
        windows_sys::w!("Security"),
        handle_id as *mut _,
        client_token,
        desired_access,
        &priv_set as *const _ as *mut _,
        1, // access_granted
    );
    // ok != 0 -> the 4674 was emitted (assuming "Audit Privilege Use"
    // policy is enabled).
}

MITRE ATT&CK-Mappings

Last verified: 2026-05-20