>dscl
Directory Service command-line utility (dscl) allows reading and writing Directory Service databases. Attackers use dscl for local user discovery, creating hidden administrator accounts, or extracting password hashes.
Default Executable Paths
/usr/bin/dsclIntegrity & Metadata
Adversaries commonly create hidden admin users with dscl . -create /Users/hiddenuser.
Detect dscl creating users with /Users/ paths or changing UserShell or PrimaryGroupID.
Executive Summary & AI Quick Reference
dscl is a native utility pre-installed on macOS systems. Threat actors and red teams abuse dscl as a Living-off-the-Land Binary (LOLBin) to achieve Persistence without triggering traditional antivirus file-hash alerts. Legitimate system administrators use it for routine administration, making behavioral command-line telemetry essential for differentiation.
Weaponized Parameters & Proof-of-Concepts
Documented attack commands, parameter flags, and privilege prerequisites.
Creates a local account and appends it to the local administrator group for persistence and privilege escalation.
dscl . -create /Users/sysadmin UserShell /bin/zsh && dscl . -append /Groups/admin GroupMembership sysadminSIEM & EDR Detection Rules
Production telemetry rules configured for Microsoft Defender, Sigma, and Splunk.
Telemetry & SIEM Detection Suite (dscl)
Validated against MITRE T1087, T15481DeviceProcessEvents2| where FileName =~ "dscl"3| where ProcessCommandLine has_all ("-create /Users/", "GroupMembership")4| project Timestamp, DeviceName, AccountName, InitiatingProcessFileName, ProcessCommandLineMitigation, Hardening & Prevention
Recommended defensive controls to block or constrain dscl abuse.
Enforce strict Endpoint Security Framework (ESF) policies and mobile device management (MDM) profile restrictions blocking unsigned scripts.
Configure Apple Gatekeeper and restrict Terminal / osascript execution through strict Transparency, Consent, and Control (TCC) profiles.
Deploy the KQL, Sigma, and Splunk detection queries below. Alert on anomalous child processes, web requests to unrated external IPs, or encoded payload strings.
Frequently Asked Questions (FAQ) • dscl
Key operational questions and defensive answers about dscl LOLBin tradecraft.
What is dscl and why is it classified as a LOLBin?
dscl is a legitimate, pre-installed or trusted utility on macOS. It is classified as a Living-off-the-Land Binary (LOLBin) because adversaries abuse its built-in functionality to perform malicious operations—such as Persistence—without dropping custom malware binaries on disk.
How do threat actors abuse dscl in cyber intrusions?
Adversaries leverage dscl to execute stealthy actions while evading signature-based security controls. For example, attackers execute commands like "dscl . -create /Users/sysadmin UserShell /bin/zsh && dscl . -append /Groups/admin GroupMembership sysadmin" to achieve Persistence, masquerading behind legitimate system process lineage.
How can SOC analysts detect suspicious dscl activity?
Detection engineers monitor process creation events (Windows Event ID 4688 or Sysmon Event ID 1; Linux auditd EXECVE; macOS Endpoint Security) inspecting anomalous command line arguments, unusual parent-child process relationships (e.g. Office apps or web servers spawning dscl), and unexpected network connections.
What MITRE ATT&CK techniques does dscl map to?
dscl maps to MITRE ATT&CK technique(s): T1087, T1548. These techniques cover adversary actions across tactics such as Defense Evasion, Execution, Persistence, and Command and Control.
How can organizations mitigate and restrict dscl?
Mitigation strategies include implementing Application Control policies (AppLocker or Windows Defender Application Control - WDAC), enforcing Attack Surface Reduction (ASR) rules, configuring strict privilege separation (disallowing standard users from running sensitive switches), and alerting on execution from non-standard directories.
Other High-Traffic MACOS LOLBins
Osascript executes Open Scripting Architecture (OSA) scripts such as AppleScript and JavaScript for Automation (JXA). Widely used in macOS malware to display convincing phishing dialogs, harvest credentials, control System Events, and execute shell commands.
The open command opens files, directories, URLs, and applications as if you double-clicked them in Finder. Used to launch unsigned or quarantined applications and evade Gatekeeper or security software inspection.
Curl is standard on macOS and frequently invoked in bash/zsh shell scripts by macOS stealers (e.g. Atomic macOS Stealer / AMOS) to fetch stage 2 Mach-O executables or exfiltrate keychain data.
Defaults reads and writes macOS user defaults and plist configuration files. Attackers abuse it to write LoginHook scripts or alter ScreenSaver preferences to achieve reboot persistence.