Azure WireServer Unusual Process Connection
Description
Identifies shells, LOLBins, GTFOBins, and scripting runtimes connecting to the Azure WireServer / HostGAPlugin address 168.63.129.16 on ports 80 or 32526. The guest agent uses this fabric endpoint for GoalState, certificates, and vmSettings. Adversaries with code execution on an Azure VM (including via Run Command) use curl, PowerShell, openssl, bun, or similar tools to enumerate versions, pull transport certificates, and read HostGAPlugin /vmSettings. Azure guest-agent binaries and system python used by waagent are excluded. Descendants of the guest agent are not excluded: Run Command payloads execute in that tree.
Query · kuery
event.category: network and host.os.type: (linux or windows) and
destination.ip: "168.63.129.16" and destination.port: (80 or 32526) and
(
process.name: (
bash or dash or sh or tcsh or csh or zsh or ksh or fish or mksh or busybox or
bun or bun.exe or node or node.exe or nodejs or deno or deno.exe or
java or java.exe or javaw or javaw.exe or
curl or curl.exe or wget or wget.exe or
powershell.exe or pwsh.exe or pwsh or cmd.exe or
certutil.exe or bitsadmin.exe or mshta.exe or rundll32.exe or
wscript.exe or cscript.exe or regsvr32.exe or
openssl or openssl.exe or nc or ncat or netcat or socat or
python.exe or pythonw.exe or perl or perl.exe or ruby or ruby.exe or
php or php.exe or lua or lua.exe
) or
process.executable: (
./* or /tmp/* or /var/tmp/* or /dev/shm/* or /run/* or /var/run/* or
/home/*/* or /root/* or *\:\\Users\\* or *\:\\ProgramData\\*
)
) and
not process.executable: (
/usr/sbin/waagent or /usr/bin/waagent or /usr/bin/python3* or
/usr/lib/systemd/systemd-resolved or /lib/systemd/systemd-resolved or
*\:\\WindowsAzure\\Packages\\* or *\:\\WindowsAzure\\GuestAgent*\\* or
*\:\\WindowsAzure\\SecAgent\\*
)
Known false positives
- Custom inventory or health scripts that call WireServer with curl or PowerShell. Validate the command line and exclude the specific signed binary or scheduled task after review.
- Break-glass troubleshooting by administrators using curl against 168.63.129.16. Confirm the change window and exclude the admin host or user if the activity is authorized.
Analyst notes
Investigating Azure WireServer Unusual Process Connection
168.63.129.16 is the Azure host-only WireServer (TCP 80) and HostGAPlugin (TCP 32526) address. Elastic Defend
network events record the destination IP, port, and initiating process. They do not include the HTTP path; pair this
alert with Network Packet Capture HTTP events when available (comp=certificates, /vmSettings, /versions).
Do not treat "child of waagent / WindowsAzureGuestAgent" as benign. Azure Run Command and Custom Script Extension launch attacker scripts as descendants of those agents. Exclude only the agent binaries themselves, which this query already omits by matching curl, PowerShell, and similar tools.
process.Ext.ancestry is often empty on these network events, so EQL descendant of is not reliable here.
Possible investigation steps
- Review
process.name,process.executable, andprocess.command_lineon nearby process start events. Look forcomp=certificates,32526,vmSettings,LinuxTransport, oropenssl cms -decrypt. - Note
destination.port: 32526 from curl or PowerShell is uncommon for legitimate guest-agent traffic (agents useWaAppAgent.exe,WindowsAzureGuestAgent.exe,CollectGuestLogs.exe, or/usr/bin/python3.10/ waagent). - Correlate with
169.254.169.254IMDS access from the same process, especially/metadata/v1/instanceinfo(no Metadata header) or/metadata/identity/oauth2/token. - Check Azure Activity Logs for
runCommand/actionor extensions/write against this VM. - Search StorageRead platform logs for subsequent SAS GetBlob of vmsettings or cse objects.
False positive analysis
- In-house monitoring that wraps curl to WireServer. Exclude by
process.executableor a signed parent after validating the script contents. - Do not exclude all children of the guest agent; that hides Run Command abuse.
Response and remediation
- Isolate the VM, rotate its managed identity and any SAS recovered from vmSettings, and review extension protectedSettings for injected configuration.
- Remove unauthorized Run Command resources and Custom Script extensions.
- Consider Azure Metadata Security Protocol (audit/enforce) to restrict which processes may call WireServer.