secskills
secskills / offense / recognizing-deception

recognizing-deception

offense verified 2026-07-27

Recognize defensive deception during an engagement — honeypots, honeytokens and canary tokens, decoy AD accounts and shares, canary files, and deceptive cloud credentials — before interacting with them, and handle a suspected decoy without burning the engagement. Use when a target is unexpectedly easy, when credentials or a service appear in an implausible place, when a privileged account has no logon history, when a file or bucket looks like bait, or when deciding whether to use credentials of unknown provenance.

$ /plugin install secskills-offense $ /plugin install secskills-core

Every other skill in this collection assumes the environment is telling you the truth. Deception technology exists specifically to break that assumption, and it is the failure mode an automated or semi-automated tester is least equipped to catch.

The distinction that matters: careful evidence-handling protects you against conclusions you invented. It does nothing against a false belief the environment deliberately planted. A honeypot presenting a convincingly vulnerable service produces real banners, real responses, and real artifacts. Every verification step you would normally run confirms it, because the evidence is genuine — it was manufactured to be.

Assume competent defenders have planted something. Your job is to notice before you touch it, because most deception fires on first use, and first use cannot be undone.

When to Use

pastebin-shaped file

(passwords.xlsx, backup-prod, domain_admins.txt)

When NOT to Use

recognition; a canary is not something you evade, it is something you avoid triggering

responding-to-incidents and producing-threat-intelligence

deception, not deploying it

misconfigurations; see the base-rate discussion below before crying honeypot

The Economics Are Against You

Deception is cheap to deploy and expensive to trip:

Attacker costDefender benefit
Canary token in a documentOne click to triggerHigh-fidelity alert, near-zero false positives
Honeyuser in ADOne KerberoastAlert plus a cracked-password timeline
Decoy AWS keyOne sts get-caller-identityAlert with your source IP and user agent
Honeypot serviceOne connectionFull interaction capture, your tooling fingerprinted

A canary alert is one of the very few signals a SOC treats as automatically true. There is no benign explanation to hide behind, and the alert carries your source address and often your tooling's fingerprint. Tripping one typically ends the covert phase of an engagement immediately.

Signals, By Type

Honeytokens and canary tokens

The highest-frequency class, and the one that fires on use rather than on discovery. Common forms: AWS keys, Office documents with a callback, DNS tokens, URL tokens, cloned-website tokens, SQL Server rows, Windows directories, Kubeconfig files.

Signals:

world-readable share, a wiki page, a README, a desktop file

surrounding infrastructure, tooling config, or commit history

.docx whose only interesting content is its filename

supporting context

A canary AWS key alerts on the first API call, including sts get-caller-identity. There is no safe reconnaissance call. Treat key material of unknown provenance as live until you can explain how it got there.

Active Directory decoys

a Kerberoastable account nobody has ever authenticated as is bait

misconfiguration and a classic decoy, so provenance matters more than usual

no ownership relationships — real accounts accrete relationships

Deceptive services

interaction is inconsistent with that version

business function on that host

users, no realistic filesystem, and suspiciously clean logs

Cloud decoys

Base Rates Cut Both Ways

Real environments are genuinely bad. Credentials really do sit in shares, service accounts really are Kerberoastable, and buckets really are public. If you label every finding a honeypot you will report nothing and miss the actual compromise path.

The discriminator is supporting context, not attractiveness:

logon history, related infrastructure, other users, adjacent mess.

So the question is never "is this too good to be true?" It is: what else in this environment depends on this thing existing? If the answer is nothing, slow down.

What To Do With a Suspected Decoy

  1. Do not authenticate, connect, or call the API. Discovery is usually

silent; use is not. This is the whole decision.

  1. Record it — location, exact artifact, how you found it, why you suspect

it. This is evidence for the report either way.

  1. Keep enumerating elsewhere. A suspected decoy is a reason to route

around, not to stop.

  1. Raise it with the client contact rather than testing your hypothesis

against production. Ask whether deception is deployed and in scope. Many engagements exclude it; some clients deploy it specifically to test the blue team's response to you.

  1. If you already tripped it, say so immediately. A canary alert with a

known, declared cause is an engagement note. The same alert investigated as a live intrusion burns the client's IR capacity and your credibility. Concealing it is the actual serious mistake.

Deception in the environment is a positive finding worth reporting: it means the defenders invested in high-fidelity detection. Say so.

Rationalizations to Reject

wisdom. Tripping a canary inside scope still ends your covert phase and still consumes the client's incident response.

harmless call. sts get-caller-identity, a single DNS lookup, opening the document — that is the trigger, in full.

genuine is exactly the design. Manufactured evidence verifies correctly.

Often true — which is why the test is supporting context, not plausibility. Isolated artifacts with no dependents are the tell.

timing, no user history, and a clean filesystem describe a honeypot as readily as a stale host, and you cannot distinguish them from outside.

critical for the client's SOC. Delayed disclosure turns your engagement note into their multi-hour investigation.

normal engagement event. Hiding it and letting the SOC chase a phantom intrusion is a professional failure.

References

the "where did this credential come from?" question answerable

operations most likely to meet an AD decoy

where persistence is written