Unsecured Credentials: Credentials In Files T1552.001

Tactic: Credential Access

Adversaries may search local file systems and remote file shares for files containing insecurely stored credentials. These can be files created by users to store their own credentials, shared credential stores for a group of individuals, configuration files containing passwords for a system or service, or source code/binary files containing embedded passwords.

Events covered

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

Authoring guide

Patterns shared across the 76 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 (72 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
process_name25in 13, eq 8, regex_match 4, starts_with 3awk, bash, (?i)adexplorer(64)?|adexp\.exe, 7z, busybox
CommandLine24contains 20, regex_match 3, wildcard 3, is_not_null 1 --results=verified, confluence , docker --image , (?i)snapshot\s, "eyj0ex"
EventType21eq 15, in 5, wildcard 1exec, open, ProcessRollup2, exec_event, executed
event.type21eq 19, in 1, ne 1start, change, deletion, process_started
host.os.type19eq 18, in 1
process.args16in 10, wildcard 8, eq 7, contains 4, ends_with 1, match 1, starts_with 1/bin/awk, /bin/cat, *socat *, --output, -o
EventID12eq 124688, 1, 4104, 4663, 4103
Image10ends_with 8, starts_with 2/dev/shm/, findstr.exe, /chflags, /cp, /grep
TargetFilename8in 4, contains 2, ends_with 1, eq 1, wildcard 1/etc/kubernetes/admin.conf, /var/run/secrets/kubernetes.io/serviceaccount/ca.crt, *filezilla\\recentservers.xml*, *filezilla\\sitemanager.xml*, .github/workflows/shai-hulud-workflow.yaml
event.category8eq 8process, file
OriginalFileName7eq 7findstr.exe, appcmd.exe, aspnet_regiis.exe, netsh.exe
container.id6wildcard 5, starts_with 1*, ?
process.interactive5eq 5true
Type3eq 3
data_stream.dataset3eq 3auditd_manager.auditd, aws.cloudtrail, kubernetes.audit_logs

Top indicator values (1024 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
18606
EventTypeeq
exec
10171
EventTypeeq
open
415
EventIDeq
4688
5313
container.idwildcard
*
525
event.categoryeq
process
5128
event.categoryeq
file
431
process.interactiveeq
true
542
process_namein
bash
588
process_namein
cat
523
process_namein
dash
578
process_namein
egrep
511
process_namein
find
59
process_namein
fish
572
process_namein
grep
514
process_namein
ksh
573
process_namein
sh
583
process_namein
zsh
582
process_namein
awk
413
process_namein
busybox
436
process_namein
csh
471
process_namein
fgrep
48
process_namein
locate
45
process_namein
mlocate
44
process_namein
sed
411
EventTypein
exec
4171
OriginalFileNameeq
findstr.exe
412
process.argsin
awk
46
process.argsin
cat
46
process.argsin
sed
46

Exclusions (89 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
/bin/test
1
CommandLineeq
/usr/bin/coreutils --coreutils-prog-shebang=cat /usr/bin/cat...
1
CommandLinein
cat /etc/login.defs
1
CommandLinein
cat /home/asterisk/.aws/credentials
1
CurrentDirectoryeq
/opt/cni/bin
1
CurrentDirectorystarts_with
/home/runner/_work/
1
CurrentDirectorywildcard
/opt/cni/bin
1
CurrentDirectorywildcard
/run/containerd/io.containerd.runtime.v2.task/k8s.io/*/opt/cni/bin
1
Esql.executed_commandregex_match
.*/etc/resolv\.conf.*
1
EventDatacontains
gc_service.exe
1
EventDatacontains
gc_worker.exe
1
Imagein
/bin/file
1
Imagein
/bin/readlink
1
Imagein
/tmp/newroot/bin/file
1
Imagein
/tmp/newroot/bin/readlink
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 23 rules

Elastic 32 rules

Splunk 16 rules

Kusto 1 rule

Panther 4 rules