sickn33/agentic-awesome-skills/mid-engagement-ir-detection
Claude Code and agent skill by sickn33/agentic-awesome-skills
- community
Checking that the SKILL.md file is still in the repository.
Methodology for detecting client SOC patches, attacker activity, and
Install
npx vskill@latest install sickn33/agentic-awesome-skills/mid-engagement-ir-detectionSKILL.md
⚠️ AUTHORIZED USE ONLYThis skill is for educational purposes or authorized security assessments only.You must have explicit, written permission from the system owner before using this tool.Misuse of this tool is illegal and strictly prohibited.
Mandatory confirmation gate
Before any probe, evasion, source-IP change or credential-related request, collect the exact target URL, IP, account, or resource, written authorization and permitted scope; show the exact command and expected effect. Wait for explicit confirmation in the current conversation. Otherwise review existing evidence only. Unexpected blocks/lockouts trigger the engagement stop/contact procedure, not automatic evasion. Bound requests, account attempts, timing and cost; never test unrelated accounts or change tenant policies.
When to use this skill
Trigger when:
- Running active testing against a target with active SOC monitoring
- A confirmed-vulnerable finding stops reproducing on recheck
- Baseline timing shifts unexpectedly (3× slower, sudden errors, new headers)
- Response sizes change between test windows
- New WAF cookies or headers appear that weren't there at session start
- Lockout / error rates change between test windows (especially LOCKED count for credential attacks)
- Engagement is "assume breach" or "white box" — client knows you're testing
DO NOT use for:
- Any program whose authorization excludes the proposed observation/probe; bug-bounty programs can also have active SOC monitoring
- Pure recon (no state-change happening)
- One-off vulnerability scanning (no temporal dimension)
The core insight
In a real red-team engagement against a competent SOC, the security state of the target is not static. It changes during your test in response to your traffic. These state changes are:
- Themselves valuable findings (positive operational observations about IR responsiveness)
- Contextual evidence (a response change alone proves neither a patch nor the original vulnerability)
- Classification signals (WAF rule deployment vs code fix — different remediation depth)
Anti-pattern: treating reproduction failure as evidence the original signal was a false positive. Preserve original artifacts, then independently assess whether they actually established the vulnerability; label uncertain signals honestly.
The discipline — capture before, diff after
Before any active test:
Persist to engagement_log/fingerprint_pre.json.
During the test:
Log every test result with full context (timestamp, IP, payload, response code, response size, response time, headers if relevant) to JSONL append-only.
After the test session OR on first failed-recheck:
If a delta is significant, investigate alternative explanations and update confidence; neither retain nor retract a finding automatically.
The three primary IR observations
Observation 1 — Mid-engagement WAF rule deployment
Symptoms:
- Original payloads return identical response → no signal at all on recheck
- Body size identical to baseline (login page reflection)
- Timing reverts to baseline regardless of payload
- New cookie or header in responses (e.g.,
cf-bm,__cf_bm,awselb) - Specific keyword in URL/body now triggers different response code (403, 406, 429)
Confirmation: retry with WAF-evasion variants:
- URL-encode the payload differently (
%27vs%5cu0027) - Change request method (POST → PUT, GET → POST)
- Different content-type (form-urlencoded → multipart)
- Slower pace (5s → 60s between requests)
- Mixed-case keywords (
SLEEP→SlEeP)
If WAF-evasion variants restore the signal, the mitigation is at the WAF layer (bypassable).
A failed variant does not identify a code fix. WAF/origin/cache/session/backend changes require owner logs, configuration or code evidence to distinguish.
Finding template:
Observation 2 — Possible concurrent activity or authentication policy change
AADSTS50053 can reflect account lockout or a malicious-source-IP block, irrespective of password validity. Defaults vary across cloud environments and tenant settings. Prior failures, familiar/unfamiliar-location counters, legitimate users, federated/pass-through behavior and the engagement itself can contribute. One logged attempt per user does not mathematically exclude tester contribution or prove an external actor.
Stop credential probes at the agreed threshold and coordinate with the authorized SOC contact. Review existing owner-provided sign-in logs, actual failure reasons, source identities/IPs, correlation IDs, timestamps and tenant policies. Compare against the tester's complete request journal and approved baseline. Alphabetic clustering or a rising response-code count is a hypothesis, not attribution. Do not probe service mailboxes to “confirm” a live attacker or assume they are MFA-exempt.
Report observed counts separately from unique principals and actual lockout events. Preserve unknown causes and benign alternatives. Password resets, geo-blocking, risk-policy changes or tenant-wide containment belong to the authorized incident commander after impact review, not an automatic24-hour checklist.
Example report:
Observation 3 — Detection-induced rate limiting / IP blocks
Symptoms:
- Specific IP starts returning 403 / 429 / 451 after a window of normal responses
- Specific IP starts seeing dramatically slower responses (3x+ baseline)
- TLS handshake fails or RST mid-connection
- DNS suddenly returns NXDOMAIN for hosts that resolved before
- Some hosts work from one IP but not another
Confirmation:
- Compare already authorized source observations; do not rotate around a block unless the engagement owner explicitly approves that exact action
- Compare DNS answers/TTL with resolver/cache/routing controls; a TTL change alone does not prove mitigation
- Check
Server:,Via:,CF-Cache-Status:headers for CDN-introduced limits
Finding template (operational note, usually low/info severity):
State diff — the key technique
Maintain three pieces of state:
1. engagement_log/baseline.json — captured at session start
2. engagement_log/journal.jsonl — append-only test log
Every test logs:
3. engagement_log/state_changes.jsonl — observed deltas
When a state change is detected, append:
This third file is your finding evidence. Every entry is a candidate finding.
Tooling — automated state-change detection
For lockout-count tracking on M365:
The "single signal recanted" rule
If a confirmed-vulnerable finding stops reproducing:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/mid-engagement-ir-detection/SKILL.md
Popularity
- Repository stars
- 47,061
- Repository forks
- 6,855
- 7-day trend score
- 54
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/sickn33/agentic-awesome-skills/mid-engagement-ir-detection)