@intentsolutionsio/penetration-tester 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "penetration-tester",
3
+ "version": "2.0.0",
4
+ "description": "Security testing toolkit with HTTP header analysis, dependency auditing, and static code scanning",
5
+ "author": {
6
+ "name": "Jeremy Longshore",
7
+ "email": "[email protected]"
8
+ },
9
+ "repository": "https://github.com/jeremylongshore/claude-code-plugins",
10
+ "license": "MIT",
11
+ "keywords": [
12
+ "security",
13
+ "penetration-testing",
14
+ "pentesting",
15
+ "owasp",
16
+ "exploitation",
17
+ "agent-skills"
18
+ ]
19
+ }
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Jeremy Longshore
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,160 @@
1
+ # Penetration Tester Plugin
2
+
3
+ Security testing toolkit for web applications, dependencies, and source code.
4
+ Three real scanners that wrap established tools (requests, bandit, pip-audit,
5
+ npm audit) with unified reporting.
6
+
7
+ ## What It Does
8
+
9
+ | Scanner | Target | What It Checks |
10
+ |---------|--------|----------------|
11
+ | `security_scanner.py` | Live URLs | Security headers, SSL/TLS, exposed endpoints, HTTP methods, CORS |
12
+ | `dependency_auditor.py` | Project dirs | npm and pip vulnerabilities, CVEs, outdated packages |
13
+ | `code_security_scanner.py` | Codebases | Hardcoded secrets, SQL injection, command injection, insecure deserialization |
14
+
15
+ ## Installation
16
+
17
+ ```bash
18
+ /plugin install penetration-tester@claude-code-plugins-plus
19
+ ```
20
+
21
+ ## Setup
22
+
23
+ Install Python dependencies:
24
+
25
+ ```bash
26
+ bash scripts/setup_pentest_env.sh
27
+ ```
28
+
29
+ Or with a virtual environment:
30
+
31
+ ```bash
32
+ bash scripts/setup_pentest_env.sh --venv
33
+ ```
34
+
35
+ Requires Python 3.9+. The setup script installs `requests`, `bandit`, and
36
+ `pip-audit`, then verifies each tool works.
37
+
38
+ ## Quick Start
39
+
40
+ **Check security headers on a URL:**
41
+ ```
42
+ > Check the security headers on https://example.com
43
+ ```
44
+
45
+ **Audit project dependencies:**
46
+ ```
47
+ > Audit the dependencies in this project for vulnerabilities
48
+ ```
49
+
50
+ **Scan code for security issues:**
51
+ ```
52
+ > Scan this codebase for hardcoded secrets and security issues
53
+ ```
54
+
55
+ **Full security audit:**
56
+ ```
57
+ > Run a full security audit on this project
58
+ ```
59
+
60
+ ## Scanners
61
+
62
+ ### security_scanner.py
63
+
64
+ HTTP security analysis for live web applications.
65
+
66
+ ```bash
67
+ python3 scripts/security_scanner.py https://example.com
68
+ python3 scripts/security_scanner.py https://example.com --checks headers,ssl
69
+ python3 scripts/security_scanner.py https://example.com --output report.json
70
+ ```
71
+
72
+ **Checks:**
73
+ - Security headers (CSP, HSTS, X-Frame-Options, X-Content-Type-Options,
74
+ Referrer-Policy, Permissions-Policy)
75
+ - SSL/TLS certificate validity and expiry
76
+ - Exposed endpoints (.git, .env, admin panels, server-status)
77
+ - Dangerous HTTP methods (PUT, DELETE, TRACE)
78
+ - CORS misconfigurations (wildcard, reflected origin)
79
+
80
+ ### dependency_auditor.py
81
+
82
+ Unified dependency vulnerability scanner.
83
+
84
+ ```bash
85
+ python3 scripts/dependency_auditor.py /path/to/project
86
+ python3 scripts/dependency_auditor.py . --min-severity high
87
+ python3 scripts/dependency_auditor.py . --scanners npm,pip --output findings.json
88
+ ```
89
+
90
+ **Supports:**
91
+ - npm projects (via `npm audit`)
92
+ - Python projects (via `pip-audit`)
93
+ - Auto-detects project type from manifest files
94
+
95
+ ### code_security_scanner.py
96
+
97
+ Static analysis for security vulnerabilities.
98
+
99
+ ```bash
100
+ python3 scripts/code_security_scanner.py /path/to/code
101
+ python3 scripts/code_security_scanner.py . --tools bandit,regex --severity high
102
+ python3 scripts/code_security_scanner.py . --exclude "test_*,*_test.py"
103
+ ```
104
+
105
+ **Detects:**
106
+ - Hardcoded secrets (API keys, AWS keys, passwords, tokens)
107
+ - SQL injection (string concatenation in queries)
108
+ - Command injection (os.system, subprocess with shell=True)
109
+ - Eval/exec usage
110
+ - Insecure deserialization (pickle, unsafe YAML loading)
111
+ - Weak cryptography (MD5, SHA1)
112
+ - Disabled SSL verification
113
+
114
+ ## Output
115
+
116
+ All scanners produce:
117
+ - Markdown-formatted reports for terminal display
118
+ - JSON reports via `--output` for programmatic use
119
+ - Risk scoring with severity levels (critical, high, medium, low, info)
120
+ - Remediation guidance for each finding
121
+
122
+ Exit code 0 means no critical or high findings. Exit code 1 means issues found.
123
+
124
+ ## Reference Documentation
125
+
126
+ The `references/` directory contains detailed guides:
127
+
128
+ - **OWASP_TOP_10.md** -- Each OWASP Top 10 risk with scanner mapping and fix templates
129
+ - **SECURITY_HEADERS.md** -- HTTP header implementation for Express, Django, Nginx, Apache
130
+ - **REMEDIATION_PLAYBOOK.md** -- Copy-paste fix templates for common vulnerabilities
131
+
132
+ ## Authorization Warning
133
+
134
+ **Only test systems you are authorized to test.**
135
+
136
+ - Never scan URLs you do not own or have written permission to test
137
+ - Local code scanning and dependency auditing of your own projects is always safe
138
+ - The scanners will ask for authorization confirmation before external scans
139
+ - Unauthorized security testing may violate laws in your jurisdiction
140
+
141
+ ## Commands
142
+
143
+ - `/pentest` -- Full security testing workflow with authorization checks
144
+ - `/scan-headers` -- Quick security header check for a single URL
145
+
146
+ ## Requirements
147
+
148
+ - Python 3.9+
149
+ - `requests` >= 2.31.0
150
+ - `bandit` >= 1.7.5 (optional, for code scanning)
151
+ - `pip-audit` >= 2.6.0 (optional, for Python dependency auditing)
152
+ - `npm` (optional, for JavaScript dependency auditing)
153
+
154
+ ## Contributors
155
+
156
+ - [@duskfallcrew](https://github.com/duskfallcrew) -- Reported AV false positive from PHP payloads in docs (#300), prompting the v2.0.0 rebuild
157
+
158
+ ## License
159
+
160
+ MIT License - See LICENSE file for details.
@@ -0,0 +1,84 @@
1
+ ---
2
+ name: pentest
3
+ description: Run a security testing workflow against a target URL or codebase
4
+ shortcut: pent
5
+ ---
6
+
7
+ # Security Testing Workflow
8
+
9
+ Run a structured security assessment. This command walks through authorization,
10
+ scope selection, scanning, and reporting.
11
+
12
+ ## Step 1: Authorization Check
13
+
14
+ Before scanning anything, confirm authorization:
15
+
16
+ - If the target is a URL: ask the user to confirm they own it or have written
17
+ permission to test it.
18
+ - If the target is local code/dependencies: confirm it is the user's own project.
19
+ - **Do not proceed without explicit authorization.**
20
+
21
+ ## Step 2: Determine Scope
22
+
23
+ Ask the user what they want to test:
24
+
25
+ 1. **Web application** (URL) -- security headers, SSL, exposed endpoints, CORS
26
+ 2. **Dependencies** (project directory) -- npm/pip vulnerability audit
27
+ 3. **Source code** (directory) -- static analysis for secrets, injection, etc.
28
+ 4. **Full audit** -- all of the above
29
+
30
+ ## Step 3: Run Scanners
31
+
32
+ Based on the selected scope, run the appropriate scripts from the plugin:
33
+
34
+ ### Web Application Scan
35
+ ```bash
36
+ python3 ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/security_scanner.py TARGET_URL --verbose
37
+ ```
38
+
39
+ ### Dependency Audit
40
+ ```bash
41
+ python3 ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/dependency_auditor.py TARGET_DIR --verbose
42
+ ```
43
+
44
+ ### Code Security Scan
45
+ ```bash
46
+ python3 ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/code_security_scanner.py TARGET_DIR --verbose
47
+ ```
48
+
49
+ Save JSON reports for any scan that finds critical or high issues:
50
+ ```bash
51
+ python3 SCANNER --output /tmp/security-report-$(date +%Y%m%d).json
52
+ ```
53
+
54
+ ## Step 4: Present Findings
55
+
56
+ Summarize results for the user:
57
+
58
+ 1. **Summary table** -- total findings by severity across all scanners
59
+ 2. **Critical/High findings** -- detail each one with the risk and impact
60
+ 3. **Remediation priorities** -- ordered list of what to fix first
61
+
62
+ ## Step 5: Suggest Remediations
63
+
64
+ For each critical and high finding:
65
+
66
+ 1. Explain the vulnerability in plain language
67
+ 2. Provide the specific fix (reference REMEDIATION_PLAYBOOK.md)
68
+ 3. Show how to verify the fix
69
+
70
+ Offer to apply code fixes directly for code-level findings.
71
+
72
+ ## Step 6: Generate Report
73
+
74
+ If the user wants a saved report, combine all findings into a single JSON file:
75
+ ```bash
76
+ # Reports are saved via the --output flag on each scanner
77
+ ```
78
+
79
+ ## Safety Rules
80
+
81
+ - Never run scans against unauthorized targets
82
+ - All scanners use safe, non-destructive techniques (GET requests, static analysis)
83
+ - No exploit payloads are sent to targets
84
+ - No data is exfiltrated or modified
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: scan-headers
3
+ description: Quick security header check for a single URL
4
+ shortcut: sh
5
+ ---
6
+
7
+ # Quick Security Header Scan
8
+
9
+ Fast single-URL check for HTTP security headers. This is a shortcut for running
10
+ just the header analysis from the full pentest workflow.
11
+
12
+ ## Usage
13
+
14
+ Ask the user for the target URL, then run:
15
+
16
+ ```bash
17
+ python3 ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/security_scanner.py TARGET_URL --checks headers
18
+ ```
19
+
20
+ ## What Gets Checked
21
+
22
+ - Content-Security-Policy (CSP)
23
+ - Strict-Transport-Security (HSTS)
24
+ - X-Frame-Options
25
+ - X-Content-Type-Options
26
+ - Referrer-Policy
27
+ - Permissions-Policy
28
+ - Server version disclosure
29
+ - X-XSS-Protection (deprecated, informational)
30
+
31
+ ## Output
32
+
33
+ Present the results as a table showing each header, whether it's present, its
34
+ value, and any issues found. Include the overall header security score.
35
+
36
+ For any missing or misconfigured headers, provide the recommended value and
37
+ a brief explanation of what it protects against. Reference
38
+ `references/SECURITY_HEADERS.md` for implementation details.
39
+
40
+ ## Authorization
41
+
42
+ Even though this only sends a single GET request, confirm the user has
43
+ authorization to test the target URL before scanning.
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@intentsolutionsio/penetration-tester",
3
+ "version": "2.0.0",
4
+ "description": "Security testing toolkit with HTTP header analysis, dependency auditing, and static code scanning",
5
+ "keywords": [
6
+ "security",
7
+ "penetration-testing",
8
+ "pentesting",
9
+ "owasp",
10
+ "exploitation",
11
+ "agent-skills",
12
+ "claude-code",
13
+ "claude-plugin",
14
+ "tonsofskills"
15
+ ],
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/jeremylongshore/claude-code-plugins-plus-skills.git",
19
+ "directory": "plugins/security/penetration-tester"
20
+ },
21
+ "homepage": "https://tonsofskills.com/plugins/penetration-tester",
22
+ "bugs": "https://github.com/jeremylongshore/claude-code-plugins-plus-skills/issues",
23
+ "license": "MIT",
24
+ "author": {
25
+ "name": "Jeremy Longshore",
26
+ "email": "[email protected]"
27
+ },
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
31
+ "files": [
32
+ "README.md",
33
+ ".claude-plugin",
34
+ "skills",
35
+ "commands"
36
+ ],
37
+ "scripts": {
38
+ "postinstall": "node -e \"console.log(\\\"\\\\n→ This npm package is a tracking/proof artifact. Install the plugin via:\\\\n ccpi install penetration-tester\\\\n or /plugin install penetration-tester@claude-code-plugins-plus in Claude Code\\\\n\\\")\""
39
+ }
40
+ }
@@ -0,0 +1,266 @@
1
+ ---
2
+ name: performing-penetration-testing
3
+ description: |
4
+ Perform security testing on web applications, APIs, and codebases. Use when
5
+ the user asks to "run a security scan", "check for vulnerabilities", "audit
6
+ dependencies", "check security headers", "find security issues", "pentest",
7
+ "security audit", or "scan for secrets". Trigger with "pentest", "security scan",
8
+ "vulnerability check", "audit dependencies", "check headers", "find secrets".
9
+ version: 2.0.0
10
+ allowed-tools: Read, Write, Edit, Grep, Glob, Bash(python3:*), Bash(pip:*), Bash(npm:*), Bash(bandit:*)
11
+ license: MIT
12
+ author: Jeremy Longshore <jeremy@intentsolutions.io>
13
+ compatible-with: claude-code, codex, openclaw
14
+ tags: [security, testing, audit]
15
+ ---
16
+ # Penetration Testing Skill
17
+
18
+ Security testing toolkit with three specialized scanners for web applications,
19
+ dependency chains, and source code.
20
+
21
+ ## Overview
22
+
23
+ This skill provides three real, working security scanners:
24
+
25
+ 1. **security_scanner.py** -- HTTP security header analysis, SSL/TLS certificate
26
+ checks, exposed endpoint probing, dangerous HTTP method detection, and CORS
27
+ misconfiguration testing. Targets live URLs.
28
+
29
+ 2. **dependency_auditor.py** -- Unified vulnerability scanner for project
30
+ dependencies. Wraps `npm audit` and `pip-audit` with normalized severity
31
+ output. Targets project directories.
32
+
33
+ 3. **code_security_scanner.py** -- Static analysis combining `bandit` (Python)
34
+ with custom regex patterns for hardcoded secrets, SQL injection, command
35
+ injection, eval/exec usage, and insecure deserialization. Targets codebases.
36
+
37
+ ## Prerequisites
38
+
39
+ - Python 3.9+
40
+ - `requests` library (for security_scanner.py)
41
+ - Optional: `bandit` (for code scanning), `pip-audit` (for dependency auditing)
42
+ - Optional: `npm` (for JavaScript dependency auditing)
43
+
44
+ Run the setup script to install all dependencies:
45
+
46
+ ```bash
47
+ bash ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/setup_pentest_env.sh
48
+ ```
49
+
50
+ Or with a virtual environment (recommended):
51
+
52
+ ```bash
53
+ bash ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/setup_pentest_env.sh --venv
54
+ ```
55
+
56
+ ## Instructions
57
+
58
+ Step 1. Confirm Authorization
59
+
60
+ Before running any scan, verify the user has authorization to test the target.
61
+ Ask explicitly:
62
+
63
+ > "Do you have authorization to perform security testing on this target? I need
64
+ > confirmation before proceeding."
65
+
66
+ If testing a URL, confirm the user owns or has written permission to test it.
67
+ If testing local code/dependencies, confirm it's the user's own project.
68
+
69
+ **Never scan targets without explicit authorization.**
70
+
71
+ Step 2. Define Scope
72
+
73
+ Determine what to scan based on the user's request:
74
+
75
+ | User says | Scanner to use | Target |
76
+ |-----------|---------------|--------|
77
+ | "check headers" / "scan URL" | security_scanner.py | URL |
78
+ | "audit dependencies" / "check packages" | dependency_auditor.py | Directory |
79
+ | "find secrets" / "code audit" | code_security_scanner.py | Directory |
80
+ | "full security scan" | All three | URL + Directory |
81
+ | "check SSL" / "certificate" | security_scanner.py --checks ssl | URL |
82
+ | "CORS check" | security_scanner.py --checks cors | URL |
83
+
84
+ Step 3. Run Scans
85
+
86
+ Execute the appropriate scanner(s):
87
+
88
+ **Web application scan:**
89
+ ```bash
90
+ python3 ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/security_scanner.py TARGET_URL
91
+ ```
92
+
93
+ With specific checks:
94
+ ```bash
95
+ python3 ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/security_scanner.py TARGET_URL --checks headers,ssl,endpoints,methods,cors
96
+ ```
97
+
98
+ **Dependency audit:**
99
+ ```bash
100
+ python3 ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/dependency_auditor.py /path/to/project
101
+ ```
102
+
103
+ With severity filter:
104
+ ```bash
105
+ python3 ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/dependency_auditor.py /path/to/project --min-severity high
106
+ ```
107
+
108
+ **Code security scan:**
109
+ ```bash
110
+ python3 ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/code_security_scanner.py /path/to/code
111
+ ```
112
+
113
+ With specific tools:
114
+ ```bash
115
+ python3 ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/code_security_scanner.py /path/to/code --tools bandit,regex --severity high
116
+ ```
117
+
118
+ Step 4. Analyze Results
119
+
120
+ Review the scanner output. Each finding includes:
121
+ 1. **Severity** -- critical, high, medium, low, or info
122
+ 2. **Title** -- what was found
123
+ 3. **Detail** -- technical explanation
124
+ 4. **Remediation** -- how to fix it
125
+
126
+ Prioritize findings by severity: critical and high findings first.
127
+
128
+ Step 5. Report Findings
129
+
130
+ Present results to the user in a clear format:
131
+ 5. Start with a summary (total findings by severity)
132
+ 6. Group findings by severity
133
+ 7. For each finding, explain the risk and provide the remediation steps
134
+ 8. Reference the appropriate playbook entry from references/
135
+
136
+ Step 6. Suggest Remediations
137
+
138
+ For each finding, provide:
139
+ 9. The specific code change or configuration needed
140
+ 10. Reference to REMEDIATION_PLAYBOOK.md for copy-paste templates
141
+ 11. Verification steps to confirm the fix works
142
+
143
+ ## Scanner Reference
144
+
145
+ ### security_scanner.py
146
+
147
+ ```
148
+ Usage: python3 security_scanner.py URL [OPTIONS]
149
+
150
+ Options:
151
+ --checks CHECKS Comma-separated: headers,ssl,endpoints,methods,cors (default: all)
152
+ --output FILE Write JSON report to file
153
+ --timeout SECS Request timeout in seconds (default: 10)
154
+ --verbose Show detailed progress
155
+ --help Show help
156
+ ```
157
+
158
+ Checks performed:
159
+ - Security headers: CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy
160
+ - SSL/TLS: certificate validity, expiry, protocol version
161
+ - Exposed endpoints: .git, .env, admin panels, server-status, directory listing
162
+ - HTTP methods: dangerous methods (PUT, DELETE, TRACE)
163
+ - CORS: wildcard origins, reflected origins, credentials misconfiguration
164
+
165
+ ### dependency_auditor.py
166
+
167
+ ```
168
+ set -euo pipefail
169
+ Usage: python3 dependency_auditor.py DIRECTORY [OPTIONS]
170
+
171
+ Options:
172
+ --scanners SCANNERS Comma-separated: npm,pip (default: auto-detect)
173
+ --min-severity LEVEL Minimum severity: critical,high,moderate,low (default: low)
174
+ --output FILE Write JSON report to file
175
+ --verbose Show detailed progress
176
+ --help Show help
177
+ ```
178
+
179
+ Auto-detects project type from package.json, requirements.txt, pyproject.toml, etc.
180
+
181
+ ### code_security_scanner.py
182
+
183
+ ```
184
+ Usage: python3 code_security_scanner.py DIRECTORY [OPTIONS]
185
+
186
+ Options:
187
+ --tools TOOLS Comma-separated: bandit,regex (default: all available)
188
+ --output FILE Write JSON report to file
189
+ --severity LEVEL Minimum severity: critical,high,medium,low (default: low)
190
+ --exclude PATTERNS Comma-separated glob patterns to exclude
191
+ --verbose Show detailed progress
192
+ --help Show help
193
+ ```
194
+
195
+ Detects: hardcoded secrets, SQL injection, command injection, eval/exec, insecure
196
+ deserialization, weak cryptography, disabled SSL verification.
197
+
198
+ ## Examples
199
+
200
+ ### Quick header check
201
+
202
+ User: "Check the security headers on https://example.com"
203
+
204
+ ```bash
205
+ python3 ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/security_scanner.py https://example.com --checks headers
206
+ ```
207
+
208
+ ### Full project security audit
209
+
210
+ User: "Run a full security audit on my project"
211
+
212
+ ```bash
213
+ # 1. Scan dependencies
214
+ python3 ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/dependency_auditor.py .
215
+
216
+ # 2. Scan code for security issues
217
+ python3 ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/code_security_scanner.py .
218
+
219
+ # 3. If the project has a deployed URL, scan it too
220
+ python3 ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/security_scanner.py https://the-deployed-url.com
221
+ ```
222
+
223
+ ### Code-only audit for secrets
224
+
225
+ User: "Check this codebase for hardcoded secrets"
226
+
227
+ ```bash
228
+ python3 ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/code_security_scanner.py . --tools regex --severity high
229
+ ```
230
+
231
+ ## Output
232
+
233
+ All scanners produce structured security reports:
234
+
235
+ - **Console report**: Markdown-formatted findings with severity, description, and remediation
236
+ - **JSON report**: Machine-readable output via `--output` flag for CI integration
237
+ - **Exit codes**: 0 = no critical/high findings, 1 = critical/high findings found
238
+ - **Risk score**: security_scanner.py provides a 0-100 score (100 = most secure)
239
+ - **Severity levels**: critical, high, medium, low, info for each finding
240
+ - **Remediation guidance**: Specific fix instructions for each finding
241
+
242
+ ## Error Handling
243
+
244
+ **Missing dependencies:**
245
+ If a scanner fails because a tool isn't installed, run the setup script:
246
+ ```bash
247
+ bash ${CLAUDE_PLUGIN_ROOT}/skills/performing-penetration-testing/scripts/setup_pentest_env.sh
248
+ ```
249
+
250
+ **Connection errors:**
251
+ If security_scanner.py can't reach the target URL:
252
+ - Verify the URL is correct and accessible
253
+ - Check if the site requires VPN or special network access
254
+ - Try with `--timeout 30` for slow servers
255
+
256
+ **Permission errors:**
257
+ If code_security_scanner.py can't read files:
258
+ - Check file permissions in the target directory
259
+ - Exclude protected directories with `--exclude`
260
+
261
+ ## Resources
262
+
263
+ For detailed reference material, see:
264
+ - `references/OWASP_TOP_10.md` -- OWASP Top 10 risks with scanner mapping
265
+ - `references/SECURITY_HEADERS.md` -- HTTP security header implementation guide
266
+ - `references/REMEDIATION_PLAYBOOK.md` -- Copy-paste fix templates