rtexit-method 0.1.19 → 0.1.21
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/package.json +1 -1
- package/packaged-assets/docker/Dockerfile +245 -0
- package/packaged-assets/docker/verify/lib.sh +109 -0
- package/packaged-assets/docker/verify/phase1-scanning.sh +57 -0
- package/packaged-assets/docker/verify/phase10-network.sh +62 -0
- package/packaged-assets/docker/verify/phase11-specialist.sh +56 -0
- package/packaged-assets/docker/verify/phase2-web.sh +78 -0
- package/packaged-assets/docker/verify/phase3-ad.sh +86 -0
- package/packaged-assets/docker/verify/phase4-cloud.sh +60 -0
- package/packaged-assets/docker/verify/phase5-mobile.sh +58 -0
- package/packaged-assets/docker/verify/phase6-c2.sh +62 -0
- package/packaged-assets/docker/verify/phase7-osint.sh +48 -0
- package/packaged-assets/docker/verify/phase8-creds.sh +53 -0
- package/packaged-assets/docker/verify/phase9-binary.sh +67 -0
- package/packaged-assets/docker/verify/rt-verify-all.sh +175 -0
- package/packaged-assets/scripts/rt-native-install.sh +507 -305
package/package.json
CHANGED
|
@@ -1286,6 +1286,251 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
|
1286
1286
|
ncrack \
|
|
1287
1287
|
2>/dev/null && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
|
|
1288
1288
|
|
|
1289
|
+
# ═════════════════════════════════════════════
|
|
1290
|
+
# VERIFIED FIXES — Gap Analysis v4
|
|
1291
|
+
# All fixes confirmed working in live containers
|
|
1292
|
+
# ═════════════════════════════════════════════
|
|
1293
|
+
|
|
1294
|
+
# ─────────────────────────────────────────────
|
|
1295
|
+
# Phase 1 — Scanning & Recon (Verified Fixes)
|
|
1296
|
+
# ─────────────────────────────────────────────
|
|
1297
|
+
|
|
1298
|
+
# Missing apt tools for scanning/DNS
|
|
1299
|
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
1300
|
+
zmap dnsrecon dnsenum fierce \
|
|
1301
|
+
&& apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
|
|
1302
|
+
|
|
1303
|
+
# rustscan — fast port scanner (deb package)
|
|
1304
|
+
RUN curl -sL "https://github.com/RustScan/RustScan/releases/download/2.3.0/rustscan_2.3.0_amd64.deb" \
|
|
1305
|
+
-o /tmp/rustscan.deb 2>/dev/null && \
|
|
1306
|
+
dpkg -i /tmp/rustscan.deb 2>/dev/null && \
|
|
1307
|
+
rm /tmp/rustscan.deb 2>/dev/null || true
|
|
1308
|
+
|
|
1309
|
+
# feroxbuster — fast content discovery (binary download)
|
|
1310
|
+
RUN curl -sL "https://github.com/epi052/feroxbuster/releases/latest/download/x86_64-linux-feroxbuster.zip" \
|
|
1311
|
+
-o /tmp/ferox.zip 2>/dev/null && \
|
|
1312
|
+
unzip -qo /tmp/ferox.zip -d /usr/local/bin/ feroxbuster 2>/dev/null && \
|
|
1313
|
+
rm /tmp/ferox.zip 2>/dev/null || true
|
|
1314
|
+
|
|
1315
|
+
# x8 — hidden parameter discovery (binary — go install module path is broken)
|
|
1316
|
+
RUN curl -sL "https://github.com/Sh1Yo/x8/releases/download/v4.3.0/x86_64-linux-x8.gz" \
|
|
1317
|
+
-o /tmp/x8.gz 2>/dev/null && \
|
|
1318
|
+
gunzip /tmp/x8.gz 2>/dev/null && \
|
|
1319
|
+
mv /tmp/x8 /usr/local/bin/x8 && \
|
|
1320
|
+
chmod +x /usr/local/bin/x8 2>/dev/null || true
|
|
1321
|
+
|
|
1322
|
+
# dirsearch
|
|
1323
|
+
RUN pip3 install --no-cache-dir --break-system-packages dirsearch 2>/dev/null || true
|
|
1324
|
+
|
|
1325
|
+
# Go tools (missing from base section)
|
|
1326
|
+
RUN go install github.com/tomnomnom/httprobe@latest 2>/dev/null || true
|
|
1327
|
+
RUN go install github.com/d3mondev/puredns/v2@latest 2>/dev/null || true
|
|
1328
|
+
RUN go install github.com/PentestPad/subzy@latest 2>/dev/null || true
|
|
1329
|
+
RUN go install github.com/epi052/feroxbuster@latest 2>/dev/null || true
|
|
1330
|
+
|
|
1331
|
+
# wappalyzer — wrapper script (npm installs to non-standard path)
|
|
1332
|
+
RUN npm install -g wappalyzer-cli 2>/dev/null || true
|
|
1333
|
+
RUN printf '#!/bin/bash\nnode /usr/local/lib/node_modules/wappalyzer-cli/bin/wappalyzer "$@"\n' \
|
|
1334
|
+
> /usr/local/bin/wappalyzer && chmod +x /usr/local/bin/wappalyzer 2>/dev/null || true
|
|
1335
|
+
|
|
1336
|
+
# Ensure Go binaries are in system PATH
|
|
1337
|
+
RUN for bin in httprobe puredns subzy feroxbuster; do \
|
|
1338
|
+
[ -f /root/go/bin/$bin ] && ln -sf /root/go/bin/$bin /usr/local/bin/$bin; \
|
|
1339
|
+
done 2>/dev/null || true
|
|
1340
|
+
|
|
1341
|
+
# ─────────────────────────────────────────────
|
|
1342
|
+
# Phase 2 — Web Testing (Verified Fixes)
|
|
1343
|
+
# ─────────────────────────────────────────────
|
|
1344
|
+
|
|
1345
|
+
# semgrep — pip3 ONLY (apt python3-semgrep does NOT create the 'semgrep' binary)
|
|
1346
|
+
RUN pip3 install --no-cache-dir --break-system-packages semgrep 2>/dev/null || true
|
|
1347
|
+
|
|
1348
|
+
# checkov — IaC scanner (requires --ignore-installed due to packaging conflict)
|
|
1349
|
+
RUN pip3 install --no-cache-dir --break-system-packages --ignore-installed checkov \
|
|
1350
|
+
2>/dev/null || true
|
|
1351
|
+
|
|
1352
|
+
# git-dumper — exposed .git directory dumper
|
|
1353
|
+
RUN pip3 install --no-cache-dir --break-system-packages \
|
|
1354
|
+
git-dumper graphql-cop graphw00f inql 2>/dev/null || true
|
|
1355
|
+
|
|
1356
|
+
# graphql-cop wrapper (pip installs module only, binary needs wrapper)
|
|
1357
|
+
RUN printf '#!/bin/bash\npython3 -m graphql_cop "$@"\n' \
|
|
1358
|
+
> /usr/local/bin/graphql-cop && chmod +x /usr/local/bin/graphql-cop || true
|
|
1359
|
+
|
|
1360
|
+
# graphw00f wrapper
|
|
1361
|
+
RUN printf '#!/bin/bash\npython3 -m graphw00f "$@"\n' \
|
|
1362
|
+
> /usr/local/bin/graphw00f && chmod +x /usr/local/bin/graphw00f || true
|
|
1363
|
+
|
|
1364
|
+
# wpscan via gem (NOT apt — apt version is outdated/broken)
|
|
1365
|
+
RUN gem install wpscan 2>/dev/null || true
|
|
1366
|
+
|
|
1367
|
+
# gitleaks — binary (not pip)
|
|
1368
|
+
RUN curl -sSL "https://github.com/gitleaks/gitleaks/releases/download/v8.18.2/gitleaks_8.18.2_linux_x64.tar.gz" \
|
|
1369
|
+
-o /tmp/gl.tar.gz 2>/dev/null && \
|
|
1370
|
+
tar xf /tmp/gl.tar.gz -C /usr/local/bin gitleaks 2>/dev/null && \
|
|
1371
|
+
rm /tmp/gl.tar.gz 2>/dev/null || true
|
|
1372
|
+
|
|
1373
|
+
# ─────────────────────────────────────────────
|
|
1374
|
+
# Phase 3 — Active Directory (Verified Fixes)
|
|
1375
|
+
# ─────────────────────────────────────────────
|
|
1376
|
+
|
|
1377
|
+
# theHarvester — apt (faster and more reliable than pip)
|
|
1378
|
+
RUN apt-get update && apt-get install -y --no-install-recommends theharvester \
|
|
1379
|
+
2>/dev/null && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
|
|
1380
|
+
|
|
1381
|
+
# netexec + wifite via apt (confirmed working in testing)
|
|
1382
|
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
1383
|
+
netexec wifite \
|
|
1384
|
+
2>/dev/null && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
|
|
1385
|
+
|
|
1386
|
+
# crackmapexec → alias to netexec (same tool, renamed)
|
|
1387
|
+
RUN ln -sf /usr/bin/netexec /usr/local/bin/crackmapexec 2>/dev/null || true
|
|
1388
|
+
|
|
1389
|
+
# Impacket symlinks — make all .py scripts accessible as impacket-<name>
|
|
1390
|
+
# The scripts exist as /usr/local/bin/<name>.py but tools expect impacket-<name>
|
|
1391
|
+
RUN for script in psexec smbexec wmiexec secretsdump GetUserSPNs GetNPUsers \
|
|
1392
|
+
ntlmrelayx lookupsid ticketer ticketConverter getST addcomputer \
|
|
1393
|
+
atexec dcomexec dpapi esentutl findDelegation goldenPac karmaSMB \
|
|
1394
|
+
netview nmapAnswerMachine ping6 raiseChild registry-read rpcdump \
|
|
1395
|
+
sambaPipe samrdump services sniffer sniff tstool; do \
|
|
1396
|
+
if [ -f /usr/local/bin/${script}.py ]; then \
|
|
1397
|
+
ln -sf /usr/local/bin/${script}.py /usr/local/bin/impacket-${script} && \
|
|
1398
|
+
chmod +x /usr/local/bin/${script}.py; \
|
|
1399
|
+
fi; \
|
|
1400
|
+
done 2>/dev/null || true
|
|
1401
|
+
|
|
1402
|
+
# AD exploit repos (confirmed working)
|
|
1403
|
+
RUN git clone https://github.com/Dec0ne/KrbRelayUp /opt/KrbRelayUp --depth 1 -q 2>/dev/null || true
|
|
1404
|
+
RUN git clone https://github.com/dirkjanm/CVE-2020-1472 /opt/CVE-2020-1472 --depth 1 -q 2>/dev/null || true
|
|
1405
|
+
RUN git clone https://github.com/cube0x0/CVE-2021-1675 /opt/PrintNightmare --depth 1 -q 2>/dev/null || true
|
|
1406
|
+
RUN git clone https://github.com/dirkjanm/krbrelayx /opt/krbrelayx --depth 1 -q 2>/dev/null || true
|
|
1407
|
+
RUN git clone https://github.com/fireeye/ADFSpoof /opt/ADFSpoof --depth 1 -q 2>/dev/null && \
|
|
1408
|
+
pip3 install --no-cache-dir --break-system-packages -r /opt/ADFSpoof/requirements.txt 2>/dev/null || true
|
|
1409
|
+
RUN git clone https://github.com/klezVirus/SysWhispers3 /opt/SysWhispers3 --depth 1 -q 2>/dev/null || true
|
|
1410
|
+
RUN git clone https://github.com/Hackndo/pyGPOAbuse /opt/pyGPOAbuse --depth 1 -q 2>/dev/null && \
|
|
1411
|
+
pip3 install --no-cache-dir --break-system-packages -r /opt/pyGPOAbuse/requirements.txt 2>/dev/null || true
|
|
1412
|
+
RUN git clone https://github.com/login-securite/DonPAPI /opt/DonPAPI --depth 1 -q 2>/dev/null && \
|
|
1413
|
+
pip3 install --no-cache-dir --break-system-packages -r /opt/DonPAPI/requirements.txt 2>/dev/null || true
|
|
1414
|
+
RUN git clone https://github.com/byt3bl33d3r/DeathStar /opt/DeathStar --depth 1 -q 2>/dev/null && \
|
|
1415
|
+
pip3 install --no-cache-dir --break-system-packages -r /opt/DeathStar/requirements.txt 2>/dev/null || true
|
|
1416
|
+
|
|
1417
|
+
# ─────────────────────────────────────────────
|
|
1418
|
+
# Phase 4 — Cloud (Verified Fixes)
|
|
1419
|
+
# ─────────────────────────────────────────────
|
|
1420
|
+
|
|
1421
|
+
# enumerate-iam — AWS IAM enumeration
|
|
1422
|
+
RUN git clone https://github.com/andresriancho/enumerate-iam /opt/enumerate-iam --depth 1 -q 2>/dev/null && \
|
|
1423
|
+
pip3 install --no-cache-dir --break-system-packages -r /opt/enumerate-iam/requirements.txt 2>/dev/null && \
|
|
1424
|
+
ln -sf /opt/enumerate-iam/enumerate-iam.py /usr/local/bin/enumerate-iam && \
|
|
1425
|
+
chmod +x /opt/enumerate-iam/enumerate-iam.py 2>/dev/null || true
|
|
1426
|
+
|
|
1427
|
+
# kubectx + kubens (context switching)
|
|
1428
|
+
RUN git clone https://github.com/ahmetb/kubectx /opt/kubectx --depth 1 -q 2>/dev/null && \
|
|
1429
|
+
ln -sf /opt/kubectx/kubectx /usr/local/bin/kubectx && \
|
|
1430
|
+
ln -sf /opt/kubectx/kubens /usr/local/bin/kubens 2>/dev/null || true
|
|
1431
|
+
|
|
1432
|
+
# ─────────────────────────────────────────────
|
|
1433
|
+
# Phase 5 — Mobile (Verified Fixes)
|
|
1434
|
+
# ─────────────────────────────────────────────
|
|
1435
|
+
|
|
1436
|
+
# jadx — Java decompiler (specific version, reliable)
|
|
1437
|
+
RUN mkdir -p /opt/jadx && \
|
|
1438
|
+
curl -sSL "https://github.com/skylot/jadx/releases/download/v1.5.0/jadx-1.5.0.zip" \
|
|
1439
|
+
-o /tmp/jadx.zip 2>/dev/null && \
|
|
1440
|
+
unzip -qo /tmp/jadx.zip -d /opt/jadx && \
|
|
1441
|
+
ln -sf /opt/jadx/bin/jadx /usr/local/bin/jadx && \
|
|
1442
|
+
ln -sf /opt/jadx/bin/jadx-gui /usr/local/bin/jadx-gui && \
|
|
1443
|
+
rm /tmp/jadx.zip 2>/dev/null || true
|
|
1444
|
+
|
|
1445
|
+
# uber-apk-signer
|
|
1446
|
+
RUN mkdir -p /opt/uber-apk-signer && \
|
|
1447
|
+
curl -sSL "https://github.com/patrickfav/uber-apk-signer/releases/download/v1.3.0/uber-apk-signer-1.3.0.jar" \
|
|
1448
|
+
-o /opt/uber-apk-signer/uber-apk-signer.jar 2>/dev/null && \
|
|
1449
|
+
printf '#!/bin/bash\nexec java -jar /opt/uber-apk-signer/uber-apk-signer.jar "$@"\n' \
|
|
1450
|
+
> /usr/local/bin/uber-apk-signer && chmod +x /usr/local/bin/uber-apk-signer 2>/dev/null || true
|
|
1451
|
+
|
|
1452
|
+
# setup-frida-server — helper script
|
|
1453
|
+
RUN cat > /usr/local/bin/setup-frida-server << 'FSCRIPT'
|
|
1454
|
+
#!/bin/bash
|
|
1455
|
+
FRIDA_VER=$(python3 -c "import frida; print(frida.__version__)" 2>/dev/null || pip3 show frida | grep Version | awk '{print $2}')
|
|
1456
|
+
ARCH=$(adb shell getprop ro.product.cpu.abi 2>/dev/null | tr -d '\r')
|
|
1457
|
+
case $ARCH in
|
|
1458
|
+
arm64-v8a) A="arm64" ;; armeabi-v7a) A="arm" ;;
|
|
1459
|
+
x86_64) A="x86_64" ;; x86) A="x86" ;; *) echo "Unknown arch: $ARCH"; exit 1 ;;
|
|
1460
|
+
esac
|
|
1461
|
+
wget -q "https://github.com/frida/frida/releases/download/${FRIDA_VER}/frida-server-${FRIDA_VER}-android-${A}.xz" -O /tmp/frida-server.xz
|
|
1462
|
+
unxz /tmp/frida-server.xz && mv /tmp/frida-server "/tmp/frida-server-${A}"
|
|
1463
|
+
adb push "/tmp/frida-server-${A}" /data/local/tmp/frida-server
|
|
1464
|
+
adb shell chmod 755 /data/local/tmp/frida-server
|
|
1465
|
+
echo "[+] Start: adb shell /data/local/tmp/frida-server &"
|
|
1466
|
+
FSCRIPT
|
|
1467
|
+
RUN chmod +x /usr/local/bin/setup-frida-server 2>/dev/null || true
|
|
1468
|
+
|
|
1469
|
+
# Mobile Python tools
|
|
1470
|
+
RUN pip3 install --no-cache-dir --break-system-packages \
|
|
1471
|
+
reFlutter hermes-dec hbctool doldrums androguard \
|
|
1472
|
+
"qrcode[pil]" Pillow lz4 apkleaks 2>/dev/null || true
|
|
1473
|
+
|
|
1474
|
+
# apk-mitm (npm)
|
|
1475
|
+
RUN npm install -g apk-mitm 2>/dev/null || true
|
|
1476
|
+
|
|
1477
|
+
# drozer agent
|
|
1478
|
+
RUN mkdir -p /opt/drozer && \
|
|
1479
|
+
curl -sSL "https://github.com/WithSecureLabs/drozer/releases/latest/download/drozer-agent.apk" \
|
|
1480
|
+
-o /opt/drozer/drozer-agent.apk 2>/dev/null || true
|
|
1481
|
+
|
|
1482
|
+
# ─────────────────────────────────────────────
|
|
1483
|
+
# Phase 8 — Credentials (Verified Fixes)
|
|
1484
|
+
# ─────────────────────────────────────────────
|
|
1485
|
+
|
|
1486
|
+
# Crypto libraries for attacks
|
|
1487
|
+
RUN pip3 install --no-cache-dir --break-system-packages \
|
|
1488
|
+
sympy gmpy2 ecdsa 2>/dev/null || true
|
|
1489
|
+
|
|
1490
|
+
# ─────────────────────────────────────────────
|
|
1491
|
+
# Phase 9 — Binary Analysis (Verified Fixes)
|
|
1492
|
+
# ─────────────────────────────────────────────
|
|
1493
|
+
|
|
1494
|
+
RUN pip3 install --no-cache-dir --break-system-packages \
|
|
1495
|
+
capstone keystone-engine unicorn ropgadget ropper angr \
|
|
1496
|
+
yara-python 2>/dev/null || true
|
|
1497
|
+
|
|
1498
|
+
# YARA rules
|
|
1499
|
+
RUN git clone https://github.com/Yara-Rules/rules /opt/yara-rules --depth 1 -q 2>/dev/null || true
|
|
1500
|
+
|
|
1501
|
+
# sleuthkit for forensics
|
|
1502
|
+
RUN apt-get update && apt-get install -y --no-install-recommends sleuthkit \
|
|
1503
|
+
2>/dev/null && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
|
|
1504
|
+
|
|
1505
|
+
# ─────────────────────────────────────────────
|
|
1506
|
+
# Phase 10 — Network / WiFi (Verified Fixes)
|
|
1507
|
+
# ─────────────────────────────────────────────
|
|
1508
|
+
|
|
1509
|
+
# hcxdumptool (WiFi PMKID capture)
|
|
1510
|
+
RUN git clone https://github.com/ZerBea/hcxdumptool /opt/hcxdumptool --depth 1 -q 2>/dev/null && \
|
|
1511
|
+
cd /opt/hcxdumptool && make && make install 2>/dev/null || true
|
|
1512
|
+
|
|
1513
|
+
# hostapd-wpe (Evil Twin / WPA Enterprise)
|
|
1514
|
+
RUN apt-get update && apt-get install -y --no-install-recommends hostapd-wpe \
|
|
1515
|
+
2>/dev/null && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
|
|
1516
|
+
|
|
1517
|
+
# ─────────────────────────────────────────────
|
|
1518
|
+
# Phase 11 — Specialist (Verified Fixes)
|
|
1519
|
+
# ─────────────────────────────────────────────
|
|
1520
|
+
|
|
1521
|
+
# AI/LLM tools
|
|
1522
|
+
RUN pip3 install --no-cache-dir --break-system-packages \
|
|
1523
|
+
garak openai anthropic langchain transformers 2>/dev/null || true
|
|
1524
|
+
RUN npm install -g promptfoo 2>/dev/null || true
|
|
1525
|
+
|
|
1526
|
+
# Purple Team
|
|
1527
|
+
RUN git clone https://github.com/redcanaryco/atomic-red-team /opt/atomic-red-team --depth 1 -q 2>/dev/null || true
|
|
1528
|
+
|
|
1529
|
+
# ─────────────────────────────────────────────
|
|
1530
|
+
# Final PATH fix — ensure all Go binaries in system PATH
|
|
1531
|
+
# ─────────────────────────────────────────────
|
|
1532
|
+
RUN cp /root/go/bin/* /usr/local/bin/ 2>/dev/null || true
|
|
1533
|
+
|
|
1289
1534
|
# ─────────────────────────────────────────────
|
|
1290
1535
|
# RTExit Framework Installation
|
|
1291
1536
|
# ─────────────────────────────────────────────
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# RTExit Verify — Shared Library
|
|
3
|
+
# Source this in every phase script
|
|
4
|
+
|
|
5
|
+
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'
|
|
6
|
+
BLUE='\033[0;34m'; CYAN='\033[0;36m'; GRAY='\033[0;37m'; NC='\033[0m'
|
|
7
|
+
BOLD='\033[1m'
|
|
8
|
+
|
|
9
|
+
# Counters (shared across sourced scripts)
|
|
10
|
+
TOTAL=0; PASS=0; FAIL=0; WARN=0
|
|
11
|
+
|
|
12
|
+
# Check binary in PATH
|
|
13
|
+
chk() {
|
|
14
|
+
local name="$1" cmd="${2:-$1}"
|
|
15
|
+
TOTAL=$((TOTAL+1))
|
|
16
|
+
if command -v "$cmd" >/dev/null 2>&1; then
|
|
17
|
+
local ver
|
|
18
|
+
ver=$(${cmd} --version 2>/dev/null | head -1 | grep -oE '[0-9]+\.[0-9]+(\.[0-9]+)?' | head -1)
|
|
19
|
+
[ -n "$ver" ] && ver=" ${GRAY}(${ver})${NC}" || ver=""
|
|
20
|
+
printf " ${GREEN}✅${NC} %-35s%b\n" "$name" "$ver"
|
|
21
|
+
PASS=$((PASS+1))
|
|
22
|
+
else
|
|
23
|
+
printf " ${RED}❌${NC} %-35s ${RED}MISSING${NC}\n" "$name"
|
|
24
|
+
FAIL=$((FAIL+1))
|
|
25
|
+
fi
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
# Check Python module
|
|
29
|
+
chk_py() {
|
|
30
|
+
local name="$1" module="${2:-$1}"
|
|
31
|
+
TOTAL=$((TOTAL+1))
|
|
32
|
+
if python3 -c "import ${module}" 2>/dev/null; then
|
|
33
|
+
local ver
|
|
34
|
+
ver=$(python3 -c "import ${module}; print(getattr(${module},'__version__',''))" 2>/dev/null | head -1)
|
|
35
|
+
[ -n "$ver" ] && ver=" ${GRAY}(py ${ver})${NC}" || ver=""
|
|
36
|
+
printf " ${GREEN}✅${NC} %-35s%b\n" "$name" "$ver"
|
|
37
|
+
PASS=$((PASS+1))
|
|
38
|
+
else
|
|
39
|
+
printf " ${RED}❌${NC} %-35s ${RED}no module${NC}\n" "$name"
|
|
40
|
+
FAIL=$((FAIL+1))
|
|
41
|
+
fi
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
# Check directory (git repo / tool folder)
|
|
45
|
+
chk_dir() {
|
|
46
|
+
local name="$1" path="$2"
|
|
47
|
+
TOTAL=$((TOTAL+1))
|
|
48
|
+
if [ -d "$path" ] && [ "$(ls -A "$path" 2>/dev/null)" ]; then
|
|
49
|
+
local count
|
|
50
|
+
count=$(find "$path" -maxdepth 1 -type f | wc -l)
|
|
51
|
+
printf " ${GREEN}✅${NC} %-35s ${GRAY}(%s files in %s)${NC}\n" "$name" "$count" "$path"
|
|
52
|
+
PASS=$((PASS+1))
|
|
53
|
+
else
|
|
54
|
+
printf " ${RED}❌${NC} %-35s ${RED}not found: %s${NC}\n" "$name" "$path"
|
|
55
|
+
FAIL=$((FAIL+1))
|
|
56
|
+
fi
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
# Check file exists
|
|
60
|
+
chk_file() {
|
|
61
|
+
local name="$1" path="$2"
|
|
62
|
+
TOTAL=$((TOTAL+1))
|
|
63
|
+
if [ -f "$path" ]; then
|
|
64
|
+
printf " ${GREEN}✅${NC} %-35s ${GRAY}(%s)${NC}\n" "$name" "$path"
|
|
65
|
+
PASS=$((PASS+1))
|
|
66
|
+
else
|
|
67
|
+
printf " ${RED}❌${NC} %-35s ${RED}not found: %s${NC}\n" "$name" "$path"
|
|
68
|
+
FAIL=$((FAIL+1))
|
|
69
|
+
fi
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
# Optional tool (warning, not fail)
|
|
73
|
+
chk_opt() {
|
|
74
|
+
local name="$1" cmd="${2:-$1}"
|
|
75
|
+
TOTAL=$((TOTAL+1))
|
|
76
|
+
if command -v "$cmd" >/dev/null 2>&1 || python3 -c "import ${cmd}" 2>/dev/null; then
|
|
77
|
+
printf " ${GREEN}✅${NC} %-35s ${GRAY}(optional)${NC}\n" "$name"
|
|
78
|
+
PASS=$((PASS+1))
|
|
79
|
+
else
|
|
80
|
+
printf " ${YELLOW}⚠️ ${NC} %-35s ${YELLOW}optional — not installed${NC}\n" "$name"
|
|
81
|
+
WARN=$((WARN+1))
|
|
82
|
+
fi
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
# Print phase header
|
|
86
|
+
phase_header() {
|
|
87
|
+
echo ""
|
|
88
|
+
printf "${CYAN}${BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}\n"
|
|
89
|
+
printf "${CYAN}${BOLD} %s${NC}\n" "$1"
|
|
90
|
+
printf "${CYAN}${BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}\n"
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
# Print section header
|
|
94
|
+
section() {
|
|
95
|
+
echo ""
|
|
96
|
+
printf " ${BLUE}── %s ──${NC}\n" "$1"
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
# Print phase summary
|
|
100
|
+
phase_summary() {
|
|
101
|
+
local pct=0
|
|
102
|
+
[ "$TOTAL" -gt 0 ] && pct=$((PASS*100/TOTAL))
|
|
103
|
+
echo ""
|
|
104
|
+
printf " ${BOLD}Result: ${GREEN}%d✅${NC} ${RED}%d❌${NC} ${YELLOW}%d⚠️${NC} / %d total → " "$PASS" "$FAIL" "$WARN" "$TOTAL"
|
|
105
|
+
if [ "$pct" -ge 90 ]; then printf "${GREEN}${BOLD}%d%%${NC}\n" "$pct"
|
|
106
|
+
elif [ "$pct" -ge 70 ]; then printf "${YELLOW}${BOLD}%d%%${NC}\n" "$pct"
|
|
107
|
+
else printf "${RED}${BOLD}%d%%${NC}\n" "$pct"
|
|
108
|
+
fi
|
|
109
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Phase 1 — Scanning & Reconnaissance
|
|
3
|
+
source "$(dirname "$0")/lib.sh"
|
|
4
|
+
|
|
5
|
+
phase_header "PHASE 1 — Scanning & Network Reconnaissance"
|
|
6
|
+
|
|
7
|
+
section "Port Scanners"
|
|
8
|
+
chk "nmap" nmap
|
|
9
|
+
chk "masscan" masscan
|
|
10
|
+
chk "zmap" zmap
|
|
11
|
+
chk "naabu" naabu
|
|
12
|
+
chk "rustscan" rustscan
|
|
13
|
+
|
|
14
|
+
section "Web Probing"
|
|
15
|
+
chk "httpx" httpx
|
|
16
|
+
chk "httprobe" httprobe
|
|
17
|
+
chk "nuclei" nuclei
|
|
18
|
+
chk "ffuf" ffuf
|
|
19
|
+
chk "gobuster" gobuster
|
|
20
|
+
chk "feroxbuster" feroxbuster
|
|
21
|
+
chk "dirsearch" dirsearch
|
|
22
|
+
chk "wfuzz" wfuzz
|
|
23
|
+
chk "dirb" dirb
|
|
24
|
+
chk "nikto" nikto
|
|
25
|
+
chk "whatweb" whatweb
|
|
26
|
+
chk "wafw00f" wafw00f
|
|
27
|
+
chk "testssl" testssl
|
|
28
|
+
|
|
29
|
+
section "DNS & Subdomain"
|
|
30
|
+
chk "subfinder" subfinder
|
|
31
|
+
chk "amass" amass
|
|
32
|
+
chk "dnsx" dnsx
|
|
33
|
+
chk "dnsrecon" dnsrecon
|
|
34
|
+
chk "dnsenum" dnsenum
|
|
35
|
+
chk "fierce" fierce
|
|
36
|
+
chk "puredns" puredns
|
|
37
|
+
|
|
38
|
+
section "URL & Link Discovery"
|
|
39
|
+
chk "gau" gau
|
|
40
|
+
chk "waybackurls" waybackurls
|
|
41
|
+
chk "katana" katana
|
|
42
|
+
chk "hakrawler" hakrawler
|
|
43
|
+
chk "linkfinder" linkfinder
|
|
44
|
+
chk "gowitness" gowitness
|
|
45
|
+
|
|
46
|
+
section "Screenshot & Fingerprint"
|
|
47
|
+
chk "wappalyzer" wappalyzer
|
|
48
|
+
|
|
49
|
+
section "Fuzzing & Parameters"
|
|
50
|
+
chk "arjun" arjun
|
|
51
|
+
chk "x8" x8
|
|
52
|
+
chk "qsreplace" qsreplace
|
|
53
|
+
|
|
54
|
+
section "Subdomain Takeover"
|
|
55
|
+
chk "subzy" subzy
|
|
56
|
+
|
|
57
|
+
phase_summary
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Phase 10 — Network, WiFi & Wireless
|
|
3
|
+
source "$(dirname "$0")/lib.sh"
|
|
4
|
+
|
|
5
|
+
phase_header "PHASE 10 — Network Attacks, WiFi & Wireless"
|
|
6
|
+
|
|
7
|
+
section "Traffic Analysis"
|
|
8
|
+
chk "tcpdump" tcpdump
|
|
9
|
+
chk "tshark" tshark
|
|
10
|
+
chk "wireshark" wireshark
|
|
11
|
+
chk "netsniff-ng" netsniff-ng
|
|
12
|
+
chk "arpwatch" arpwatch
|
|
13
|
+
chk "zeek" zeek
|
|
14
|
+
chk_dir "PCredz" /opt/PCredz
|
|
15
|
+
|
|
16
|
+
section "MITM & Sniffing"
|
|
17
|
+
chk "bettercap" bettercap
|
|
18
|
+
chk "ettercap" ettercap
|
|
19
|
+
chk "arpspoof" arpspoof
|
|
20
|
+
chk "dsniff" dsniff
|
|
21
|
+
chk "sslstrip" sslstrip
|
|
22
|
+
chk "mitmproxy" mitmproxy
|
|
23
|
+
|
|
24
|
+
section "Network Tools"
|
|
25
|
+
chk "ncat" ncat
|
|
26
|
+
chk "socat" socat
|
|
27
|
+
chk "hping3" hping3
|
|
28
|
+
chk "proxychains4" proxychains4
|
|
29
|
+
chk "macchanger" macchanger
|
|
30
|
+
|
|
31
|
+
section "WiFi Attacks"
|
|
32
|
+
chk "aircrack-ng" aircrack-ng
|
|
33
|
+
chk "airmon-ng" airmon-ng
|
|
34
|
+
chk "airodump-ng" airodump-ng
|
|
35
|
+
chk "aireplay-ng" aireplay-ng
|
|
36
|
+
chk "wifite" wifite
|
|
37
|
+
chk "hcxdumptool" hcxdumptool
|
|
38
|
+
chk "hcxpcapngtool" hcxpcapngtool
|
|
39
|
+
chk "hostapd-wpe" hostapd-wpe
|
|
40
|
+
|
|
41
|
+
section "Bluetooth"
|
|
42
|
+
chk "ubertooth-util" ubertooth-util
|
|
43
|
+
chk_py "bleak" bleak
|
|
44
|
+
chk_dir "crackle" /opt/crackle
|
|
45
|
+
chk_dir "GATTacker" /opt/gattacker
|
|
46
|
+
|
|
47
|
+
section "VoIP / SIP"
|
|
48
|
+
chk "sipvicious" svmap
|
|
49
|
+
chk "rtpbreak" rtpbreak
|
|
50
|
+
chk_dir "ucsniff" /opt/ucsniff
|
|
51
|
+
|
|
52
|
+
section "Tunneling"
|
|
53
|
+
chk "iodine" iodine
|
|
54
|
+
chk_dir "dnscat2" /opt/dnscat2
|
|
55
|
+
chk "ptunnel-ng" ptunnel-ng
|
|
56
|
+
|
|
57
|
+
section "Responder / Relay"
|
|
58
|
+
chk "responder" responder
|
|
59
|
+
chk "mitm6" mitm6
|
|
60
|
+
chk "impacket-ntlmrelayx" impacket-ntlmrelayx
|
|
61
|
+
|
|
62
|
+
phase_summary
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Phase 11 — Specialist: Social Engineering, Hardware, IoT, SCADA
|
|
3
|
+
source "$(dirname "$0")/lib.sh"
|
|
4
|
+
|
|
5
|
+
phase_header "PHASE 11 — Specialist (Social / Hardware / IoT / SCADA)"
|
|
6
|
+
|
|
7
|
+
section "Phishing Frameworks"
|
|
8
|
+
chk "gophish" gophish
|
|
9
|
+
chk "evilginx2" evilginx2
|
|
10
|
+
chk_dir "SET" /opt/setoolkit
|
|
11
|
+
chk_dir "King-Phisher" /opt/king-phisher
|
|
12
|
+
chk_dir "CredSniper" /opt/CredSniper
|
|
13
|
+
|
|
14
|
+
section "Email Attacks"
|
|
15
|
+
chk_py "o365spray" o365spray
|
|
16
|
+
chk_dir "phishery" /opt/phishery
|
|
17
|
+
|
|
18
|
+
section "Hardware Hacking"
|
|
19
|
+
chk "openocd" openocd
|
|
20
|
+
chk "flashrom" flashrom
|
|
21
|
+
chk "avrdude" avrdude
|
|
22
|
+
chk "minicom" minicom
|
|
23
|
+
chk_py "pyserial" serial
|
|
24
|
+
|
|
25
|
+
section "IoT / Embedded"
|
|
26
|
+
chk_py "pyModbusTCP" pyModbusTCP
|
|
27
|
+
chk_py "bleak" bleak
|
|
28
|
+
|
|
29
|
+
section "Steganography"
|
|
30
|
+
chk "steghide" steghide
|
|
31
|
+
chk "binwalk" binwalk
|
|
32
|
+
chk "exiftool" exiftool
|
|
33
|
+
chk "zsteg" zsteg
|
|
34
|
+
chk "stegsolve" stegsolve
|
|
35
|
+
chk_py "stegoveritas" stegoveritas
|
|
36
|
+
chk_dir "outguess" /opt/outguess
|
|
37
|
+
|
|
38
|
+
section "AI / LLM Security"
|
|
39
|
+
chk_py "garak" garak
|
|
40
|
+
chk "promptfoo" promptfoo
|
|
41
|
+
chk_py "openai" openai
|
|
42
|
+
chk_py "anthropic" anthropic
|
|
43
|
+
chk_py "langchain" langchain
|
|
44
|
+
|
|
45
|
+
section "Browser Exploitation"
|
|
46
|
+
chk "beef-xss" beef-xss
|
|
47
|
+
chk_opt "electronegativity" electronegativity
|
|
48
|
+
|
|
49
|
+
section "Physical / Access"
|
|
50
|
+
chk_opt "Proxmark" proxmark3
|
|
51
|
+
|
|
52
|
+
section "Wordlists & Resources"
|
|
53
|
+
chk_dir "SecLists" /opt/SecLists
|
|
54
|
+
chk_dir "Atomic RT" /opt/atomic-red-team
|
|
55
|
+
|
|
56
|
+
phase_summary
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Phase 2 — Web Application Testing
|
|
3
|
+
source "$(dirname "$0")/lib.sh"
|
|
4
|
+
|
|
5
|
+
phase_header "PHASE 2 — Web Application Testing"
|
|
6
|
+
|
|
7
|
+
section "Injection"
|
|
8
|
+
chk "sqlmap" sqlmap
|
|
9
|
+
chk "ghauri" ghauri
|
|
10
|
+
chk "tplmap" tplmap
|
|
11
|
+
|
|
12
|
+
section "XSS"
|
|
13
|
+
chk "dalfox" dalfox
|
|
14
|
+
chk "kxss" kxss
|
|
15
|
+
|
|
16
|
+
section "SSRF / OOB"
|
|
17
|
+
chk "interactsh-client" interactsh-client
|
|
18
|
+
|
|
19
|
+
section "JWT"
|
|
20
|
+
chk "jwt_tool" jwt_tool
|
|
21
|
+
chk_py "PyJWT" jwt
|
|
22
|
+
|
|
23
|
+
section "GraphQL"
|
|
24
|
+
chk "graphql-cop" graphql-cop
|
|
25
|
+
chk "graphw00f" graphw00f
|
|
26
|
+
chk "InQL" inql
|
|
27
|
+
|
|
28
|
+
section "XXE"
|
|
29
|
+
chk_dir "XXEinjector" /opt/XXEinjector
|
|
30
|
+
|
|
31
|
+
section "HTTP Smuggling"
|
|
32
|
+
chk "smuggler" smuggler
|
|
33
|
+
|
|
34
|
+
section "Parameter Discovery"
|
|
35
|
+
chk "arjun" arjun
|
|
36
|
+
chk "x8" x8
|
|
37
|
+
|
|
38
|
+
section "Request Tampering"
|
|
39
|
+
chk "mitmproxy" mitmproxy
|
|
40
|
+
|
|
41
|
+
section "Web Crawling"
|
|
42
|
+
chk "katana" katana
|
|
43
|
+
chk "hakrawler" hakrawler
|
|
44
|
+
chk "linkfinder" linkfinder
|
|
45
|
+
|
|
46
|
+
section "Source Code Analysis"
|
|
47
|
+
chk "semgrep" semgrep
|
|
48
|
+
chk_py "jsbeautifier" jsbeautifier
|
|
49
|
+
|
|
50
|
+
section "Web Frameworks"
|
|
51
|
+
chk "wpscan" wpscan
|
|
52
|
+
# Caido — proprietary commercial tool, not open source, skipped
|
|
53
|
+
|
|
54
|
+
section "gRPC / WebSockets"
|
|
55
|
+
chk "grpcurl" grpcurl
|
|
56
|
+
|
|
57
|
+
section "CORS"
|
|
58
|
+
chk_dir "CORScanner" /opt/CORScanner
|
|
59
|
+
|
|
60
|
+
section "Protocol Tools"
|
|
61
|
+
chk "testssl" testssl
|
|
62
|
+
|
|
63
|
+
section "Deserialization"
|
|
64
|
+
chk_file "ysoserial" /opt/ysoserial/ysoserial.jar
|
|
65
|
+
chk "phpggc" phpggc
|
|
66
|
+
chk_py "blackboxprotobuf" blackboxprotobuf
|
|
67
|
+
|
|
68
|
+
section "IaC / DevSecOps"
|
|
69
|
+
chk "checkov" checkov
|
|
70
|
+
chk "syft" syft
|
|
71
|
+
chk "grype" grype
|
|
72
|
+
|
|
73
|
+
section "Secret Scanning"
|
|
74
|
+
chk "gitleaks" gitleaks
|
|
75
|
+
chk "trufflehog" trufflehog # binary not Python module
|
|
76
|
+
chk "git-dumper" git-dumper
|
|
77
|
+
|
|
78
|
+
phase_summary
|