← All Binaries

notifyutil

The notifyutil binary is a command-line interface to the notify(3) API and notifyd(8) daemon, which manages Darwin notifications on macOS. This utility enables posting notifications, monitoring system-wide notification keys, and manipulating state values associated with notification keys. While designed for legitimate inter-process communication (IPC), notifyutil can be abused by threat actors to monitor system events (like screen lock, network changes, timezone updates), establish covert communication channels between processes, or gather intelligence about system state changes without triggering traditional security monitoring.

Author: Brendan Chamberlain (@infosecB) Created: 2025-01-24

Paths

/usr/bin/notifyutil

Example Use Cases

Monitor system events for reconnaissance

An attacker can register for system notification keys to detect when the user locks their screen, changes network state, or other system events without using more easily detected APIs. The following example monitors for screen lock events.

notifyutil -w com.apple.screenIsLocked

Establish covert inter-process communication channel

Threat actors can use Darwin notifications as a covert IPC mechanism to coordinate between malicious processes. By posting and monitoring custom notification keys with associated state values, malware components can exchange commands and data without using traditional IPC methods that may be monitored.

# Sender process
notifyutil -p com.example.hidden.channel -s com.example.hidden.channel 1337

# Receiver process in another terminal/process
notifyutil -1 com.example.hidden.channel -g com.example.hidden.channel

Monitor network state changes for data exfiltration timing

An attacker can monitor for network configuration changes to determine optimal timing for data exfiltration. This allows malware to detect when the system connects to networks and adjust behavior accordingly.

notifyutil -w com.apple.system.config.network_change

Monitor timezone changes for geolocation tracking

Monitoring timezone change notifications can help an attacker track when a target device moves between geographic locations or when users travel, providing intelligence about the target's physical location and movement patterns.

notifyutil -w com.apple.system.timezone

Monitor login/logout events for privilege escalation timing

By monitoring authentication-related notification keys, an attacker can detect login and logout events to time privilege escalation attempts or other malicious activities when defenses may be weakened during authentication transitions.

notifyutil -w com.apple.loginwindow.logout -w com.apple.springboard.attemptactivationend

Query system notification state values for reconnaissance

Threat actors can query state values of system notification keys to gather information about the current system configuration without executing more suspicious commands.

notifyutil -g com.apple.system.timezone
notifyutil -g com.apple.loginwindow.logout
notifyutil -g com.apple.screenIsLocked

Detections

  • Monitor notifyutil execution with suspicious notification keys
  • Detect notifyutil monitoring non-standard or custom notification keys (keys not starting with com.apple)
  • Monitor long-running notifyutil processes (using -w flag for sustained monitoring)
  • Detect notifyutil usage in conjunction with known malware indicators or suspicious parent processes

Resources

Acknowledgements

  • Research and testing conducted for LOOBins project