Non-Application Layer Protocol T1095

Tactic: Command & Control

Adversaries may use an OSI non-application layer protocol for communication between host and C2 server or among infected hosts within a network. The list of possible protocols is extensive. Specific examples include use of network layer protocols, such as the Internet Control Message Protocol (ICMP), transport layer protocols, such as the User Datagram Protocol (UDP), session layer protocols, such as Socket Secure (SOCKS), as well as redirected/tunneled protocols, such as Serial over LAN (SOL).

Events covered

16 catalog events are tagged with this technique by at least one rule.

Authoring guide

These 46 rules share fields, values, and exclusions.

Fields filtered most (52 distinct)

These fields appear most often in rule filters.

FieldRulesHowSample values
event.type18eq 17, in 1start, process_started
EventType17in 10, eq 9, is_null 1exec, connection_attempted, connection_accepted, ProcessRollup2, exec_event
process_basename17eq 9, in 8, wildcard 4, starts_with 2bash, csh, dash, awk, busybox
process.args11wildcard 7, contains 6, eq 5, in 3, regex_match 1, starts_with 1*/bin/*sh*, */inet/tcp/*, *TCPSocket.new*, -*e*, -*l*
EventID8eq 81, 4104, 4688, 5156, 4625
parent_process_basename8eq 4, in 4, wildcard 2, starts_with 1bash, csh, dash, socat, *.cgi
dest_ip6is_not_null 6, ne 1, 127.0.0.1, ::1
CommandLine5regex_match 4, contains 1, in 1(?i)(\-\-dns)?((\s+)|(\=))?((server\=)|(host\=))?((\d{1,3..., --lua-exec , --sh-exec , -l --proxy-type http , (?i)(socks\d\w?:\/\/|--(pre)?proxy)
Image4starts_with 2, ends_with 1, wildcard 1./*, /boot/*, /dev/shm/*, /bin/lua*, /bin/perl*
process.parent.args4contains 3, wildcard 2, eq 1*exec*, *--port*, *-Dsolr.solr.home=*, */app/*.js*, -*l*
Query3in 2, contains 1api.2ip.ua, api.ipify.org, canireachthe.net, dyn.com, dynu.com
container.id3starts_with 2, wildcard 1?*, *
data_stream.dataset3eq 2, in 1, is_null 1, ne 1, gcp.audit, network_traffic.flow, network_traffic.icmp, panw.panos
src_ip3cidr_match 2, in 110.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 127.0.0.0/8, 169.254.0.0/16
EventResultDetails2in 2NXDOMAIN, REFUSED, SERVFAIL

Top indicator values (819 distinct)

These values appear most often in rule predicates.

FieldKindValueRules (here)Corpus reach
event.typeeq
start
161036
EventTypeeq
exec
8547
EventTypein
exec
6180
EventTypein
connection_attempted
524
EventTypein
connection_accepted
414
EventTypein
start
4157
EventTypein
ProcessRollup2
3119
EventTypein
exec_event
3135
dest_ipis_not_null
619
process_basenamein
bash
6181
process_basenamein
dash
6150
process_basenamein
sh
6180
process_basenamein
zsh
6180
process_basenamein
csh
4148
process_basenamein
fish
4151
process_basenamein
ksh
4149
process_basenamein
tcsh
4145
process_basenamein
busybox
367
process_basenamein
nc
319
CommandLineregex_match
(?i)(\-\-dns)?((\s+)|(\=))?((server\=)|(host\=))?((\d{1,3}\.\d{1,3}\.\d{1,3}\...
33
process.argscontains
*socket*
37
process.argseq
-e
342
process_basenameeq
bash
310
process_basenameeq
csh
36
process_basenameeq
dash
38
process_basenameeq
fish
36
process_basenameeq
ksh
37
process_basenameeq
sh
310
process_basenameeq
tcsh
37
process_basenameeq
zsh
310

Exclusions (160 distinct)

These values appear most often in top-level exclusions.

FieldKindValueRules excluding
dest_ipcidr_match
127.0.0.0/8
9
dest_ipcidr_match
169.254.0.0/16
9
dest_ipcidr_match
224.0.0.0/4
8
dest_ipcidr_match
::1
8
dest_ipcidr_match
10.0.0.0/8
4
dest_ipcidr_match
172.16.0.0/12
4
dest_ipcidr_match
192.168.0.0/16
4
dest_ipcidr_match
100.64.0.0/10
3
dest_ipcidr_match
192.0.0.0/24
3
dest_ipcidr_match
192.0.0.0/29
3
dest_ipcidr_match
192.0.0.10/32
3
dest_ipcidr_match
192.0.0.170/32
3
dest_ipcidr_match
192.0.0.171/32
3
dest_ipcidr_match
192.0.0.8/32
3
dest_ipcidr_match
192.0.0.9/32
3

Rules under this technique

These vendors publish rules tagged with this technique.

Platform (all)
Domain (all)

Sigma 3 rules

Elastic 20 rules

Splunk 11 rules

Kusto 11 rules

Panther 1 rule