NetworkConnectIP4: CrowdStrike Outbound Connection Event and Queries
Published
One IPv4 connection attempt by a process on a host — local and remote address and port, protocol and direction — with ContextProcessId naming the process that made it.
Fields that matter in an investigation
| Field | What it tells you |
|---|---|
| 1RemoteAddressIP4 Panther FDR schema · CrowdStrike queries | The address the process connected to. Check public addresses against blocklists and against how many other hosts talk to them. |
| 2RemotePort Panther FDR schema · CrowdStrike queries | The destination port. 3389, 22, 5900 to the internet or 4444 anywhere are worth a second look. |
| 3LocalAddressIP4 Panther FDR schema · CrowdStrike queries | The host's own address on that connection. |
| 4LocalPort Panther FDR schema | The local port, normally a high ephemeral one for outbound connections. |
| Protocol Panther FDR schema | IP protocol number — 6 TCP, 17 UDP, 1 ICMP. |
| ConnectionDirection Panther FDR schema | 0 outbound, 1 inbound, 2 neither, 3 both, in Panther's schema and CrowdStrike's decoding table. |
| ContextProcessId Panther FDR schema · CrowdStrike queries | Falcon's ID of the process that made the connection — the TargetProcessId of its ProcessRollup2 on the same host. |
| ConnectionFlags Panther FDR schema | Flags for raw sockets (1) and promiscuous-mode capture (2, 4, 8); a set value on an ordinary connection deserves a look. |
| 9ComputerName Panther FDR schema · CrowdStrike queries | The host that made the connection. |
| 10aid Panther FDR schema · CrowdStrike queries | Sensor ID of the host. |
All 11 documented NetworkConnectIP4 fields, besides the generic sensor fields
- ConnectionDirectionPanther FDR schema
- ConnectionFlagsPanther FDR schema
- IcmpCodePanther FDR schema
- IcmpTypePanther FDR schema
- LocalAddressIP4Panther FDR schema · CrowdStrike queries
- LocalAddressIP6Panther FDR schema
- LocalPortPanther FDR schema
- ProtocolPanther FDR schema
- RemoteAddressIP4Panther FDR schema · CrowdStrike queries
- RemoteAddressIP6Panther FDR schema · CrowdStrike queries
- RemotePortPanther FDR schema · CrowdStrike queries
Panther's generic schema for all Falcon Data Replicator events adds the sensor and context fields (not every event type fills each one): ComputerName, ConfigBuild, ConfigStateHash, ContextProcessId, ContextThreadId, ContextTimeStamp, Entitlements, FileName, FilePath, InContext, TargetProcessId, TreeId, aid, aip, cid, event_platform, event_simpleName, id, name, timestamp.
What the numbers mean
These fields hold numbers that the Falcon console turns into words. The tables are CrowdStrike's own, from the decoding transforms in its public LogScale content repository, shown as published.
What the record looks like
Numbered lines are the fields in the table.
A synthetic record from LogTriage's test corpus, in the shape Falcon Data Replicator writes; every build of this site checks that it uses only fields documented for the event. Real records carry more fields.
What it records
NetworkConnectIP4 is written when a process on a host attempts an IPv4 connection. It records both ends — LocalAddressIP4 and LocalPort, RemoteAddressIP4 and RemotePort — the IP Protocol (6 TCP, 17 UDP, 1 ICMP), and ConnectionDirection (0 outbound, 1 inbound, 2 neither, 3 both). ConnectionFlags marks raw sockets and promiscuous-mode capture, both unusual for ordinary programs. Panther documents IPv4 and IPv6 connections with one schema, which is why the IPv6 address fields also appear in the field list; NetworkConnectIP6 is the IPv6 event.
As with DNS lookups, ContextProcessId names the process: it is the TargetProcessId of that process’s ProcessRollup2 on the same host. A connection on its own says that something talked to an address; joined to the process it says which program, with which command line and user. Byte counts and whether the connection completed are not in the documented fields.
When it matters
- Command and control. Regular connections from one process to one rare external address, a script host or Office application connecting out at all, or traffic to ports that attack tools default to, such as 4444 (MITRE ATT&CK T1571). The Falcon beaconing use case shows the pattern.
- Remote access to the internet. CrowdStrike’s own example alert flags connections to ports 21, 22, 3389, 5900 and 5901 outside private ranges — an internal host opening FTP, SSH, remote desktop or VNC sessions out to the internet.
- Lateral movement. Workstations connecting to other workstations on 445, 135, 5985 or 3389 is how intruders spread; workstations rarely need to.
- Raw sockets.
ConnectionFlagsset on a user program points at packet crafting or capture.
How to investigate
- Filter by the address or port of interest, and leave out private ranges when hunting outbound traffic.
- Join to
ProcessRollup2onaidand process ID to name the program, command line and user. - Count hosts per remote address: one or two hosts talking to an address no one else uses is the interesting tail. CrowdStrike also publishes a query for the least common destination ports.
- Look at the
DnsRequestevents of the same process to find the domain name behind the address, and check the address with the IP blocklist checker.
Remote-access ports to public addresses, from CrowdStrike’s example alert:
#event_simpleName=NetworkConnectIP4
| RemotePort=/^(21|22|3389|5900|5901)$/
| !cidr(RemoteAddressIP4, subnet=["224.0.0.0/4", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "127.0.0.0/8", "169.254.0.0/16"])
| groupBy([aid, ComputerName, RemoteAddressIP4, RemotePort], function=count(as=Connections), limit=max)
| sort(Connections, order=desc)
The program behind connections to a port, joined the way CrowdStrike’s queries join processes and connections:
(#event_simpleName=ProcessRollup2 event_platform=Win) OR (#event_simpleName=NetworkConnectIP4 RemotePort=4444)
| falconPID := TargetProcessId | falconPID := ContextProcessId
| selfJoinFilter([aid, falconPID], where=[{#event_simpleName=ProcessRollup2}, {#event_simpleName=NetworkConnectIP4}], prefilter=true)
| groupBy([aid, falconPID], function=collect([ImageFileName, CommandLine, RemoteAddressIP4, RemotePort]))
Remote-access ports to public addresses over Falcon Data Replicator data in Splunk (add your index):
sourcetype="crowdstrike:events:sensor" event_simpleName=NetworkConnectIP4 RemotePort IN (21, 22, 3389, 5900, 5901)
| where NOT cidrmatch("10.0.0.0/8", RemoteAddressIP4) AND NOT cidrmatch("172.16.0.0/12", RemoteAddressIP4) AND NOT cidrmatch("192.168.0.0/16", RemoteAddressIP4)
| stats count AS Connections, dc(aid) AS Hosts by RemoteAddressIP4, RemotePort
| sort - Connections
The free log analyzer reads Falcon exports in the browser and flags connections to reverse-shell ports and exposed management ports.
Where these facts come from
CrowdStrike's event dictionary sits behind the Falcon console login, so the field list above is assembled from public sources that agree with one another, and checked on every build:
- CrowdStrike's own queries (logscale-community-content, public domain): 28 files use NetworkConnectIP4, for example Example-ConnectionstoCommonRemoteAccessPorts.yaml, Search-AcquireHostDetails.yaml, Search-ByAgentID.yaml.
- Panther's Falcon Data Replicator schema Crowdstrike.NetworkConnect.
A field counts as documented when Panther or Splunk lists it for this event, or when at least two of CrowdStrike's query files read it from this event alone. The explanations are LogTriage's own.
Related events
- ProcessRollup2
- DnsRequest
- NetworkConnectIP6
- NetworkReceiveAcceptIP4
- NetworkConnectIP4Blocked
- NetworkListenIP4
Detect it
Frequently Asked Questions
- Does a NetworkConnectIP4 event mean the connection succeeded?
- Panther's schema describes it as an application attempting a remote connection, and the documented fields carry no byte counts or result, so treat it as an attempt. CrowdStrike's queries also use NetworkConnectIP4Blocked, which by its name covers connections that were blocked; firewall or proxy logs show whether data actually flowed.
- How do I find the program behind a NetworkConnectIP4 event?
- ContextProcessId is Falcon's ID of the process that made the connection, and that process's ProcessRollup2 carries the same value as TargetProcessId on the same aid. CrowdStrike's published query for this copies both into one field and keeps processes that have both events with selfJoinFilter.
- What is the difference between NetworkConnectIP4 and NetworkReceiveAcceptIP4?
- NetworkConnectIP4 is a connection a process on the host started, so RemoteAddressIP4 is the destination. NetworkReceiveAcceptIP4, by its name, is an incoming connection the host accepted, where the remote address is the client. NetworkConnectIP6 is the IPv6 counterpart, documented with the same schema in Panther.
- Which ports in NetworkConnectIP4 should I look at first?
- CrowdStrike's own example alert watches for connections to 21, 22, 3389, 5900 and 5901 outside private ranges, meaning FTP, SSH, remote desktop and VNC to the internet. Add ports that common attack tools default to, such as 4444, and whatever is rare across your estate; CrowdStrike also publishes a query that lists the least common destination ports.
Find every NetworkConnectIP4 in your own Falcon export
Load a Falcon Data Replicator or event-stream export into the free browser analyzer: suspicious command lines, LSASS access, logon failures, reverse-shell ports and Falcon's own detections are flagged, with event names linked to their pages here. Nothing is uploaded.
Investigating something right now? LogTriage checks every address in the file against threat intelligence and writes the incident report: 10 analyses a month free. The incident pack adds the in-depth AI analysis and files up to 100 MB: 25 analyses for $19, one payment, no subscription. Pricing