pentesting 0.7.0 → 0.7.2
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 +120 -84
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1299,41 +1299,77 @@ var execAsync = promisify(exec);
|
|
|
1299
1299
|
var DOCKER_CONTAINER = process.env.PENTESTING_CONTAINER || "pentesting-tools";
|
|
1300
1300
|
var FORCE_DOCKER = process.env.PENTESTING_DOCKER === "1";
|
|
1301
1301
|
var DOCKER_TOOLS = [
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1302
|
+
// Network scanning
|
|
1303
|
+
TOOL_NAME.RUSTSCAN,
|
|
1304
|
+
TOOL_NAME.NMAP_SCAN,
|
|
1305
|
+
TOOL_NAME.MASSCAN,
|
|
1306
|
+
TOOL_NAME.TCPDUMP_CAPTURE,
|
|
1307
|
+
TOOL_NAME.PING,
|
|
1308
|
+
TOOL_NAME.TRACEROUTE,
|
|
1309
|
+
TOOL_NAME.NETCAT,
|
|
1310
|
+
// DNS & Subdomain
|
|
1311
|
+
TOOL_NAME.DIG,
|
|
1312
|
+
TOOL_NAME.HOST,
|
|
1313
|
+
TOOL_NAME.NSLOOKUP,
|
|
1314
|
+
TOOL_NAME.WHOIS,
|
|
1315
|
+
TOOL_NAME.SUBFINDER,
|
|
1316
|
+
TOOL_NAME.AMASS,
|
|
1317
|
+
TOOL_NAME.DNSENUM,
|
|
1318
|
+
TOOL_NAME.ZONE_TRANSFER,
|
|
1319
|
+
// Service Enumeration
|
|
1320
|
+
TOOL_NAME.SNMP_WALK,
|
|
1321
|
+
TOOL_NAME.SNMP_CHECK,
|
|
1322
|
+
TOOL_NAME.ONESIXTYONE,
|
|
1323
|
+
TOOL_NAME.FTP_ENUM,
|
|
1324
|
+
TOOL_NAME.FTP_ANON,
|
|
1325
|
+
TOOL_NAME.NBTSCAN,
|
|
1326
|
+
TOOL_NAME.RPC_INFO,
|
|
1327
|
+
TOOL_NAME.SHOWMOUNT,
|
|
1328
|
+
TOOL_NAME.TELNET,
|
|
1329
|
+
// Web tools
|
|
1330
|
+
TOOL_NAME.FFUF,
|
|
1331
|
+
TOOL_NAME.FEROXBUSTER,
|
|
1332
|
+
TOOL_NAME.WHATWEB,
|
|
1333
|
+
TOOL_NAME.HTTPX,
|
|
1334
|
+
TOOL_NAME.NUCLEI,
|
|
1335
|
+
TOOL_NAME.NIKTO,
|
|
1336
|
+
TOOL_NAME.DIRECTORY_BRUTEFORCE,
|
|
1337
|
+
TOOL_NAME.SQL_INJECTION,
|
|
1338
|
+
TOOL_NAME.WAYBACKURLS,
|
|
1339
|
+
// Windows/SMB/AD
|
|
1340
|
+
TOOL_NAME.SMB_ENUM,
|
|
1341
|
+
TOOL_NAME.ENUM4LINUX,
|
|
1342
|
+
TOOL_NAME.CRACKMAPEXEC,
|
|
1343
|
+
TOOL_NAME.SMBCLIENT,
|
|
1344
|
+
TOOL_NAME.RPCCLIENT,
|
|
1345
|
+
TOOL_NAME.WINRM,
|
|
1346
|
+
TOOL_NAME.RDP_CHECK,
|
|
1347
|
+
TOOL_NAME.LDAP_SEARCH,
|
|
1348
|
+
TOOL_NAME.KERBRUTE,
|
|
1349
|
+
TOOL_NAME.BLOODHOUND,
|
|
1350
|
+
// Database
|
|
1351
|
+
TOOL_NAME.MSSQL_CLIENT,
|
|
1352
|
+
TOOL_NAME.MYSQL_CLIENT,
|
|
1353
|
+
TOOL_NAME.PSQL_CLIENT,
|
|
1354
|
+
TOOL_NAME.REDIS_CLI,
|
|
1355
|
+
TOOL_NAME.MONGO_CLIENT,
|
|
1356
|
+
// Bruteforce
|
|
1357
|
+
TOOL_NAME.HYDRA,
|
|
1358
|
+
TOOL_NAME.BRUTEFORCE_LOGIN,
|
|
1359
|
+
TOOL_NAME.CRACK_HASH,
|
|
1360
|
+
// Exploitation
|
|
1361
|
+
TOOL_NAME.SEARCHSPLOIT,
|
|
1362
|
+
TOOL_NAME.METASPLOIT,
|
|
1363
|
+
TOOL_NAME.GENERATE_PAYLOAD,
|
|
1364
|
+
// Post-exploitation
|
|
1365
|
+
TOOL_NAME.SETUP_TUNNEL,
|
|
1366
|
+
TOOL_NAME.LATERAL_MOVEMENT,
|
|
1367
|
+
TOOL_NAME.REVERSE_SHELL,
|
|
1368
|
+
TOOL_NAME.DUMP_CREDENTIALS,
|
|
1369
|
+
// Privesc
|
|
1370
|
+
TOOL_NAME.RUN_PRIVESC_ENUM,
|
|
1371
|
+
TOOL_NAME.CHECK_SUDO,
|
|
1372
|
+
TOOL_NAME.FIND_SUID
|
|
1337
1373
|
];
|
|
1338
1374
|
async function isDockerAvailable() {
|
|
1339
1375
|
try {
|
|
@@ -1372,27 +1408,27 @@ async function executeToolCall(toolName, input) {
|
|
|
1372
1408
|
let result;
|
|
1373
1409
|
switch (toolName) {
|
|
1374
1410
|
// system tool
|
|
1375
|
-
case
|
|
1411
|
+
case TOOL_NAME.BASH:
|
|
1376
1412
|
result = await executeBash(input.command, {
|
|
1377
1413
|
timeout: input.timeout || 6e4,
|
|
1378
1414
|
background: input.background
|
|
1379
1415
|
});
|
|
1380
1416
|
break;
|
|
1381
|
-
case
|
|
1417
|
+
case TOOL_NAME.READ_FILE:
|
|
1382
1418
|
result = await readFile2(
|
|
1383
1419
|
input.path,
|
|
1384
1420
|
input.start_line,
|
|
1385
1421
|
input.end_line
|
|
1386
1422
|
);
|
|
1387
1423
|
break;
|
|
1388
|
-
case
|
|
1424
|
+
case TOOL_NAME.WRITE_FILE:
|
|
1389
1425
|
result = await writeFile2(
|
|
1390
1426
|
input.path,
|
|
1391
1427
|
input.content,
|
|
1392
1428
|
input.overwrite
|
|
1393
1429
|
);
|
|
1394
1430
|
break;
|
|
1395
|
-
case
|
|
1431
|
+
case TOOL_NAME.LIST_DIRECTORY:
|
|
1396
1432
|
result = await listDirectory(
|
|
1397
1433
|
input.path,
|
|
1398
1434
|
input.recursive,
|
|
@@ -1400,147 +1436,147 @@ async function executeToolCall(toolName, input) {
|
|
|
1400
1436
|
);
|
|
1401
1437
|
break;
|
|
1402
1438
|
// network scanning
|
|
1403
|
-
case
|
|
1439
|
+
case TOOL_NAME.RUSTSCAN:
|
|
1404
1440
|
result = await executeRustscan(input);
|
|
1405
1441
|
break;
|
|
1406
|
-
case
|
|
1442
|
+
case TOOL_NAME.NMAP_SCAN:
|
|
1407
1443
|
result = await executeNmapScan(input);
|
|
1408
1444
|
break;
|
|
1409
|
-
case
|
|
1445
|
+
case TOOL_NAME.TCPDUMP_CAPTURE:
|
|
1410
1446
|
result = await executeTcpdump(input);
|
|
1411
1447
|
break;
|
|
1412
1448
|
// Web Tools
|
|
1413
|
-
case
|
|
1449
|
+
case TOOL_NAME.WEB_REQUEST:
|
|
1414
1450
|
result = await executeWebRequest(input);
|
|
1415
1451
|
break;
|
|
1416
|
-
case
|
|
1452
|
+
case TOOL_NAME.DIRECTORY_BRUTEFORCE:
|
|
1417
1453
|
result = await executeDirBruteforce(input);
|
|
1418
1454
|
break;
|
|
1419
|
-
case
|
|
1455
|
+
case TOOL_NAME.SQL_INJECTION:
|
|
1420
1456
|
result = await executeSqlmap(input);
|
|
1421
1457
|
break;
|
|
1422
|
-
case
|
|
1458
|
+
case TOOL_NAME.BROWSER_AUTOMATION:
|
|
1423
1459
|
result = await executeBrowserAutomation(input);
|
|
1424
1460
|
break;
|
|
1425
1461
|
// Exploitation Tools
|
|
1426
|
-
case
|
|
1462
|
+
case TOOL_NAME.SEARCHSPLOIT:
|
|
1427
1463
|
result = await executeSearchsploit(input);
|
|
1428
1464
|
break;
|
|
1429
|
-
case
|
|
1465
|
+
case TOOL_NAME.METASPLOIT:
|
|
1430
1466
|
result = await executeMetasploit(input);
|
|
1431
1467
|
break;
|
|
1432
|
-
case
|
|
1468
|
+
case TOOL_NAME.GENERATE_PAYLOAD:
|
|
1433
1469
|
result = await generatePayload(input);
|
|
1434
1470
|
break;
|
|
1435
1471
|
// Credential Tools
|
|
1436
|
-
case
|
|
1472
|
+
case TOOL_NAME.BRUTEFORCE_LOGIN:
|
|
1437
1473
|
result = await executeBruteforce(input);
|
|
1438
1474
|
break;
|
|
1439
|
-
case
|
|
1475
|
+
case TOOL_NAME.CRACK_HASH:
|
|
1440
1476
|
result = await executeCrackHash(input);
|
|
1441
1477
|
break;
|
|
1442
1478
|
// permission escalation
|
|
1443
|
-
case
|
|
1479
|
+
case TOOL_NAME.RUN_PRIVESC_ENUM:
|
|
1444
1480
|
result = await executePrivescEnum(input);
|
|
1445
1481
|
break;
|
|
1446
|
-
case
|
|
1482
|
+
case TOOL_NAME.CHECK_SUDO:
|
|
1447
1483
|
result = await checkSudo(input);
|
|
1448
1484
|
break;
|
|
1449
|
-
case
|
|
1485
|
+
case TOOL_NAME.FIND_SUID:
|
|
1450
1486
|
result = await findSuid(input);
|
|
1451
1487
|
break;
|
|
1452
1488
|
// Post-Exploitation
|
|
1453
|
-
case
|
|
1489
|
+
case TOOL_NAME.SETUP_TUNNEL:
|
|
1454
1490
|
result = await setupTunnel(input);
|
|
1455
1491
|
break;
|
|
1456
|
-
case
|
|
1492
|
+
case TOOL_NAME.DUMP_CREDENTIALS:
|
|
1457
1493
|
result = await dumpCredentials(input);
|
|
1458
1494
|
break;
|
|
1459
|
-
case
|
|
1495
|
+
case TOOL_NAME.LATERAL_MOVEMENT:
|
|
1460
1496
|
result = await executeLateralMovement(input);
|
|
1461
1497
|
break;
|
|
1462
1498
|
// Windows / SMB / AD Tools
|
|
1463
|
-
case
|
|
1499
|
+
case TOOL_NAME.NETCAT:
|
|
1464
1500
|
result = await executeNetcat(input);
|
|
1465
1501
|
break;
|
|
1466
|
-
case
|
|
1502
|
+
case TOOL_NAME.SMB_ENUM:
|
|
1467
1503
|
result = await executeSmbEnum(input);
|
|
1468
1504
|
break;
|
|
1469
|
-
case
|
|
1505
|
+
case TOOL_NAME.ENUM4LINUX:
|
|
1470
1506
|
result = await executeEnum4linux(input);
|
|
1471
1507
|
break;
|
|
1472
|
-
case
|
|
1508
|
+
case TOOL_NAME.CRACKMAPEXEC:
|
|
1473
1509
|
result = await executeCrackmapexec(input);
|
|
1474
1510
|
break;
|
|
1475
|
-
case
|
|
1511
|
+
case TOOL_NAME.SMBCLIENT:
|
|
1476
1512
|
result = await executeSmbclient(input);
|
|
1477
1513
|
break;
|
|
1478
|
-
case
|
|
1514
|
+
case TOOL_NAME.RPCCLIENT:
|
|
1479
1515
|
result = await executeRpcclient(input);
|
|
1480
1516
|
break;
|
|
1481
|
-
case
|
|
1517
|
+
case TOOL_NAME.WINRM:
|
|
1482
1518
|
result = await executeWinrm(input);
|
|
1483
1519
|
break;
|
|
1484
|
-
case
|
|
1520
|
+
case TOOL_NAME.RDP_CHECK:
|
|
1485
1521
|
result = await executeRdpCheck(input);
|
|
1486
1522
|
break;
|
|
1487
|
-
case
|
|
1523
|
+
case TOOL_NAME.LDAP_SEARCH:
|
|
1488
1524
|
result = await executeLdapSearch(input);
|
|
1489
1525
|
break;
|
|
1490
|
-
case
|
|
1526
|
+
case TOOL_NAME.KERBRUTE:
|
|
1491
1527
|
result = await executeKerbrute(input);
|
|
1492
1528
|
break;
|
|
1493
|
-
case
|
|
1529
|
+
case TOOL_NAME.BLOODHOUND:
|
|
1494
1530
|
result = await executeBloodhound(input);
|
|
1495
1531
|
break;
|
|
1496
|
-
case
|
|
1532
|
+
case TOOL_NAME.MSSQL_CLIENT:
|
|
1497
1533
|
result = await executeMssqlClient(input);
|
|
1498
1534
|
break;
|
|
1499
|
-
case
|
|
1535
|
+
case TOOL_NAME.MYSQL_CLIENT:
|
|
1500
1536
|
result = await executeMysqlClient(input);
|
|
1501
1537
|
break;
|
|
1502
|
-
case
|
|
1538
|
+
case TOOL_NAME.REVERSE_SHELL:
|
|
1503
1539
|
result = await executeReverseShell(input);
|
|
1504
1540
|
break;
|
|
1505
1541
|
// Service Enumeration Tools
|
|
1506
|
-
case
|
|
1542
|
+
case TOOL_NAME.ZONE_TRANSFER:
|
|
1507
1543
|
result = await executeZoneTransfer(input);
|
|
1508
1544
|
break;
|
|
1509
|
-
case
|
|
1545
|
+
case TOOL_NAME.SNMP_WALK:
|
|
1510
1546
|
result = await executeSnmpWalk(input);
|
|
1511
1547
|
break;
|
|
1512
|
-
case
|
|
1548
|
+
case TOOL_NAME.SNMP_CHECK:
|
|
1513
1549
|
result = await executeSnmpCheck(input);
|
|
1514
1550
|
break;
|
|
1515
|
-
case
|
|
1551
|
+
case TOOL_NAME.ONESIXTYONE:
|
|
1516
1552
|
result = await executeOnesixtyone(input);
|
|
1517
1553
|
break;
|
|
1518
|
-
case
|
|
1554
|
+
case TOOL_NAME.FTP_ENUM:
|
|
1519
1555
|
result = await executeFtpEnum(input);
|
|
1520
1556
|
break;
|
|
1521
|
-
case
|
|
1557
|
+
case TOOL_NAME.FTP_ANON:
|
|
1522
1558
|
result = await executeFtpAnon(input);
|
|
1523
1559
|
break;
|
|
1524
|
-
case
|
|
1560
|
+
case TOOL_NAME.NBTSCAN:
|
|
1525
1561
|
result = await executeNbtscan(input);
|
|
1526
1562
|
break;
|
|
1527
|
-
case
|
|
1563
|
+
case TOOL_NAME.RPC_INFO:
|
|
1528
1564
|
result = await executeRpcInfo(input);
|
|
1529
1565
|
break;
|
|
1530
|
-
case
|
|
1566
|
+
case TOOL_NAME.SHOWMOUNT:
|
|
1531
1567
|
result = await executeShowmount(input);
|
|
1532
1568
|
break;
|
|
1533
|
-
case
|
|
1569
|
+
case TOOL_NAME.TELNET:
|
|
1534
1570
|
result = await executeTelnet(input);
|
|
1535
1571
|
break;
|
|
1536
|
-
case
|
|
1572
|
+
case TOOL_NAME.HYDRA:
|
|
1537
1573
|
result = await executeHydra(input);
|
|
1538
1574
|
break;
|
|
1539
1575
|
// report
|
|
1540
|
-
case
|
|
1576
|
+
case TOOL_NAME.REPORT_FINDING:
|
|
1541
1577
|
result = await reportFinding(input);
|
|
1542
1578
|
break;
|
|
1543
|
-
case
|
|
1579
|
+
case TOOL_NAME.TAKE_SCREENSHOT:
|
|
1544
1580
|
result = await takeScreenshot(input);
|
|
1545
1581
|
break;
|
|
1546
1582
|
default:
|