T1127.003

JamPlus

Adversaries may abuse the JamPlus build utility to proxy the execution of malicious scripts or binaries. JamPlus is a cross-platform build system that uses Jamfiles to describe build processes and dependencies. By embedding arbitrary shell commands within a specially crafted .jam file's Actions blocks, adversaries can execute payloads through a trusted developer tool. Because jam.exe carries a legitimate code-signing reputation, this technique is specifically used to bypass Smart App Control (SAC) and similar reputation-based application control mechanisms that would otherwise block unsigned or unknown executables.

Microsoft Sentinel / Defender
kusto
let SuspiciousChildProcesses = dynamic([
    "cmd.exe", "powershell.exe", "pwsh.exe", "wscript.exe", "cscript.exe",
    "mshta.exe", "rundll32.exe", "regsvr32.exe", "certutil.exe", "bitsadmin.exe",
    "msiexec.exe", "wmic.exe", "net.exe", "netsh.exe", "sc.exe",
    "schtasks.exe", "curl.exe", "wget.exe", "ftp.exe", "whoami.exe",
    "net1.exe", "nltest.exe", "dsquery.exe"
]);
let SuspiciousParents = dynamic([
    "winword.exe", "excel.exe", "powerpnt.exe", "outlook.exe", "onenote.exe",
    "wscript.exe", "cscript.exe", "mshta.exe", "explorer.exe",
    "powershell.exe", "pwsh.exe", "cmd.exe"
]);
let SuspiciousPaths = dynamic([
    "\\temp\\", "\\tmp\\", "\\appdata\\local\\temp\\",
    "\\downloads\\", "\\desktop\\", "\\public\\", "\\users\\public\\"
]);
// Branch 1: JamPlus spawning suspicious child processes (RiskScore 90)
DeviceProcessEvents
| where Timestamp > ago(24h)
| where InitiatingProcessFileName =~ "jam.exe" or InitiatingProcessFileName =~ "jamplus.exe"
| where FileName in~ (SuspiciousChildProcesses)
| extend RiskScore = 90
| extend DetectionBranch = "SuspiciousChildProcess"
| union (
    // Branch 2: JamPlus spawned by non-development parent processes (RiskScore 85)
    DeviceProcessEvents
    | where Timestamp > ago(24h)
    | where FileName =~ "jam.exe" or FileName =~ "jamplus.exe"
    | where InitiatingProcessFileName in~ (SuspiciousParents)
    | extend RiskScore = 85
    | extend DetectionBranch = "SuspiciousParentProcess"
)
| union (
    // Branch 3: JamPlus binary executing from user-writable or temp paths (RiskScore 75)
    DeviceProcessEvents
    | where Timestamp > ago(24h)
    | where FileName =~ "jam.exe" or FileName =~ "jamplus.exe"
    | where FolderPath has_any (SuspiciousPaths)
    | extend RiskScore = 75
    | extend DetectionBranch = "SuspiciousExecutionPath"
)
| union (
    // Branch 4: JamPlus loading a Jamfile from a suspicious path via -f flag (RiskScore 70)
    DeviceProcessEvents
    | where Timestamp > ago(24h)
    | where FileName =~ "jam.exe" or FileName =~ "jamplus.exe"
    | where ProcessCommandLine has "-f"
    | where ProcessCommandLine has_any (SuspiciousPaths)
    | extend RiskScore = 70
    | extend DetectionBranch = "SuspiciousJamfilePath"
)
| project Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine,
         FolderPath, InitiatingProcessFileName, InitiatingProcessCommandLine,
         RiskScore, DetectionBranch
| 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

  • Legitimate software development workflows where JamPlus is used as a primary build system and legitimately invokes cmd.exe or scripting engines as part of build steps — baseline known developer workstations and build servers
  • Automated CI/CD pipelines (Jenkins, TeamCity, Azure DevOps self-hosted agents) running JamPlus builds that may execute from agent working directories or invoke shell utilities
  • Developer IDEs or terminal emulators (such as Visual Studio Code or Windows Terminal, which appear as explorer.exe children) that invoke jam.exe for build tasks — explorer.exe parent is common for GUI-launched terminals

Unlock Pro Content

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

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections