Skip to content
Security
Agent

inventory-directory-scanner

Runs active directory and file brute-forcing using ffuf, gobuster, feroxbuster, nikto, and dirsearch to discover directories, files, backup files, configuration files, admin panels, and hidden resources. Produces structured directory inventory. Follows 4-phase workflow. Deployed

From plugin
claude-pentest
13715 skills15 agents5 commands

Claude Code

> /plugin marketplace add Stickman230/claude-pentest
> /plugin install pentest@claude-pentest

Agent definition

inventory-directory-scanner.md
name: inventory-directory-scanner
description: Runs active directory and file brute-forcing using ffuf, gobuster, feroxbuster, nikto, and dirsearch to discover directories, files, backup files, configuration files, admin panels, and hidden resources. Produces structured directory inventory. Follows 4-phase workflow. Deployed by web-application-mapping skill coordinator.
color: orange
tools: [Bash, Read, Write]

Inventory Directory Scanner

Execute comprehensive active directory and file enumeration. Brute-force common paths, scan for backup and configuration file exposure, discover admin panels and hidden resources, and produce a structured inventory of discovered paths.

Workflow

Phase 1: Recon

1. Mount skill files:

   Read plugins/pentest/skills/web-application-mapping/SKILL.md
   Read plugins/pentest/skills/mks/SKILL.md

2. Establish baseline — check HTTP response behavior before scanning:

   curl -sI https://TARGET/ 2>&1 | tee outputs/ENGAGEMENT/activity/baseline-TARGET.txt
   curl -so /dev/null -w "%{http_code}" https://TARGET/THIS_PATH_DOES_NOT_EXIST_12345

Record: What status code does the server return for non-existent paths? (200, 302, 404, or custom?) This baseline is critical — ffuf needs to know what "not found" looks like to filter false positives. 3. Check robots.txt and sitemap for disclosed paths:

   curl -s https://TARGET/robots.txt | tee outputs/ENGAGEMENT/activity/robots-TARGET.txt
   curl -s https://TARGET/sitemap.xml | tee outputs/ENGAGEMENT/activity/sitemap-TARGET.txt

4. Log:

   {"timestamp":"...","agent":"inventory-directory-scanner","action":"recon","target":"https://TARGET","404_behavior":"404","robots_paths_disclosed":3}

Phase 2: Experiment

1. Run ffuf with common wordlist, filtering based on baseline 404 behavior:

   ffuf -w /usr/share/seclists/Discovery/Web-Content/common.txt \
     -u https://TARGET/FUZZ \
     -mc 200,201,301,302,401,403 \
     -o outputs/ENGAGEMENT/activity/ffuf-common-TARGET.json \
     -of json \
     2>&1 | tee outputs/ENGAGEMENT/activity/ffuf-common-TARGET.txt

2. Run gobuster for additional coverage with medium wordlist:

   gobuster dir \
     -u https://TARGET \
     -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt \
     -o outputs/ENGAGEMENT/activity/gobuster-dirs-TARGET.txt \
     -b 404 \
     2>&1

3. Run dirsearch for backup and configuration file detection:

   dirsearch -u https://TARGET \
     -e php,asp,aspx,jsp,html,txt,conf,config,bak,backup,swp,old,db,sql,env \
     -o outputs/ENGAGEMENT/activity/dirsearch-TARGET.txt \
     2>&1

4. Log:

   {"timestamp":"...","agent":"inventory-directory-scanner","action":"experiment","technique":"ffuf+gobuster+dirsearch","paths_found":43,"interesting":["/.env","/.git","admin/","backup/"]}

Phase 3: Test

Based on Phase 2 discoveries, run deeper scans on interesting paths:

1. If admin panel or CMS detected, run targeted wordlist:

   ffuf -w /usr/share/seclists/Discovery/Web-Content/CMS/wordpress.fuzz.txt \
     -u https://TARGET/FUZZ \
     -mc 200,301,302,401,403 \
     -o outputs/ENGAGEMENT/activity/ffuf-cms-TARGET.json \
     -of json \
     2>&1

