CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

o365-credential-harvest

Harvest and replay O365 / Entra ID access via the OAuth device-code flow and captured tokens (TokenTactics-style), skipping the password + MFA prompts.

Quality

82%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Critical

Do not install without reviewing

SKILL.md
Quality
Evals
Security

Quality

Content

93%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is an exemplar of lean, actionable skill writing: executable commands for both attack paths, a built-in validation step, and tight OPSEC/evidence sections with no filler. The only notable gap is the absence of error-handling feedback around the device-code polling loop and token validation.

Suggestions

Add guidance for the device-code token polling loop: expected interval, handling authorization_pending/slow_down responses, and the expired_token case (device codes typically expire in ~15 minutes).

Explicitly number or state the end-to-end sequence (request code → deliver lure → poll → replay → validate) so the ordering is stated rather than inferred from section order.

Add a short feedback note for the validation step, e.g., what a 401 vs 403 from graph.microsoft.com/v1.0/me indicates (expired token vs insufficient scope) and how to react.

DimensionReasoningScore

Conciseness

Every section is lean and earns its tokens: two- to three-line framing per section followed directly by executable commands, with no re-explanation of OAuth concepts Claude already knows. Statements like "A token is interesting; a Graph call returning the victim's mailbox / directory data is the finding" add decision guidance rather than padding — anchor 5.

5 / 5

Actionability

Both flows are given as complete, copy-paste-ready curl commands with real endpoints (devicecode and token endpoints, jq extraction of device_code), the bearer-usage example, and a concrete /v1.0/me validation call. The common cases are covered end-to-end — anchor 5.

5 / 5

Workflow Clarity

The sequence (request device code → lure → poll token → replay → validate) is clear across sections and includes an explicit validation checkpoint ("Validate" section with the Graph /me call). However, there is no error-recovery guidance — e.g., handling authorization_pending/expired_token during device-code polling, or interpreting a 401 on the validation call — and ordering is implied by section layout rather than stated explicitly. Clear sequence with most checkpoints but minor validation gaps fits anchor 4, not anchor 5.

4 / 5

Progressive Disclosure

A short (~60-line) single-file skill with well-organized section headers and no need for external reference files; no references/ or scripts/ bundle exists to navigate. External pointers such as plan/roe.json:data_handling are one level deep and clearly signaled — anchor 5 under the short-skill guideline.

5 / 5

Total

19

/

20

Passed

Description

65%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is specific, distinctive, and free of fluff, clearly stating what the skill does and how. Its main weakness is that the "when to use" guidance is relegated to metadata rather than the description text, capping completeness, and it lists only two actions with a few missing natural synonyms.

Suggestions

Fold explicit trigger guidance into the description text (e.g., "Use when conducting O365 phishing, illicit consent, or token-replay operations") so the "when" is visible wherever the description is surfaced.

Add one or two more concrete actions (e.g., "validate captured tokens against Microsoft Graph") to lift specificity from two actions to several.

Include common synonyms such as "Microsoft 365" and "token replay" alongside "O365" and "replay captured tokens" for broader natural-keyword coverage.

DimensionReasoningScore

Specificity

"Harvest and replay O365 / Entra ID access via the OAuth device-code flow and captured tokens" names the domain plus exactly two concrete actions (harvest, replay) with mechanisms. This matches anchor 3 (1-2 concrete actions, not comprehensive) rather than anchor 4, which expects several distinct actions listed.

3 / 5

Completeness

The description explicitly and clearly answers "what" (harvest and replay access via device-code flow and captured tokens) but contains no "Use when..." clause or equivalent trigger guidance — those triggers live only in metadata.when_to_use, not in the description text. Per the rubric guideline, a missing explicit trigger clause in the description caps completeness at anchor 3.

3 / 5

Trigger Term Quality

Terms like "O365 / Entra ID", "OAuth device-code flow", "TokenTactics-style", and "password + MFA prompts" are natural phrasing for this domain, but common synonyms such as "Microsoft 365", "token replay", and "phishing" are missing from the description itself. Good coverage with a few natural terms absent fits anchor 4.

4 / 5

Distinctiveness Conflict Risk

The description targets a very narrow niche (device-code flow and refresh-token replay against O365/Entra ID, TokenTactics-style) with distinct, unambiguous triggers. Minimal overlap with any other skill's trigger conditions — anchor 5.

5 / 5

Total

15

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

Total

14

/

16

Passed

Repository

PurpleAILAB/Decepticon

Path

packages/decepticon/decepticon/skills/standard/phisher/o365-credential-harvest/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.