T1559

Inter-Process Communication

Adversaries may abuse inter-process communication (IPC) mechanisms for local code execution, command-and-control channel establishment, or lateral movement. IPC mechanisms allow processes to share data, communicate, or synchronize execution. On Windows, adversaries commonly abuse named pipes to relay commands between C2 framework components (Havoc SMB demon, Cobalt Strike pipe-based beacons, Metasploit named pipe stagers), move data between kernel and user mode components (Uroburos/Snake malware), or pipe output from arbitrary commands to a controlling process (LunarWeb, ROADSWEEP, OilBooster). The IPC$ administrative share provides a network-accessible path for named pipe connections, enabling cross-host pipe-based C2 (HyperStack, Cobalt Strike lateral movement). On Linux and macOS, adversaries leverage Unix domain sockets (PITSTOP), shared memory segments via shmget (RotaJakiro), and anonymous pipes for inter-process communication. Medusa Ransomware and Cyclops Blink use the CreatePipe API to coordinate parallel operations. Raspberry Robin embeds a Tor client that communicates with its main payload via shared process memory. Detection focuses on named pipe creation by high-risk processes, non-standard pipe names matching known C2 framework patterns, and unusual network-based IPC$ share access.

Microsoft Sentinel / Defender
kusto
let SuspiciousPipePatterns = dynamic([
    "postex_", "meterpreter", "msf-pipe", "cobaltstrike", "havoc_",
    "MSSE-", "dsniff", "win_svc_pipe", "agent_pipe", "status_",
    "msagent_", "mojo_fuzz", "winsock_pipe"
]);
let CommonSystemPipes = dynamic([
    "srvsvc", "wkssvc", "netlogon", "samr", "lsarpc", "spoolss",
    "browser", "epmapper", "MsFteWds", "atsvc", "trkwks", "W32TIME_ALT",
    "svcctl", "eventlog", "InitShutdown", "winreg", "protected_storage",
    "ROUTER", "LSM_API_service", "IPCDump"
]);
let HighRiskProcesses = dynamic([
    "rundll32.exe", "regsvr32.exe", "mshta.exe", "wscript.exe", "cscript.exe",
    "powershell.exe", "pwsh.exe", "certutil.exe", "msiexec.exe", "dllhost.exe"
]);
// Detection 1: Non-standard named pipe access over IPC$ network share (Security Event 5145)
// This covers remote lateral movement and C2 relaying via named pipe tunneling
let NetworkIPCPipeAccess = SecurityEvent
| where TimeGenerated > ago(24h)
| where EventID == 5145
| where ShareName contains "IPC$"
| where RelativeTargetName !in~ (CommonSystemPipes)
| where IpAddress !in ("127.0.0.1", "::1", "-", "0.0.0.0")
| where SubjectUserName !endswith "$"  // Exclude expected machine account traffic
| extend PipeName = tostring(RelativeTargetName)
| extend IsSuspiciousPipeName = PipeName has_any (SuspiciousPipePatterns)
| extend DetectionSource = "IPC$NetworkPipeAccess"
| project
    TimeGenerated,
    Computer,
    AccountName = SubjectUserName,
    Domain = SubjectDomainName,
    PipeName,
    IsSuspiciousPipeName,
    DetectionSource,
    SourceAddress = IpAddress,
    SourcePort = IpPort,
    AccessMask;
// Detection 2: High-risk process initiating SMB connections (potential pipe tunnel establishment)
let HighRiskSMBPipeConn = DeviceNetworkEvents
| where Timestamp > ago(24h)
| where RemotePort == 445
| where InitiatingProcessFileName has_any (HighRiskProcesses)
| extend PipeName = ""
| extend IsSuspiciousPipeName = false
| extend DetectionSource = "HighRiskProcessSMBPipe"
| project
    TimeGenerated = Timestamp,
    Computer = DeviceName,
    AccountName,
    Domain = "",
    PipeName,
    IsSuspiciousPipeName,
    DetectionSource,
    SourceAddress = LocalIP,
    SourcePort = LocalPort,
    AccessMask = "",
    InitiatingProcess = InitiatingProcessFileName,
    InitiatingCommandLine = InitiatingProcessCommandLine,
    RemoteIP,
    RemotePort;
// Combine both detections
NetworkIPCPipeAccess
| extend InitiatingProcess = "", InitiatingCommandLine = "", RemoteIP = "", RemotePort = int(null)
| union HighRiskSMBPipeConn
| sort by TimeGenerated desc
high severity medium confidence

Data Sources

Network Share: Network Share Access Network Traffic: Network Connection Creation Windows Security Event ID 5145 Microsoft Defender for Endpoint DeviceNetworkEvents

Required Tables

SecurityEvent DeviceNetworkEvents

False Positives

  • Legitimate administrative tools using IPC$ for remote management — PsExec, SC.exe, remote registry operations, and WMI will access standard pipes like svcctl and winreg over IPC$
  • Backup and monitoring agents (Veeam, Zabbix, SolarWinds) that use named pipes for inter-process coordination or query Windows services via SMB
  • Software deployment systems (SCCM, Intune) connecting to IPC$ shares on managed endpoints for policy application and software push installations
  • Database services (SQL Server) using named pipes as an alternative client connection transport, especially in environments with pipe-based connection strings
  • IT automation platforms (Ansible WinRM, Chef, Puppet) that use SMB and named pipes for remote configuration management on Windows targets
  • EDR and AV products that use named pipes for kernel-user communication may generate pipe creation events from svchost.exe or their own service processes

Unlock Pro Content

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

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections