T1546.006

LC_LOAD_DYLIB Addition

Adversaries may establish persistence by executing malicious content triggered by the loading of a dynamically linked shared library. Mach-O binaries on macOS have a series of load commands that dictate how/when the binary is executed, including a set of libraries to load. The LC_LOAD_DYLIB command in a Mach-O binary tells macOS to load a specific dynamic library (.dylib) when that binary executes. Adversaries can add their own LC_LOAD_DYLIB load command to any Mach-O binary, causing their malicious library to be loaded whenever the modified binary is executed. This provides persistence that is triggered by the execution of legitimate binaries.

Microsoft Sentinel / Defender
kusto
DeviceProcessEvents
| where Timestamp > ago(24h)
| where DeviceOSPlatform has_any ("macOS", "Mac", "Darwin")
| where FileName in~ ("install_name_tool", "otool", "codesign", "lipo", "jtool", "jtool2", "macho_tool")
| extend IsDylibOperation = ProcessCommandLine has_any (
    "-add_rpath", "-change", "-rpath", "LC_LOAD_DYLIB",
    "@rpath", "@loader_path", "@executable_path"
  )
| extend TargetBinary = extract(@"(?:install_name_tool|otool)\s+(?:-[\w]+\s+){0,5}([\S]+\.(dylib|app|bundle|bin|[a-z]+))", 1, ProcessCommandLine)
| where IsDylibOperation
| project Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine,
         TargetBinary, IsDylibOperation,
         InitiatingProcessFileName, InitiatingProcessCommandLine
| sort by Timestamp desc
high severity medium confidence

Data Sources

Process: Process Creation Command: Command Execution Microsoft Defender for Endpoint

Required Tables

DeviceProcessEvents

False Positives

  • Developers legitimately modifying Mach-O binaries during build processes (install_name_tool is commonly used in Xcode build scripts to fix dylib paths)
  • Homebrew and MacPorts package managers that use install_name_tool to relocate dylib paths when installing packages
  • Codesigning workflows that modify binary metadata as part of CI/CD pipelines for macOS application development
  • Security researchers and reverse engineers using otool/jtool for binary analysis on their own machines

Unlock Pro Content

Get the full detection package for T1546.006 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections