Proxy T1090

Tactic: Command & Control

Adversaries may use a connection proxy to direct network traffic between systems or act as an intermediary for network communications to a command and control server to avoid direct connections to their infrastructure. Many tools exist that enable traffic redirection through proxies or port redirection, including HTRAN, ZXProxy, and ZXPortMap. Adversaries use these types of proxies to manage command and control communications, reduce the number of simultaneous outbound network connections, provide resiliency in the face of connection loss, or to ride over existing trusted communications paths between victims to avoid suspicion. Adversaries may chain together multiple proxies to further disguise the source of malicious traffic.

Events covered

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

Authoring guide

Patterns shared across the 82 rules above: which fields they filter on, what specific values they look for, and what they exclude. The catalog normalizes field names across vendors so Sigma's Image, Elastic's process.name, and Splunk's process_name collapse into one row. Each rule contributes at most once per row.

Fields filtered most (80 distinct)

The fields most rules look at when detecting this technique. The How column shows the operators authors use (eq, wildcard, regex_match, match) and how often each appears. Sample values are concrete examples to start from, not an exhaustive list.

FieldRulesHowSample values
CommandLine23contains 18, in 3, match 2, regex_match 1 tunnel , -config , run , *--config*, *authtoken*
process_name20eq 16, in 4, is_not_null 2, starts_with 2, contains 1curl, 3proxy, chisel, dnscat, proxychains
Image16ends_with 15, contains 2\cloudflared.exe, \cloudflared-windows-386.exe, \cloudflared-windows-amd64.exe, \netsh.exe, :\program files (x86)\cloudflared\
event.type16eq 16start, change
EventType14in 9, eq 6exec, ProcessRollup2, exec_event, connection_attempted, ConnectionEvent
process.args13eq 10, wildcard 5, contains 3, in 3, starts_with 3, match 2--preproxy, --proxy, --socks5-hostname, -c, -s
host.os.type12eq 11, in 1
DestinationHostname6contains 3, ends_with 3.localto.net, .localtonet.com, tunnel.ap.ngrok.com, tunnel.au.ngrok.com, tunnel.eu.ngrok.com
Hashes5contains 5sha256=0409c9b12f9d0eda86e461ed9bdabeefb00172b26322079681..., sha256=083150724b49604c8765c1ba19541fa260b133be0acb0647fc..., sha256=1293525a19cfe3bc8296b62fbfe19f083632ed644a1c18c10b..., md5=7d9c233b8c9e3f0ea290d2b84593c842, md5=9db2d314dd3f704a02051ef5ea210993
OriginalFileName5eq 5netsh.exe, cloudflared.exe, devtunnel.dll
graph.metadata.entity_type4eq 4IP_ADDRESS, FILE
graph.metadata.product_name4eq 4GCTI Feed, Google Safe Browsing, VirusTotal Relationships
graph.metadata.source_type4eq 4GLOBAL_CONTEXT
graph.metadata.threat.threat_feed_name4eq 4Tor Exit Nodes, Benign Binaries
parent_process_name4in 4, starts_with 1, wildcard 1bash, csh, ash, *.sh, .

Top indicator values (842 distinct)

Specific (field, operator, value) combinations the rules check for, ranked by how many rules under this technique use each one. The Corpus reach column counts how many rules across the entire catalog (any technique) check the same combination. High numbers point to widely-used indicators that are likely noisy on their own; combine them with another condition for useful signal. Blank means the combination is specific to rules under this technique. Click a value to expand the rules under this technique that use it.

FieldKindValueRules (here)Corpus reach
event.typeeq
start
15606
EventTypein
ProcessRollup2
8117
EventTypein
exec
8171
EventTypein
exec_event
8139
EventTypein
start
8134
EventTypein
executed
588
EventTypein
process_started
574
EventTypeeq
exec
4171
graph.metadata.entity_typeeq
IP_ADDRESS
410
graph.metadata.entity_typeeq
FILE
317
graph.metadata.product_nameeq
GCTI Feed
48
graph.metadata.source_typeeq
GLOBAL_CONTEXT
420
graph.metadata.threat.threat_feed_nameeq
Tor Exit Nodes
47
parent_process_namein
bash
430
parent_process_namein
csh
426
parent_process_namein
dash
427
parent_process_namein
fish
426
parent_process_namein
ksh
426
parent_process_namein
sh
430
parent_process_namein
tcsh
426
parent_process_namein
zsh
429
CommandLinecontains
tunnel
33
CommandLinecontains
-config
33
CommandLinecontains
tunnel
35
Imageends_with
\cloudflared.exe
32
Initiatedeq
true
350
OriginalFileNameeq
netsh.exe
323
graph.metadata.vendor_nameeq
Google Cloud Threat Intelligence
34
process.argseq
-s
36
process_nameeq
curl
318

Exclusions (170 distinct)

Field/operator/value combinations excluded by rules under this technique (top-level not() clauses), sorted by how many rules exclude each. These are the false-positive paths the community has learned to filter out. A new rule that ignores the high-count entries here will likely fire on the same noisy paths. Click a value to expand the rules under this technique that exclude it.

FieldKindValueRules excluding
CommandLinecontains
-blockdev
1
CommandLinecontains
-cdrom
1
CommandLinecontains
type=virt
1
CommandLinecontains
ansible
1
CurrentDirectorycontains
ansible
1
DestinationHostnamecontains
afdxtest.z01.azurefd.net
1
DestinationHostnamecontains
fp-afd.azurefd.net
1
DestinationHostnamecontains
fp-afdx-bpdee4gtg6frejfd.z01.azurefd.net
1
DestinationHostnamecontains
graph.azurefd.net
1
DestinationHostnamecontains
powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net
1
DestinationHostnamecontains
roxy.azurefd.net
1
DestinationHostnamecontains
storage-explorer-publishing-feapcgfgbzc2cjek.b01.azurefd.net
1
FilterOrigineq
AppContainer Loopback
1
Imagecontains
:\program files (x86)\cloudflared\
1
Imagecontains
:\program files\cloudflared\
1

Rules under this technique

Every rule in the catalog tagged with this technique, grouped by vendor. Click a rule title for its full predicates, exclusions, and indicators.

Platform (all)
Domain (all)

Sigma 34 rules

Elastic 19 rules

Splunk 14 rules

Kusto 7 rules

YARA-L 6 rules

Panther 2 rules