Skip to content

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
8715 skills15 agents5 commands
Install
$ npx -y skills add Stickman230/claude-pentest --agent claude-code

How it fires

How this agent gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.

Context preview

The summary Claude sees to decide when to auto-load this agent.

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

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
Ships withclaude-pentest

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

Get the whole plugin, auto-invoked
Stats
87
Stars
0
Views
4
Forks
Maintained
Maintenance
Python
Language
MIT
License
2mo ago
Last commit
4mo ago
Created

Repo: Stickman230/claude-pentest

Other agents on claude-pentest.