pentesting 0.8.42 → 0.8.44
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.
- package/dist/index.js +322 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -140,13 +140,61 @@ If you notice you're repeating the same actions without progress:
|
|
|
140
140
|
|
|
141
141
|
Key tools for each phase:
|
|
142
142
|
- Recon: whois, dig, nslookup, theHarvester, amass
|
|
143
|
+
- Subdomain: ffuf, subfinder, assetfinder, amass, gobuster dns
|
|
143
144
|
- Scan: nmap, masscan, rustscan
|
|
144
|
-
-
|
|
145
|
+
- Directory: ffuf, gobuster, dirsearch, feroxbuster
|
|
146
|
+
- Web: nikto, sqlmap, wpscan, nuclei
|
|
145
147
|
- Exploit: metasploit, searchsploit, custom scripts
|
|
146
148
|
- PrivEsc: linpeas, winpeas, GTFOBins
|
|
147
149
|
- Post: mimikatz, bloodhound, chisel
|
|
148
150
|
</tool_usage_guidelines>
|
|
149
151
|
|
|
152
|
+
<mandatory_autonomous_execution>
|
|
153
|
+
CRITICAL: You MUST execute tools immediately without asking. DO NOT:
|
|
154
|
+
- Ask "should I run ffuf?" - JUST RUN IT
|
|
155
|
+
- Say "I can use gobuster" - JUST USE IT
|
|
156
|
+
- Explain what you could do - JUST DO IT
|
|
157
|
+
- Wait for user confirmation - ACT NOW
|
|
158
|
+
- Write bash scripts manually when MCP tools exist - USE THE TOOLS
|
|
159
|
+
|
|
160
|
+
YOU HAVE THESE MCP TOOLS - USE THEM DIRECTLY:
|
|
161
|
+
- ffuf \u2192 subdomain and directory fuzzing
|
|
162
|
+
- subfinder \u2192 passive subdomain discovery
|
|
163
|
+
- amass \u2192 comprehensive subdomain enum
|
|
164
|
+
- nuclei \u2192 vulnerability scanning
|
|
165
|
+
- nikto \u2192 web server scanning
|
|
166
|
+
- whatweb \u2192 technology fingerprinting
|
|
167
|
+
- httpx \u2192 HTTP probing
|
|
168
|
+
- waybackurls \u2192 historical URL discovery
|
|
169
|
+
- feroxbuster \u2192 recursive directory scanning
|
|
170
|
+
- rustscan \u2192 fast port scanning
|
|
171
|
+
- nmap_scan \u2192 detailed port/service scan
|
|
172
|
+
- hydra \u2192 credential bruteforce
|
|
173
|
+
- sqlmap (sql_injection) \u2192 SQL injection
|
|
174
|
+
- gobuster (directory_bruteforce) \u2192 directory enumeration
|
|
175
|
+
|
|
176
|
+
TRIGGER \u2192 ACTION MAPPING:
|
|
177
|
+
"\uC11C\uBE0C\uB3C4\uBA54\uC778" or "subdomain" \u2192 IMMEDIATELY use ffuf tool with mode=subdomain
|
|
178
|
+
"\uB514\uB809\uD1A0\uB9AC" or "directory" or "path" \u2192 IMMEDIATELY use ffuf tool with mode=directory
|
|
179
|
+
"\uC2A4\uCE94" or "scan" \u2192 IMMEDIATELY use rustscan then nmap_scan
|
|
180
|
+
"\uCDE8\uC57D\uC810" or "vuln" \u2192 IMMEDIATELY use nuclei tool
|
|
181
|
+
"\uAE30\uC220\uC2A4\uD0DD" or "tech" \u2192 IMMEDIATELY use whatweb tool
|
|
182
|
+
"\uD788\uC2A4\uD1A0\uB9AC" or "wayback" \u2192 IMMEDIATELY use waybackurls tool
|
|
183
|
+
"\uBE0C\uB8E8\uD2B8\uD3EC\uC2A4" or "bruteforce" \u2192 IMMEDIATELY use hydra tool
|
|
184
|
+
"SQL" or "\uC778\uC81D\uC158" \u2192 IMMEDIATELY use sql_injection tool
|
|
185
|
+
|
|
186
|
+
EXAMPLE - User says "\uC11C\uBE0C\uB3C4\uBA54\uC778 \uCC3E\uC544":
|
|
187
|
+
WRONG: for sub in www mail ftp; do host $sub.domain.com; done
|
|
188
|
+
RIGHT: Use ffuf tool with url=https://FUZZ.domain.com, mode=subdomain
|
|
189
|
+
|
|
190
|
+
EXAMPLE - User says "\uB514\uB809\uD1A0\uB9AC \uC2A4\uCE94\uD574":
|
|
191
|
+
WRONG: curl https://domain.com/admin
|
|
192
|
+
RIGHT: Use ffuf tool with url=https://domain.com/FUZZ, mode=directory
|
|
193
|
+
|
|
194
|
+
NEVER write manual bash loops when MCP tools exist!
|
|
195
|
+
ALWAYS prefer MCP tools over bash commands!
|
|
196
|
+
</mandatory_autonomous_execution>
|
|
197
|
+
|
|
150
198
|
<output_format>
|
|
151
199
|
Always structure your thinking clearly:
|
|
152
200
|
|
|
@@ -496,6 +544,134 @@ Use for:
|
|
|
496
544
|
}
|
|
497
545
|
}
|
|
498
546
|
];
|
|
547
|
+
var DNS_TOOLS = [
|
|
548
|
+
{
|
|
549
|
+
name: TOOL_NAME.FFUF,
|
|
550
|
+
description: `FFUF - Fast web fuzzer. USE THIS for subdomain and directory enumeration.
|
|
551
|
+
|
|
552
|
+
SUBDOMAIN ENUMERATION:
|
|
553
|
+
ffuf -u https://FUZZ.domain.com -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -mc 200,301,302,403
|
|
554
|
+
|
|
555
|
+
DIRECTORY ENUMERATION:
|
|
556
|
+
ffuf -u https://domain.com/FUZZ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
|
|
557
|
+
|
|
558
|
+
VHOST DISCOVERY:
|
|
559
|
+
ffuf -u https://domain.com -H "Host: FUZZ.domain.com" -w wordlist.txt
|
|
560
|
+
|
|
561
|
+
PARAMETER FUZZING:
|
|
562
|
+
ffuf -u https://domain.com/page?FUZZ=value -w params.txt
|
|
563
|
+
|
|
564
|
+
OPTIONS:
|
|
565
|
+
- -mc: Match HTTP status codes
|
|
566
|
+
- -fc: Filter HTTP status codes
|
|
567
|
+
- -fs: Filter response size
|
|
568
|
+
- -fw: Filter word count
|
|
569
|
+
- -t: Threads (default 40)
|
|
570
|
+
- -recursion: Enable recursion
|
|
571
|
+
- -e: Extensions (.php,.html,.txt)
|
|
572
|
+
|
|
573
|
+
CRITICAL: This is your PRIMARY tool for web enumeration. USE IT IMMEDIATELY when asked to find subdomains or directories.`,
|
|
574
|
+
input_schema: {
|
|
575
|
+
type: "object",
|
|
576
|
+
properties: {
|
|
577
|
+
url: { type: "string", description: "Target URL with FUZZ keyword" },
|
|
578
|
+
wordlist: { type: "string", description: "Wordlist path (default: /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt)" },
|
|
579
|
+
mode: { type: "string", enum: ["subdomain", "directory", "vhost", "parameter"], description: "Fuzzing mode" },
|
|
580
|
+
match_codes: { type: "string", description: 'Status codes to match (e.g., "200,301,302,403")' },
|
|
581
|
+
filter_codes: { type: "string", description: 'Status codes to filter (e.g., "404")' },
|
|
582
|
+
filter_size: { type: "string", description: "Response size to filter" },
|
|
583
|
+
threads: { type: "number", description: "Threads (default: 40)" },
|
|
584
|
+
extensions: { type: "string", description: 'Extensions to append (e.g., "php,html,txt")' },
|
|
585
|
+
headers: { type: "string", description: "Custom headers" },
|
|
586
|
+
recursion: { type: "boolean", description: "Enable recursion" }
|
|
587
|
+
},
|
|
588
|
+
required: ["url"]
|
|
589
|
+
}
|
|
590
|
+
},
|
|
591
|
+
{
|
|
592
|
+
name: TOOL_NAME.SUBFINDER,
|
|
593
|
+
description: `Subfinder - Passive subdomain discovery tool.
|
|
594
|
+
|
|
595
|
+
USAGE:
|
|
596
|
+
subfinder -d domain.com -o subdomains.txt
|
|
597
|
+
|
|
598
|
+
OPTIONS:
|
|
599
|
+
- -d: Domain to find subdomains for
|
|
600
|
+
- -o: Output file
|
|
601
|
+
- -all: Use all sources
|
|
602
|
+
- -silent: Silent mode (only subdomains)
|
|
603
|
+
- -recursive: Recursive subdomain discovery
|
|
604
|
+
|
|
605
|
+
Great for OSINT-based subdomain discovery without active scanning.`,
|
|
606
|
+
input_schema: {
|
|
607
|
+
type: "object",
|
|
608
|
+
properties: {
|
|
609
|
+
domain: { type: "string", description: "Target domain" },
|
|
610
|
+
output: { type: "string", description: "Output file path" },
|
|
611
|
+
all_sources: { type: "boolean", description: "Use all sources" },
|
|
612
|
+
recursive: { type: "boolean", description: "Recursive discovery" },
|
|
613
|
+
silent: { type: "boolean", description: "Silent mode" }
|
|
614
|
+
},
|
|
615
|
+
required: ["domain"]
|
|
616
|
+
}
|
|
617
|
+
},
|
|
618
|
+
{
|
|
619
|
+
name: TOOL_NAME.AMASS,
|
|
620
|
+
description: `Amass - In-depth subdomain enumeration.
|
|
621
|
+
|
|
622
|
+
MODES:
|
|
623
|
+
- enum: Subdomain enumeration
|
|
624
|
+
- intel: Gather intel on organization
|
|
625
|
+
- track: Track changes over time
|
|
626
|
+
|
|
627
|
+
USAGE:
|
|
628
|
+
amass enum -d domain.com -o output.txt
|
|
629
|
+
amass enum -passive -d domain.com (passive only)
|
|
630
|
+
amass enum -active -d domain.com (active probing)
|
|
631
|
+
|
|
632
|
+
Most comprehensive but slower than subfinder.`,
|
|
633
|
+
input_schema: {
|
|
634
|
+
type: "object",
|
|
635
|
+
properties: {
|
|
636
|
+
mode: { type: "string", enum: ["enum", "intel", "track"], description: "Amass mode" },
|
|
637
|
+
domain: { type: "string", description: "Target domain" },
|
|
638
|
+
passive: { type: "boolean", description: "Passive enumeration only" },
|
|
639
|
+
active: { type: "boolean", description: "Active DNS resolution" },
|
|
640
|
+
output: { type: "string", description: "Output file" }
|
|
641
|
+
},
|
|
642
|
+
required: ["domain"]
|
|
643
|
+
}
|
|
644
|
+
},
|
|
645
|
+
{
|
|
646
|
+
name: TOOL_NAME.FEROXBUSTER,
|
|
647
|
+
description: `Feroxbuster - Fast, recursive content discovery tool.
|
|
648
|
+
|
|
649
|
+
USAGE:
|
|
650
|
+
feroxbuster -u https://domain.com -w wordlist.txt
|
|
651
|
+
|
|
652
|
+
OPTIONS:
|
|
653
|
+
- -u: Target URL
|
|
654
|
+
- -w: Wordlist
|
|
655
|
+
- -x: Extensions (php,html,txt)
|
|
656
|
+
- -t: Threads
|
|
657
|
+
- -d: Recursion depth
|
|
658
|
+
- --auto-tune: Automatic rate limiting
|
|
659
|
+
|
|
660
|
+
Faster than gobuster with built-in recursion.`,
|
|
661
|
+
input_schema: {
|
|
662
|
+
type: "object",
|
|
663
|
+
properties: {
|
|
664
|
+
url: { type: "string", description: "Target URL" },
|
|
665
|
+
wordlist: { type: "string", description: "Wordlist path" },
|
|
666
|
+
extensions: { type: "string", description: 'Extensions (e.g., "php,html")' },
|
|
667
|
+
threads: { type: "number", description: "Threads" },
|
|
668
|
+
depth: { type: "number", description: "Recursion depth" },
|
|
669
|
+
status_codes: { type: "string", description: "Status codes to include" }
|
|
670
|
+
},
|
|
671
|
+
required: ["url"]
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
];
|
|
499
675
|
var SERVICE_TOOLS = [
|
|
500
676
|
{
|
|
501
677
|
name: TOOL_NAME.ZONE_TRANSFER,
|
|
@@ -1169,6 +1345,150 @@ Use for:
|
|
|
1169
1345
|
},
|
|
1170
1346
|
required: ["url", "action"]
|
|
1171
1347
|
}
|
|
1348
|
+
},
|
|
1349
|
+
{
|
|
1350
|
+
name: TOOL_NAME.NUCLEI,
|
|
1351
|
+
description: `Nuclei - Fast vulnerability scanner with templates.
|
|
1352
|
+
|
|
1353
|
+
CRITICAL: Use this for automated vulnerability scanning.
|
|
1354
|
+
|
|
1355
|
+
USAGE:
|
|
1356
|
+
nuclei -u https://target.com -t cves/
|
|
1357
|
+
nuclei -u https://target.com -t exposures/
|
|
1358
|
+
nuclei -l urls.txt -t technologies/
|
|
1359
|
+
|
|
1360
|
+
TEMPLATE CATEGORIES:
|
|
1361
|
+
- cves: Known CVE exploits
|
|
1362
|
+
- vulnerabilities: Generic vulns
|
|
1363
|
+
- exposures: Sensitive file exposure
|
|
1364
|
+
- misconfigurations: Config issues
|
|
1365
|
+
- technologies: Tech detection
|
|
1366
|
+
- default-logins: Default credentials
|
|
1367
|
+
|
|
1368
|
+
OPTIONS:
|
|
1369
|
+
- -t: Template path/directory
|
|
1370
|
+
- -severity: Filter by severity (critical,high,medium,low)
|
|
1371
|
+
- -o: Output file
|
|
1372
|
+
- -silent: Silent mode`,
|
|
1373
|
+
input_schema: {
|
|
1374
|
+
type: "object",
|
|
1375
|
+
properties: {
|
|
1376
|
+
target: { type: "string", description: "Target URL or file with URLs" },
|
|
1377
|
+
templates: { type: "string", description: "Template path (e.g., cves/, exposures/)" },
|
|
1378
|
+
severity: { type: "string", description: "Severity filter (critical,high,medium,low)" },
|
|
1379
|
+
output: { type: "string", description: "Output file" },
|
|
1380
|
+
silent: { type: "boolean", description: "Silent mode" }
|
|
1381
|
+
},
|
|
1382
|
+
required: ["target"]
|
|
1383
|
+
}
|
|
1384
|
+
},
|
|
1385
|
+
{
|
|
1386
|
+
name: TOOL_NAME.NIKTO,
|
|
1387
|
+
description: `Nikto - Web server vulnerability scanner.
|
|
1388
|
+
|
|
1389
|
+
Scans for:
|
|
1390
|
+
- Dangerous files/CGIs
|
|
1391
|
+
- Outdated software versions
|
|
1392
|
+
- Server configuration issues
|
|
1393
|
+
- Default files and programs
|
|
1394
|
+
|
|
1395
|
+
USAGE:
|
|
1396
|
+
nikto -h https://target.com
|
|
1397
|
+
nikto -h target.com -port 8080
|
|
1398
|
+
|
|
1399
|
+
OPTIONS:
|
|
1400
|
+
- -h: Target host
|
|
1401
|
+
- -port: Port (default 80)
|
|
1402
|
+
- -ssl: Force SSL
|
|
1403
|
+
- -Tuning: Scan tuning (1-9, x)`,
|
|
1404
|
+
input_schema: {
|
|
1405
|
+
type: "object",
|
|
1406
|
+
properties: {
|
|
1407
|
+
target: { type: "string", description: "Target URL/IP" },
|
|
1408
|
+
port: { type: "number", description: "Port number" },
|
|
1409
|
+
ssl: { type: "boolean", description: "Force SSL" },
|
|
1410
|
+
tuning: { type: "string", description: "Scan tuning options" },
|
|
1411
|
+
output: { type: "string", description: "Output file" }
|
|
1412
|
+
},
|
|
1413
|
+
required: ["target"]
|
|
1414
|
+
}
|
|
1415
|
+
},
|
|
1416
|
+
{
|
|
1417
|
+
name: TOOL_NAME.WHATWEB,
|
|
1418
|
+
description: `WhatWeb - Web technology fingerprinting.
|
|
1419
|
+
|
|
1420
|
+
Identifies:
|
|
1421
|
+
- CMS (WordPress, Joomla, Drupal)
|
|
1422
|
+
- Web frameworks
|
|
1423
|
+
- JavaScript libraries
|
|
1424
|
+
- Web servers
|
|
1425
|
+
- Plugins and versions
|
|
1426
|
+
|
|
1427
|
+
USAGE:
|
|
1428
|
+
whatweb https://target.com
|
|
1429
|
+
whatweb -a 3 https://target.com # Aggressive mode
|
|
1430
|
+
|
|
1431
|
+
AGGRESSION LEVELS:
|
|
1432
|
+
- 1: Stealthy (default)
|
|
1433
|
+
- 3: Aggressive
|
|
1434
|
+
- 4: Heavy`,
|
|
1435
|
+
input_schema: {
|
|
1436
|
+
type: "object",
|
|
1437
|
+
properties: {
|
|
1438
|
+
target: { type: "string", description: "Target URL" },
|
|
1439
|
+
aggression: { type: "number", description: "Aggression level (1-4)" },
|
|
1440
|
+
verbose: { type: "boolean", description: "Verbose output" }
|
|
1441
|
+
},
|
|
1442
|
+
required: ["target"]
|
|
1443
|
+
}
|
|
1444
|
+
},
|
|
1445
|
+
{
|
|
1446
|
+
name: TOOL_NAME.HTTPX,
|
|
1447
|
+
description: `httpx - Fast HTTP toolkit for probing.
|
|
1448
|
+
|
|
1449
|
+
USAGE:
|
|
1450
|
+
echo "subdomain.target.com" | httpx
|
|
1451
|
+
httpx -l urls.txt -status-code -title
|
|
1452
|
+
|
|
1453
|
+
OPTIONS:
|
|
1454
|
+
- -status-code: Show status codes
|
|
1455
|
+
- -title: Extract page titles
|
|
1456
|
+
- -tech-detect: Technology detection
|
|
1457
|
+
- -follow-redirects: Follow redirects
|
|
1458
|
+
- -threads: Concurrent threads`,
|
|
1459
|
+
input_schema: {
|
|
1460
|
+
type: "object",
|
|
1461
|
+
properties: {
|
|
1462
|
+
target: { type: "string", description: "Target URL or file" },
|
|
1463
|
+
status_code: { type: "boolean", description: "Show status codes" },
|
|
1464
|
+
title: { type: "boolean", description: "Extract titles" },
|
|
1465
|
+
tech_detect: { type: "boolean", description: "Tech detection" },
|
|
1466
|
+
follow_redirects: { type: "boolean", description: "Follow redirects" }
|
|
1467
|
+
},
|
|
1468
|
+
required: ["target"]
|
|
1469
|
+
}
|
|
1470
|
+
},
|
|
1471
|
+
{
|
|
1472
|
+
name: TOOL_NAME.WAYBACKURLS,
|
|
1473
|
+
description: `Waybackurls - Fetch URLs from Wayback Machine.
|
|
1474
|
+
|
|
1475
|
+
Reveals:
|
|
1476
|
+
- Historical endpoints
|
|
1477
|
+
- Hidden parameters
|
|
1478
|
+
- Old files and paths
|
|
1479
|
+
- API endpoints
|
|
1480
|
+
|
|
1481
|
+
USAGE:
|
|
1482
|
+
echo "target.com" | waybackurls
|
|
1483
|
+
waybackurls target.com | grep -E "\\.js$" # Find JS files`,
|
|
1484
|
+
input_schema: {
|
|
1485
|
+
type: "object",
|
|
1486
|
+
properties: {
|
|
1487
|
+
domain: { type: "string", description: "Target domain" },
|
|
1488
|
+
output: { type: "string", description: "Output file" }
|
|
1489
|
+
},
|
|
1490
|
+
required: ["domain"]
|
|
1491
|
+
}
|
|
1172
1492
|
}
|
|
1173
1493
|
];
|
|
1174
1494
|
var EXPLOIT_TOOLS = [
|
|
@@ -1411,6 +1731,7 @@ var REPORT_TOOLS = [
|
|
|
1411
1731
|
var ALL_TOOLS = [
|
|
1412
1732
|
...SYSTEM_TOOLS,
|
|
1413
1733
|
...NETWORK_TOOLS,
|
|
1734
|
+
...DNS_TOOLS,
|
|
1414
1735
|
...SERVICE_TOOLS,
|
|
1415
1736
|
...WINDOWS_TOOLS,
|
|
1416
1737
|
...WEB_TOOLS,
|