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.
Files changed (2) hide show
  1. package/dist/index.js +322 -1
  2. 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
- - Web: gobuster, ffuf, nikto, sqlmap, burp
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,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pentesting",
3
- "version": "0.8.42",
3
+ "version": "0.8.44",
4
4
  "description": "Autonomous Penetration Testing AI Agent",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",