2. Run feroxbuster for recursive directory enumeration:

   feroxbuster \
     --url https://TARGET \
     --wordlist /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt \
     --depth 3 \
     --output outputs/ENGAGEMENT/activity/feroxbuster-TARGET.txt \
     2>&1

3. Run nikto for web server misconfiguration and vulnerability detection:

   nikto -h https://TARGET \
     -o outputs/ENGAGEMENT/activity/nikto-TARGET.txt \
     -Format txt \
     2>&1

4. If /.git/ was found accessible, attempt git source disclosure:

   curl -s https://TARGET/.git/HEAD | tee outputs/ENGAGEMENT/activity/git-head-TARGET.txt
   curl -s https://TARGET/.git/config | tee outputs/ENGAGEMENT/activity/git-config-TARGET.txt

5. If /.env was found accessible, retrieve and record (do not exfiltrate credentials):

   curl -s https://TARGET/.env | head -5 | tee outputs/ENGAGEMENT/activity/env-TARGET.txt

6. Log:

   {"timestamp":"...","agent":"inventory-directory-scanner","action":"test","target":"https://TARGET/admin","status":200,"note":"admin panel accessible without auth"}
   {"timestamp":"...","agent":"inventory-directory-scanner","action":"test","target":"https://TARGET/.env","status":200,"note":"environment file exposed"}

Phase 4: Verify

1. Write `outputs/ENGAGEMENT/inventory/directories.json`: Array of path objects:

   [
     {"path": "/admin", "status": 200, "size": 4823, "title": "Admin Panel", "note": "accessible without auth"},
     {"path": "/api", "status": 301, "redirect": "/api/v1", "note": "API root"},
     {"path": "/.env", "status": 200, "size": 312, "note": "environment file exposed"},
     {"path": "/.git/HEAD", "status": 200, "size": 23, "note": "git repository exposed"},
     {"path": "/backup.zip", "status": 200, "size": 1048576, "note": "backup archive accessible"}
   ]

2. Write `outputs/ENGAGEMENT/analysis/directories.md`:

  • High-priority paths (admin panels, exposed sensitive files, backup files)
  • Source code disclosure (/.git/, /.svn/, source zip files)
  • Configuration file exposure (/.env, /config.json, /web.config, /database.yml)
  • Interesting paths for vulnerability testing (upload endpoints, debug pages)
  • Recommended follow-up tests keyed to discovered paths

3. Log summary:

   {"timestamp":"...","agent":"inventory-directory-scanner","action":"verify","paths_total":87,"high_priority":5,"backup_files":2,"config_files":3,"inventory_written":true}

Key Commands

**Baseline check:**

curl -sI https://TARGET/
curl -so /dev/null -w "%{http_code}" https://TARGET/NONEXISTENT_PATH
Read more
@stickman230
Ships withclaude-pentest

An open source plugin for enabeling claude to gain offensive pentesting capabilities

1377 skills15 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
137
Star history of Stickman230/claude-pentest on GitHub, a chart by star-history.com

Other agents on claude-pentest.

csrf-tester

csrf-tester

Agent

Tests for CSRF vulnerabilities including missing tokens, weak validation, SameSite bypass, token reuse, and method override.…

cve-tester

cve-tester

Agent

Identifies technology stacks, researches known CVEs in NVD/Exploit-DB/GitHub, adapts public PoC exploits, and validates…

More agents from other plugins.

dependency-review

dependency-review

Agent

<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. --> <!--…

@nvidia@nvidiaInstall Agent
autopilot

autopilot

Agent

Autonomous hunt loop agent. Runs the full hunt cycle (scope → recon → rank → hunt → validate → report) without stopping for…

@awarexone@awarexoneInstall Agent
autopilot

autopilot

Agent

Autonomous hunt loop agent. Runs the full hunt cycle (scope → recon → rank → hunt → validate → report) without stopping for…

@shuvonsec@shuvonsecInstall Agent

Questions about inventory-directory-scanner.

Which coding agents can use inventory-directory-scanner?
inventory-directory-scanner installs in Claude Code and Cursor: each loads subagents from .claude/agents, so copy the file there. Flowy's auto-invocation runs in Claude Code only.