rtexit-method 0.1.0 → 0.1.1
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 +2 -5
- package/packaged-assets/.agents/skills/rt-active-recon/SKILL.md +767 -0
- package/packaged-assets/.agents/skills/rt-active-recon/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-agent-breaker/SKILL.md +65 -0
- package/packaged-assets/.agents/skills/rt-agent-breaker/customize.toml +76 -0
- package/packaged-assets/.agents/skills/rt-agent-commander/SKILL.md +63 -0
- package/packaged-assets/.agents/skills/rt-agent-commander/customize.toml +67 -0
- package/packaged-assets/.agents/skills/rt-agent-ghost/SKILL.md +65 -0
- package/packaged-assets/.agents/skills/rt-agent-ghost/customize.toml +77 -0
- package/packaged-assets/.agents/skills/rt-agent-navigator/SKILL.md +62 -0
- package/packaged-assets/.agents/skills/rt-agent-navigator/customize.toml +61 -0
- package/packaged-assets/.agents/skills/rt-agent-phantom/SKILL.md +62 -0
- package/packaged-assets/.agents/skills/rt-agent-phantom/customize.toml +62 -0
- package/packaged-assets/.agents/skills/rt-agent-scout/SKILL.md +62 -0
- package/packaged-assets/.agents/skills/rt-agent-scout/customize.toml +61 -0
- package/packaged-assets/.agents/skills/rt-agent-scribe/SKILL.md +65 -0
- package/packaged-assets/.agents/skills/rt-agent-scribe/customize.toml +77 -0
- package/packaged-assets/.agents/skills/rt-attack-chain-builder/SKILL.md +476 -0
- package/packaged-assets/.agents/skills/rt-attack-chain-builder/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-attack-surface-map/SKILL.md +1209 -0
- package/packaged-assets/.agents/skills/rt-attack-surface-map/template.md +62 -0
- package/packaged-assets/.agents/skills/rt-autodoc/SKILL.md +258 -0
- package/packaged-assets/.agents/skills/rt-c2-operations/SKILL.md +1072 -0
- package/packaged-assets/.agents/skills/rt-c2-operations/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-compliance-mapper/SKILL.md +773 -0
- package/packaged-assets/.agents/skills/rt-create-sead/SKILL.md +74 -0
- package/packaged-assets/.agents/skills/rt-create-sead/template.md +89 -0
- package/packaged-assets/.agents/skills/rt-create-sead/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-credential-access/SKILL.md +756 -0
- package/packaged-assets/.agents/skills/rt-credential-hunt/SKILL.md +856 -0
- package/packaged-assets/.agents/skills/rt-credential-hunt/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-cvss-calculator/SKILL.md +542 -0
- package/packaged-assets/.agents/skills/rt-cvss-calculator/cvss4-matrix.csv +20 -0
- package/packaged-assets/.agents/skills/rt-data-exfiltration/SKILL.md +784 -0
- package/packaged-assets/.agents/skills/rt-defense-evasion/SKILL.md +987 -0
- package/packaged-assets/.agents/skills/rt-evidence-chain/SKILL.md +712 -0
- package/packaged-assets/.agents/skills/rt-evidence-chain/template.md +31 -0
- package/packaged-assets/.agents/skills/rt-executive-report/SKILL.md +718 -0
- package/packaged-assets/.agents/skills/rt-executive-report/template.md +38 -0
- package/packaged-assets/.agents/skills/rt-executive-report/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-active-directory/SKILL.md +1078 -0
- package/packaged-assets/.agents/skills/rt-exploit-active-directory/ad-checklist.csv +12 -0
- package/packaged-assets/.agents/skills/rt-exploit-active-directory/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-android/SKILL.md +1329 -0
- package/packaged-assets/.agents/skills/rt-exploit-android/masvs-checklist.csv +10 -0
- package/packaged-assets/.agents/skills/rt-exploit-android/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-api/SKILL.md +1547 -0
- package/packaged-assets/.agents/skills/rt-exploit-api/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-auth/SKILL.md +1949 -0
- package/packaged-assets/.agents/skills/rt-exploit-auth/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-bec/SKILL.md +69 -0
- package/packaged-assets/.agents/skills/rt-exploit-cloud-aws/SKILL.md +865 -0
- package/packaged-assets/.agents/skills/rt-exploit-cloud-aws/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-cloud-azure/SKILL.md +1258 -0
- package/packaged-assets/.agents/skills/rt-exploit-cloud-gcp/SKILL.md +981 -0
- package/packaged-assets/.agents/skills/rt-exploit-containers/SKILL.md +55 -0
- package/packaged-assets/.agents/skills/rt-exploit-databases/SKILL.md +1374 -0
- package/packaged-assets/.agents/skills/rt-exploit-desktop-mac/SKILL.md +834 -0
- package/packaged-assets/.agents/skills/rt-exploit-desktop-win/SKILL.md +903 -0
- package/packaged-assets/.agents/skills/rt-exploit-desktop-win/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-dotnet/SKILL.md +945 -0
- package/packaged-assets/.agents/skills/rt-exploit-elasticsearch/SKILL.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-electron/SKILL.md +1023 -0
- package/packaged-assets/.agents/skills/rt-exploit-electron/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-file-upload/SKILL.md +1576 -0
- package/packaged-assets/.agents/skills/rt-exploit-file-upload/payloads/README.md +4 -0
- package/packaged-assets/.agents/skills/rt-exploit-file-upload/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-firebase/SKILL.md +54 -0
- package/packaged-assets/.agents/skills/rt-exploit-frameworks/SKILL.md +967 -0
- package/packaged-assets/.agents/skills/rt-exploit-idor/SKILL.md +1693 -0
- package/packaged-assets/.agents/skills/rt-exploit-idor/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-injection/SKILL.md +1860 -0
- package/packaged-assets/.agents/skills/rt-exploit-injection/payloads/sqlmap-tampers.txt +22 -0
- package/packaged-assets/.agents/skills/rt-exploit-injection/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-ios/SKILL.md +1214 -0
- package/packaged-assets/.agents/skills/rt-exploit-ios/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-iot/SKILL.md +91 -0
- package/packaged-assets/.agents/skills/rt-exploit-iot/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-java/SKILL.md +1009 -0
- package/packaged-assets/.agents/skills/rt-exploit-jwt/SKILL.md +1327 -0
- package/packaged-assets/.agents/skills/rt-exploit-jwt/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-mongodb/SKILL.md +67 -0
- package/packaged-assets/.agents/skills/rt-exploit-mssql/SKILL.md +52 -0
- package/packaged-assets/.agents/skills/rt-exploit-mysql/SKILL.md +53 -0
- package/packaged-assets/.agents/skills/rt-exploit-network/SKILL.md +118 -0
- package/packaged-assets/.agents/skills/rt-exploit-network/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-nodejs/SKILL.md +852 -0
- package/packaged-assets/.agents/skills/rt-exploit-osticket/SKILL.md +63 -0
- package/packaged-assets/.agents/skills/rt-exploit-phishing/SKILL.md +173 -0
- package/packaged-assets/.agents/skills/rt-exploit-phishing/templates/README.md +4 -0
- package/packaged-assets/.agents/skills/rt-exploit-phishing/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-php/SKILL.md +1119 -0
- package/packaged-assets/.agents/skills/rt-exploit-physical/SKILL.md +63 -0
- package/packaged-assets/.agents/skills/rt-exploit-physical/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-postgresql/SKILL.md +67 -0
- package/packaged-assets/.agents/skills/rt-exploit-python/SKILL.md +986 -0
- package/packaged-assets/.agents/skills/rt-exploit-redis/SKILL.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-ruby/SKILL.md +61 -0
- package/packaged-assets/.agents/skills/rt-exploit-scada/SKILL.md +1091 -0
- package/packaged-assets/.agents/skills/rt-exploit-ssrf/SKILL.md +1528 -0
- package/packaged-assets/.agents/skills/rt-exploit-ssrf/payloads.txt +23 -0
- package/packaged-assets/.agents/skills/rt-exploit-ssrf/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-vishing/SKILL.md +121 -0
- package/packaged-assets/.agents/skills/rt-exploit-vishing/scripts.md +4 -0
- package/packaged-assets/.agents/skills/rt-exploit-web/SKILL.md +1902 -0
- package/packaged-assets/.agents/skills/rt-exploit-web/owasp-checklist.csv +14 -0
- package/packaged-assets/.agents/skills/rt-exploit-web/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-wireless/SKILL.md +71 -0
- package/packaged-assets/.agents/skills/rt-exploit-wordpress/SKILL.md +1565 -0
- package/packaged-assets/.agents/skills/rt-exploit-wordpress/cves.csv +7 -0
- package/packaged-assets/.agents/skills/rt-exploit-wordpress/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-xss/SKILL.md +1526 -0
- package/packaged-assets/.agents/skills/rt-exploit-xss/payloads.txt +18 -0
- package/packaged-assets/.agents/skills/rt-exploit-xss/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-finding-document/SKILL.md +687 -0
- package/packaged-assets/.agents/skills/rt-finding-document/template.md +71 -0
- package/packaged-assets/.agents/skills/rt-finding-document/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-finding-tracker/SKILL.md +216 -0
- package/packaged-assets/.agents/skills/rt-finding-tracker/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-help/SKILL.md +292 -0
- package/packaged-assets/.agents/skills/rt-help/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-js-analysis/SKILL.md +639 -0
- package/packaged-assets/.agents/skills/rt-js-analysis/patterns.txt +27 -0
- package/packaged-assets/.agents/skills/rt-js-analysis/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-kill-chain-map/SKILL.md +393 -0
- package/packaged-assets/.agents/skills/rt-lateral-movement/SKILL.md +1032 -0
- package/packaged-assets/.agents/skills/rt-lateral-movement/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-methodology-selector/SKILL.md +69 -0
- package/packaged-assets/.agents/skills/rt-methodology-selector/frameworks.csv +10 -0
- package/packaged-assets/.agents/skills/rt-methodology-selector/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-mitre-map/SKILL.md +668 -0
- package/packaged-assets/.agents/skills/rt-mitre-map/tactics.csv +16 -0
- package/packaged-assets/.agents/skills/rt-mitre-map/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-osint/SKILL.md +775 -0
- package/packaged-assets/.agents/skills/rt-osint/osint-sources.csv +12 -0
- package/packaged-assets/.agents/skills/rt-osint/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-party-mode/SKILL.md +249 -0
- package/packaged-assets/.agents/skills/rt-party-mode/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-persistence/SKILL.md +1146 -0
- package/packaged-assets/.agents/skills/rt-persistence/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-poc-writer/SKILL.md +640 -0
- package/packaged-assets/.agents/skills/rt-post-exploitation/SKILL.md +998 -0
- package/packaged-assets/.agents/skills/rt-post-exploitation/linux-checklist.csv +10 -0
- package/packaged-assets/.agents/skills/rt-post-exploitation/windows-checklist.csv +10 -0
- package/packaged-assets/.agents/skills/rt-post-exploitation/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-privilege-escalation/SKILL.md +1027 -0
- package/packaged-assets/.agents/skills/rt-privilege-escalation/linux-checklist.csv +10 -0
- package/packaged-assets/.agents/skills/rt-privilege-escalation/win-checklist.csv +10 -0
- package/packaged-assets/.agents/skills/rt-privilege-escalation/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-remediation-roadmap/SKILL.md +665 -0
- package/packaged-assets/.agents/skills/rt-remediation-roadmap/template.md +28 -0
- package/packaged-assets/.agents/skills/rt-risk-matrix/SKILL.md +232 -0
- package/packaged-assets/.agents/skills/rt-rules-of-engagement/SKILL.md +62 -0
- package/packaged-assets/.agents/skills/rt-rules-of-engagement/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-scenario-c001/SKILL.md +71 -0
- package/packaged-assets/.agents/skills/rt-scenario-c002/SKILL.md +69 -0
- package/packaged-assets/.agents/skills/rt-scenario-c003/SKILL.md +71 -0
- package/packaged-assets/.agents/skills/rt-scenario-c004/SKILL.md +71 -0
- package/packaged-assets/.agents/skills/rt-scenario-c005/SKILL.md +72 -0
- package/packaged-assets/.agents/skills/rt-scenario-d001/SKILL.md +378 -0
- package/packaged-assets/.agents/skills/rt-scenario-d002/SKILL.md +392 -0
- package/packaged-assets/.agents/skills/rt-scenario-d003/SKILL.md +522 -0
- package/packaged-assets/.agents/skills/rt-scenario-d004/SKILL.md +373 -0
- package/packaged-assets/.agents/skills/rt-scenario-d005/SKILL.md +458 -0
- package/packaged-assets/.agents/skills/rt-scenario-library/SKILL.md +292 -0
- package/packaged-assets/.agents/skills/rt-scenario-library/scenarios.csv +32 -0
- package/packaged-assets/.agents/skills/rt-scenario-m001/SKILL.md +796 -0
- package/packaged-assets/.agents/skills/rt-scenario-m002/SKILL.md +723 -0
- package/packaged-assets/.agents/skills/rt-scenario-m003/SKILL.md +463 -0
- package/packaged-assets/.agents/skills/rt-scenario-m004/SKILL.md +449 -0
- package/packaged-assets/.agents/skills/rt-scenario-m005/SKILL.md +505 -0
- package/packaged-assets/.agents/skills/rt-scenario-n001/SKILL.md +573 -0
- package/packaged-assets/.agents/skills/rt-scenario-n002/SKILL.md +112 -0
- package/packaged-assets/.agents/skills/rt-scenario-n003/SKILL.md +100 -0
- package/packaged-assets/.agents/skills/rt-scenario-n004/SKILL.md +90 -0
- package/packaged-assets/.agents/skills/rt-scenario-n005/SKILL.md +71 -0
- package/packaged-assets/.agents/skills/rt-scenario-w001/SKILL.md +635 -0
- package/packaged-assets/.agents/skills/rt-scenario-w002/SKILL.md +612 -0
- package/packaged-assets/.agents/skills/rt-scenario-w003/SKILL.md +449 -0
- package/packaged-assets/.agents/skills/rt-scenario-w004/SKILL.md +648 -0
- package/packaged-assets/.agents/skills/rt-scenario-w005/SKILL.md +479 -0
- package/packaged-assets/.agents/skills/rt-scenario-w006/SKILL.md +443 -0
- package/packaged-assets/.agents/skills/rt-scenario-w007/SKILL.md +494 -0
- package/packaged-assets/.agents/skills/rt-scenario-w008/SKILL.md +576 -0
- package/packaged-assets/.agents/skills/rt-scenario-w009/SKILL.md +518 -0
- package/packaged-assets/.agents/skills/rt-scenario-w010/SKILL.md +574 -0
- package/packaged-assets/.agents/skills/rt-scope-definition/SKILL.md +79 -0
- package/packaged-assets/.agents/skills/rt-scope-definition/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-shodan-recon/SKILL.md +880 -0
- package/packaged-assets/.agents/skills/rt-status/SKILL.md +64 -0
- package/packaged-assets/.agents/skills/rt-subdomain-enum/SKILL.md +906 -0
- package/packaged-assets/.agents/skills/rt-subdomain-enum/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-technical-report/SKILL.md +710 -0
- package/packaged-assets/.agents/skills/rt-technical-report/template.md +41 -0
- package/packaged-assets/.agents/skills/rt-technical-report/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-threat-model/SKILL.md +59 -0
- package/packaged-assets/.agents/skills/rt-threat-model/template.md +32 -0
- package/packaged-assets/.agents/skills/rt-threat-model/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-timeline/SKILL.md +338 -0
- package/packaged-assets/RTEXIT.md +127 -0
- package/tools/installer/lib/asset-manifest.js +10 -5
- package/tools/installer/lib/copy-assets.js +5 -2
- /package/{_rtexit → packaged-assets/_rtexit}/config.toml +0 -0
- /package/{_rtexit → packaged-assets/_rtexit}/config.user.toml +0 -0
- /package/{_rtexit → packaged-assets/_rtexit}/custom/config.toml +0 -0
- /package/{_rtexit → packaged-assets/_rtexit}/scripts/autodoc_engine.py +0 -0
- /package/{_rtexit → packaged-assets/_rtexit}/scripts/finding_tracker.py +0 -0
- /package/{_rtexit → packaged-assets/_rtexit}/scripts/resolve_config.py +0 -0
- /package/{_rtexit → packaged-assets/_rtexit}/scripts/resolve_customization.py +0 -0
- /package/{resources → packaged-assets/resources}/certifications.md +0 -0
- /package/{resources → packaged-assets/resources}/payloads.md +0 -0
- /package/{resources → packaged-assets/resources}/tools.md +0 -0
- /package/{resources → packaged-assets/resources}/wordlists.md +0 -0
- /package/{templates → packaged-assets/templates}/attack-chain-template.md +0 -0
- /package/{templates → packaged-assets/templates}/executive-report-template.md +0 -0
- /package/{templates → packaged-assets/templates}/executive-report.md +0 -0
- /package/{templates → packaged-assets/templates}/finding-template.md +0 -0
- /package/{templates → packaged-assets/templates}/remediation-roadmap.md +0 -0
- /package/{templates → packaged-assets/templates}/sead-template.md +0 -0
- /package/{templates → packaged-assets/templates}/technical-report.md +0 -0
|
@@ -0,0 +1,767 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rt-active-recon
|
|
3
|
+
description: "Active reconnaissance skill. Use for port scanning (Nmap, Masscan), service fingerprinting, OS detection, WAF detection (wafw00f), web technology identification (WhatWeb, Wappalyzer), directory enumeration (gobuster, ffuf), and vulnerability scanning (Nuclei). Makes direct contact with target systems."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# rt-active-recon
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Active reconnaissance is the phase where the Red Team operator makes **direct, measurable contact** with target systems. Unlike passive recon (OSINT, DNS lookups, Shodan), active recon generates traffic logs on the target's infrastructure and may trigger IDS/IPS/WAF alerts. Every command in this skill should be executed only after:
|
|
11
|
+
|
|
12
|
+
1. Rules of Engagement (ROE) are signed and in scope is confirmed (`/rt-rules-of-engagement`)
|
|
13
|
+
2. Scope is locked in `_rtexit/config.user.toml` under `[scope]`
|
|
14
|
+
3. Methodology has been selected (`/rt-methodology-selector`)
|
|
15
|
+
|
|
16
|
+
**Output discipline:** All tool output MUST be saved to `_rtexit-output/recon/active/` in structured subdirectories. The RTExit autodoc engine indexes everything under `_rtexit-output/`. Raw tool output + a brief operator note is sufficient — the scribe agent will formalize it.
|
|
17
|
+
|
|
18
|
+
**OPSEC note:** Active recon is loud. Consider using pivots, VPN egress nodes, or cloud burner instances for external engagements. For internal engagements, coordinate with the client's SOC window if required by ROE.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Skill Levels
|
|
23
|
+
|
|
24
|
+
### BEGINNER
|
|
25
|
+
|
|
26
|
+
Suitable for: Learning the toolchain, CTFs, internal lab targets, supervised engagements.
|
|
27
|
+
|
|
28
|
+
**Goal:** Get a basic open-port list and identify running services.
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Basic Nmap scan — top 1000 ports, version detection, default scripts
|
|
32
|
+
nmap -sV -sC -oA _rtexit-output/recon/active/nmap/basic-scan <TARGET_IP>
|
|
33
|
+
|
|
34
|
+
# Ping sweep a /24 subnet (identify live hosts)
|
|
35
|
+
nmap -sn 192.168.1.0/24 -oG _rtexit-output/recon/active/nmap/ping-sweep.gnmap
|
|
36
|
+
|
|
37
|
+
# Quick web tech check with WhatWeb
|
|
38
|
+
whatweb http://<TARGET> -v --log-verbose=_rtexit-output/recon/active/whatweb/whatweb-basic.txt
|
|
39
|
+
|
|
40
|
+
# Basic directory bruteforce with gobuster
|
|
41
|
+
gobuster dir \
|
|
42
|
+
-u http://<TARGET> \
|
|
43
|
+
-w /usr/share/seclists/Discovery/Web-Content/common.txt \
|
|
44
|
+
-o _rtexit-output/recon/active/gobuster/common-dirs.txt
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
### INTERMEDIATE
|
|
50
|
+
|
|
51
|
+
Suitable for: Professional penetration tests, solo operators, external attack surface assessments.
|
|
52
|
+
|
|
53
|
+
**Goal:** Full TCP/UDP coverage, OS fingerprinting, WAF detection, targeted directory enumeration, initial vulnerability scan.
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Full TCP port scan (all 65535 ports) — use Masscan first for speed, then Nmap for fingerprinting
|
|
57
|
+
masscan <TARGET_IP/CIDR> -p1-65535 --rate=10000 \
|
|
58
|
+
-oG _rtexit-output/recon/active/masscan/full-tcp.gnmap
|
|
59
|
+
|
|
60
|
+
# Parse Masscan output to get open port list for Nmap
|
|
61
|
+
grep "open" _rtexit-output/recon/active/masscan/full-tcp.gnmap \
|
|
62
|
+
| awk '{print $5}' | cut -d'/' -f1 | sort -u | tr '\n' ',' \
|
|
63
|
+
> /tmp/open-ports.txt
|
|
64
|
+
|
|
65
|
+
# Targeted Nmap with version + script scan on confirmed open ports
|
|
66
|
+
nmap -sV -sC -A -p$(cat /tmp/open-ports.txt) \
|
|
67
|
+
--script=banner,http-title,ssl-cert,ssh-hostkey \
|
|
68
|
+
-oA _rtexit-output/recon/active/nmap/targeted-scan \
|
|
69
|
+
<TARGET_IP>
|
|
70
|
+
|
|
71
|
+
# WAF detection
|
|
72
|
+
wafw00f http://<TARGET> -o _rtexit-output/recon/active/waf/wafw00f.txt -f text
|
|
73
|
+
|
|
74
|
+
# WhatWeb with aggression level 3
|
|
75
|
+
whatweb http://<TARGET> -a 3 \
|
|
76
|
+
--log-json=_rtexit-output/recon/active/whatweb/whatweb-full.json \
|
|
77
|
+
--log-verbose=_rtexit-output/recon/active/whatweb/whatweb-full.txt
|
|
78
|
+
|
|
79
|
+
# Directory enumeration with medium wordlist and extension bruteforce
|
|
80
|
+
gobuster dir \
|
|
81
|
+
-u http://<TARGET> \
|
|
82
|
+
-w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt \
|
|
83
|
+
-x php,asp,aspx,jsp,html,txt,bak,zip,conf,env \
|
|
84
|
+
-t 50 \
|
|
85
|
+
-o _rtexit-output/recon/active/gobuster/medium-dirs.txt \
|
|
86
|
+
--timeout 15s
|
|
87
|
+
|
|
88
|
+
# Nuclei — community templates for CVE and misconfiguration detection
|
|
89
|
+
nuclei -u http://<TARGET> \
|
|
90
|
+
-t /root/nuclei-templates/ \
|
|
91
|
+
-severity low,medium,high,critical \
|
|
92
|
+
-o _rtexit-output/recon/active/nuclei/nuclei-scan.txt \
|
|
93
|
+
-json-export _rtexit-output/recon/active/nuclei/nuclei-scan.json
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### ADVANCED
|
|
99
|
+
|
|
100
|
+
Suitable for: Red team engagements, external infrastructure attacks, multi-host environments, evading detection.
|
|
101
|
+
|
|
102
|
+
**Goal:** Stealthy scanning, comprehensive fingerprinting, virtual host enumeration, API endpoint discovery, authenticated scans, custom Nuclei templates.
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# Slow stealthy Nmap scan (evade basic IDS rate thresholds)
|
|
106
|
+
nmap -sS -T2 -Pn -f --data-length 24 \
|
|
107
|
+
-p21,22,23,25,53,80,110,111,135,139,143,443,445,993,995,1723,3306,3389,5900,8080,8443 \
|
|
108
|
+
--randomize-hosts \
|
|
109
|
+
-oA _rtexit-output/recon/active/nmap/stealth-scan \
|
|
110
|
+
<TARGET_IP>
|
|
111
|
+
|
|
112
|
+
# UDP port scan (often missed, catches SNMP, DNS, TFTP, NFS)
|
|
113
|
+
nmap -sU --top-ports 200 -T3 \
|
|
114
|
+
-oA _rtexit-output/recon/active/nmap/udp-top200 \
|
|
115
|
+
<TARGET_IP>
|
|
116
|
+
|
|
117
|
+
# Virtual host enumeration (find hidden vhosts on shared IP)
|
|
118
|
+
ffuf -u http://<TARGET_IP> \
|
|
119
|
+
-H "Host: FUZZ.<TARGET_DOMAIN>" \
|
|
120
|
+
-w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
|
|
121
|
+
-fc 404,400 \
|
|
122
|
+
-o _rtexit-output/recon/active/ffuf/vhost-enum.json \
|
|
123
|
+
-of json
|
|
124
|
+
|
|
125
|
+
# API endpoint discovery
|
|
126
|
+
ffuf -u http://<TARGET>/FUZZ \
|
|
127
|
+
-w /usr/share/seclists/Discovery/Web-Content/api/api-endpoints.txt \
|
|
128
|
+
-mc 200,201,204,301,302,307,401,403 \
|
|
129
|
+
-o _rtexit-output/recon/active/ffuf/api-endpoints.json \
|
|
130
|
+
-of json
|
|
131
|
+
|
|
132
|
+
# Subdomain enumeration via DNS bruteforce
|
|
133
|
+
gobuster dns \
|
|
134
|
+
-d <TARGET_DOMAIN> \
|
|
135
|
+
-w /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt \
|
|
136
|
+
-o _rtexit-output/recon/active/gobuster/dns-subdomains.txt \
|
|
137
|
+
--timeout 5s
|
|
138
|
+
|
|
139
|
+
# Nmap with NSE script categories for deeper enumeration
|
|
140
|
+
nmap -sV -p80,443,8080,8443 \
|
|
141
|
+
--script="http-enum,http-headers,http-methods,http-auth-finder,http-config-backup,http-git,http-php-version,ssl-enum-ciphers,ssl-heartbleed,ssl-poodle" \
|
|
142
|
+
-oA _rtexit-output/recon/active/nmap/web-scripts \
|
|
143
|
+
<TARGET_IP>
|
|
144
|
+
|
|
145
|
+
# SMB enumeration (if port 445 is open)
|
|
146
|
+
nmap -p445 --script="smb-vuln*,smb-enum*,smb2-security-mode" \
|
|
147
|
+
-oA _rtexit-output/recon/active/nmap/smb-enum \
|
|
148
|
+
<TARGET_IP>
|
|
149
|
+
|
|
150
|
+
# Custom Nuclei scan — specific tags only
|
|
151
|
+
nuclei -u http://<TARGET> \
|
|
152
|
+
-tags cve,rce,sqli,ssrf,lfi,xss,auth-bypass,misconfig \
|
|
153
|
+
-severity medium,high,critical \
|
|
154
|
+
-rl 30 \
|
|
155
|
+
-o _rtexit-output/recon/active/nuclei/targeted-nuclei.txt \
|
|
156
|
+
-json-export _rtexit-output/recon/active/nuclei/targeted-nuclei.json
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
### EXPERT
|
|
162
|
+
|
|
163
|
+
Suitable for: Adversary simulation, APT-style engagements, red team operations requiring evasion and high-fidelity fingerprinting.
|
|
164
|
+
|
|
165
|
+
**Goal:** Operator-written scripts, authenticated scanning, WAF bypass techniques, chained tool pipelines, custom fingerprinting.
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# Masscan + Nmap pipeline — scan entire /16 fast, then deep-dive open hosts
|
|
169
|
+
masscan 10.0.0.0/16 -p1-65535 --rate=50000 \
|
|
170
|
+
--exclude 10.0.0.1 \
|
|
171
|
+
-oX _rtexit-output/recon/active/masscan/internal-full.xml
|
|
172
|
+
|
|
173
|
+
# Parse Masscan XML and auto-run Nmap on each live host
|
|
174
|
+
python3 << 'EOF'
|
|
175
|
+
import xml.etree.ElementTree as ET
|
|
176
|
+
import subprocess, os
|
|
177
|
+
|
|
178
|
+
tree = ET.parse("_rtexit-output/recon/active/masscan/internal-full.xml")
|
|
179
|
+
hosts = {}
|
|
180
|
+
for host in tree.findall("host"):
|
|
181
|
+
ip = host.find("address").get("addr")
|
|
182
|
+
for port in host.findall(".//port"):
|
|
183
|
+
hosts.setdefault(ip, []).append(port.get("portid"))
|
|
184
|
+
|
|
185
|
+
os.makedirs("_rtexit-output/recon/active/nmap/hosts", exist_ok=True)
|
|
186
|
+
for ip, ports in hosts.items():
|
|
187
|
+
port_str = ",".join(ports)
|
|
188
|
+
safe_ip = ip.replace(".", "_")
|
|
189
|
+
cmd = [
|
|
190
|
+
"nmap", "-sV", "-sC", "-A", f"-p{port_str}",
|
|
191
|
+
"-oA", f"_rtexit-output/recon/active/nmap/hosts/{safe_ip}",
|
|
192
|
+
ip
|
|
193
|
+
]
|
|
194
|
+
print(f"[*] Scanning {ip} on ports {port_str}")
|
|
195
|
+
subprocess.run(cmd, capture_output=True)
|
|
196
|
+
print(f"[+] Done: {ip}")
|
|
197
|
+
print("[*] Pipeline complete.")
|
|
198
|
+
EOF
|
|
199
|
+
|
|
200
|
+
# ffuf with WAF bypass headers
|
|
201
|
+
ffuf -u "https://<TARGET>/FUZZ" \
|
|
202
|
+
-w /usr/share/seclists/Discovery/Web-Content/raft-large-files.txt \
|
|
203
|
+
-H "X-Forwarded-For: 127.0.0.1" \
|
|
204
|
+
-H "X-Originating-IP: 127.0.0.1" \
|
|
205
|
+
-H "X-Remote-IP: 127.0.0.1" \
|
|
206
|
+
-H "X-Remote-Addr: 127.0.0.1" \
|
|
207
|
+
-H "X-Client-IP: 127.0.0.1" \
|
|
208
|
+
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" \
|
|
209
|
+
-fc 404,429 \
|
|
210
|
+
-rate 20 \
|
|
211
|
+
-o _rtexit-output/recon/active/ffuf/waf-bypass-files.json \
|
|
212
|
+
-of json
|
|
213
|
+
|
|
214
|
+
# Nuclei with custom template targeting specific tech stack
|
|
215
|
+
# (assumes you know the stack from passive recon / WhatWeb output)
|
|
216
|
+
nuclei -u https://<TARGET> \
|
|
217
|
+
-t /root/nuclei-templates/technologies/wordpress/ \
|
|
218
|
+
-t /root/nuclei-templates/cves/2024/ \
|
|
219
|
+
-t /root/nuclei-templates/vulnerabilities/ \
|
|
220
|
+
-severity critical,high \
|
|
221
|
+
-rl 10 \
|
|
222
|
+
-H "User-Agent: Mozilla/5.0" \
|
|
223
|
+
-json-export _rtexit-output/recon/active/nuclei/expert-scan.json
|
|
224
|
+
|
|
225
|
+
# Authenticated Nmap scan (if credentials obtained from earlier phase)
|
|
226
|
+
nmap -sV -p- \
|
|
227
|
+
--script="http-auth,http-form-brute,http-brute" \
|
|
228
|
+
--script-args="http-brute.path=/admin,brute.firstonly=true" \
|
|
229
|
+
-oA _rtexit-output/recon/active/nmap/auth-scan \
|
|
230
|
+
<TARGET_IP>
|
|
231
|
+
|
|
232
|
+
# OS fingerprinting + traceroute
|
|
233
|
+
nmap -O --osscan-guess --traceroute \
|
|
234
|
+
-oA _rtexit-output/recon/active/nmap/os-fingerprint \
|
|
235
|
+
<TARGET_IP>
|
|
236
|
+
|
|
237
|
+
# SSL/TLS deep audit
|
|
238
|
+
nmap -p443,8443 \
|
|
239
|
+
--script="ssl-cert,ssl-enum-ciphers,ssl-dh-params,ssl-heartbleed,ssl-poodle,ssl-ccs-injection,tls-alpn,tls-nextprotoneg" \
|
|
240
|
+
-oA _rtexit-output/recon/active/nmap/ssl-audit \
|
|
241
|
+
<TARGET_IP>
|
|
242
|
+
|
|
243
|
+
# Wappalyzer CLI fingerprinting (Node.js based, more accurate than WhatWeb on SPAs)
|
|
244
|
+
wappalyzer https://<TARGET> \
|
|
245
|
+
| tee _rtexit-output/recon/active/wappalyzer/fingerprint.json
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Step-by-Step Workflow
|
|
251
|
+
|
|
252
|
+
### Step 1 — Validate Scope Before Touching Anything
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
# Confirm target is in scope
|
|
256
|
+
cat _rtexit/config.user.toml | grep -A 20 "\[scope\]"
|
|
257
|
+
|
|
258
|
+
# Confirm ROE permits active scanning
|
|
259
|
+
cat _rtexit-output/docs/engagement/roe.md | grep -i "active\|scanning\|nmap\|port"
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Do not proceed until scope is confirmed. If uncertain, run `/rt-scope-definition` to re-validate.
|
|
263
|
+
|
|
264
|
+
### Step 2 — Prepare Output Directory Structure
|
|
265
|
+
|
|
266
|
+
```bash
|
|
267
|
+
mkdir -p _rtexit-output/recon/active/{nmap,masscan,gobuster,ffuf,nuclei,whatweb,wappalyzer,waf,screenshots,notes}
|
|
268
|
+
echo "Active recon started: $(date)" > _rtexit-output/recon/active/notes/session.log
|
|
269
|
+
echo "Target: <TARGET>" >> _rtexit-output/recon/active/notes/session.log
|
|
270
|
+
echo "Operator: <OPERATOR_ALIAS>" >> _rtexit-output/recon/active/notes/session.log
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Step 3 — Host Discovery (Are Targets Live?)
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
# ICMP ping sweep (may be blocked by firewall)
|
|
277
|
+
nmap -sn <TARGET_CIDR> -oG _rtexit-output/recon/active/nmap/host-discovery.gnmap
|
|
278
|
+
|
|
279
|
+
# TCP SYN ping to common ports (more reliable than ICMP)
|
|
280
|
+
nmap -sn -PS22,80,443,8080,3389 <TARGET_CIDR> \
|
|
281
|
+
-oG _rtexit-output/recon/active/nmap/host-discovery-syn.gnmap
|
|
282
|
+
|
|
283
|
+
# Extract live hosts
|
|
284
|
+
grep "Up" _rtexit-output/recon/active/nmap/host-discovery.gnmap \
|
|
285
|
+
| awk '{print $2}' > _rtexit-output/recon/active/nmap/live-hosts.txt
|
|
286
|
+
|
|
287
|
+
echo "[*] Live hosts found: $(wc -l < _rtexit-output/recon/active/nmap/live-hosts.txt)"
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### Step 4 — Port Scanning
|
|
291
|
+
|
|
292
|
+
```bash
|
|
293
|
+
# Fast scan with Masscan (for large IP ranges)
|
|
294
|
+
masscan -iL _rtexit-output/recon/active/nmap/live-hosts.txt \
|
|
295
|
+
-p1-65535 --rate=5000 \
|
|
296
|
+
-oG _rtexit-output/recon/active/masscan/all-ports.gnmap
|
|
297
|
+
|
|
298
|
+
# Targeted Nmap service scan on open ports
|
|
299
|
+
nmap -iL _rtexit-output/recon/active/nmap/live-hosts.txt \
|
|
300
|
+
-sV -sC --version-intensity 7 \
|
|
301
|
+
-oA _rtexit-output/recon/active/nmap/service-scan
|
|
302
|
+
|
|
303
|
+
# UDP scan (SNMP, DNS, TFTP, NTP)
|
|
304
|
+
nmap -iL _rtexit-output/recon/active/nmap/live-hosts.txt \
|
|
305
|
+
-sU --top-ports 100 \
|
|
306
|
+
-oA _rtexit-output/recon/active/nmap/udp-scan
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
### Step 5 — Web Technology Fingerprinting
|
|
310
|
+
|
|
311
|
+
```bash
|
|
312
|
+
# Extract all web-facing targets from Nmap output
|
|
313
|
+
grep -E "80/open|443/open|8080/open|8443/open|8000/open" \
|
|
314
|
+
_rtexit-output/recon/active/nmap/service-scan.gnmap \
|
|
315
|
+
| awk '{print $2}' > /tmp/web-targets.txt
|
|
316
|
+
|
|
317
|
+
# WhatWeb all web targets
|
|
318
|
+
while IFS= read -r host; do
|
|
319
|
+
whatweb "http://${host}" -a 3 \
|
|
320
|
+
--log-json=_rtexit-output/recon/active/whatweb/${host//\//_}-http.json 2>/dev/null
|
|
321
|
+
whatweb "https://${host}" -a 3 \
|
|
322
|
+
--log-json=_rtexit-output/recon/active/whatweb/${host//\//_}-https.json 2>/dev/null
|
|
323
|
+
done < /tmp/web-targets.txt
|
|
324
|
+
|
|
325
|
+
# WAF detection on all web targets
|
|
326
|
+
while IFS= read -r host; do
|
|
327
|
+
wafw00f "http://${host}" >> _rtexit-output/recon/active/waf/waf-results.txt
|
|
328
|
+
done < /tmp/web-targets.txt
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
### Step 6 — Directory and File Enumeration
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
# gobuster with raft-large wordlist + common extensions
|
|
335
|
+
gobuster dir \
|
|
336
|
+
-u http://<TARGET> \
|
|
337
|
+
-w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt \
|
|
338
|
+
-x php,asp,aspx,jsp,html,txt,bak,zip,conf,env,json,xml,yaml,yml,log,old,backup \
|
|
339
|
+
-t 40 \
|
|
340
|
+
-b 404,400 \
|
|
341
|
+
-o _rtexit-output/recon/active/gobuster/raft-large.txt \
|
|
342
|
+
--timeout 20s
|
|
343
|
+
|
|
344
|
+
# ffuf for parameter fuzzing on a discovered endpoint
|
|
345
|
+
ffuf -u "http://<TARGET>/api/endpoint?FUZZ=test" \
|
|
346
|
+
-w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt \
|
|
347
|
+
-mc 200,302 \
|
|
348
|
+
-o _rtexit-output/recon/active/ffuf/param-fuzz.json \
|
|
349
|
+
-of json
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### Step 7 — Vulnerability Scanning with Nuclei
|
|
353
|
+
|
|
354
|
+
```bash
|
|
355
|
+
# Full Nuclei scan (all severities, all templates)
|
|
356
|
+
nuclei -u http://<TARGET> \
|
|
357
|
+
-t /root/nuclei-templates/ \
|
|
358
|
+
-severity info,low,medium,high,critical \
|
|
359
|
+
-rate-limit 20 \
|
|
360
|
+
-o _rtexit-output/recon/active/nuclei/full-scan.txt \
|
|
361
|
+
-json-export _rtexit-output/recon/active/nuclei/full-scan.json \
|
|
362
|
+
-stats
|
|
363
|
+
|
|
364
|
+
# Technology-specific scan (e.g., after WhatWeb reveals Apache Tomcat)
|
|
365
|
+
nuclei -u http://<TARGET> \
|
|
366
|
+
-tags tomcat,apache \
|
|
367
|
+
-severity medium,high,critical \
|
|
368
|
+
-o _rtexit-output/recon/active/nuclei/tomcat-scan.txt
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
### Step 8 — Screenshot and Evidence Collection
|
|
372
|
+
|
|
373
|
+
```bash
|
|
374
|
+
# EyeWitness — screenshot all web targets for visual review
|
|
375
|
+
eyewitness --web -f /tmp/web-targets.txt \
|
|
376
|
+
--timeout 10 \
|
|
377
|
+
-d _rtexit-output/recon/active/screenshots/eyewitness/
|
|
378
|
+
|
|
379
|
+
# gowitness — fast Chromium-based screenshotter
|
|
380
|
+
gowitness file -f /tmp/web-targets.txt \
|
|
381
|
+
--screenshot-path _rtexit-output/recon/active/screenshots/gowitness/ \
|
|
382
|
+
--log-scan-errors
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
### Step 9 — Document Findings and Feed Autodoc Engine
|
|
386
|
+
|
|
387
|
+
```bash
|
|
388
|
+
# Generate a consolidated summary for the RTExit autodoc engine
|
|
389
|
+
cat > _rtexit-output/recon/active/notes/active-recon-summary.md << 'EOF'
|
|
390
|
+
# Active Recon Summary
|
|
391
|
+
|
|
392
|
+
## Engagement: <ENGAGEMENT_NAME>
|
|
393
|
+
## Date: $(date)
|
|
394
|
+
## Operator: <OPERATOR_ALIAS>
|
|
395
|
+
|
|
396
|
+
## Live Hosts
|
|
397
|
+
$(cat _rtexit-output/recon/active/nmap/live-hosts.txt)
|
|
398
|
+
|
|
399
|
+
## Open Ports (Key Services)
|
|
400
|
+
<!-- Paste Nmap service scan highlights here -->
|
|
401
|
+
|
|
402
|
+
## Web Technologies Identified
|
|
403
|
+
<!-- WhatWeb/Wappalyzer key findings -->
|
|
404
|
+
|
|
405
|
+
## WAF Status
|
|
406
|
+
<!-- wafw00f results -->
|
|
407
|
+
|
|
408
|
+
## Directories/Files Found
|
|
409
|
+
<!-- Notable gobuster/ffuf findings -->
|
|
410
|
+
|
|
411
|
+
## Nuclei Findings Summary
|
|
412
|
+
<!-- Count by severity, list critical/high findings -->
|
|
413
|
+
|
|
414
|
+
## Next Phase
|
|
415
|
+
<!-- Reference to exploitation plan or next skill -->
|
|
416
|
+
EOF
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
The RTExit autodoc engine will detect and index `_rtexit-output/recon/active/notes/active-recon-summary.md` on next run of `/rt-status`.
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
## All Relevant Commands with Explanations
|
|
424
|
+
|
|
425
|
+
### Nmap
|
|
426
|
+
|
|
427
|
+
| Flag | Purpose |
|
|
428
|
+
|------|---------|
|
|
429
|
+
| `-sS` | SYN scan (stealth, requires root) |
|
|
430
|
+
| `-sV` | Version detection |
|
|
431
|
+
| `-sC` | Default NSE scripts |
|
|
432
|
+
| `-A` | Aggressive: OS detect + version + scripts + traceroute |
|
|
433
|
+
| `-T0` to `-T5` | Timing (T0=paranoid/stealth, T5=insane/fast) |
|
|
434
|
+
| `-p-` | All 65535 ports |
|
|
435
|
+
| `-Pn` | Skip host discovery (treat all as up) |
|
|
436
|
+
| `-f` | Fragment packets (evade simple firewalls) |
|
|
437
|
+
| `--data-length 24` | Append random data to packets (IDS evasion) |
|
|
438
|
+
| `--randomize-hosts` | Scan hosts in random order |
|
|
439
|
+
| `-oA` | Output in all formats (nmap, gnmap, xml) |
|
|
440
|
+
| `-oX` | XML output only |
|
|
441
|
+
| `-oG` | Grepable output |
|
|
442
|
+
| `--script=` | Specify NSE scripts |
|
|
443
|
+
| `--open` | Show only open ports |
|
|
444
|
+
|
|
445
|
+
### Masscan
|
|
446
|
+
|
|
447
|
+
| Flag | Purpose |
|
|
448
|
+
|------|---------|
|
|
449
|
+
| `-p1-65535` | Scan all ports |
|
|
450
|
+
| `--rate=` | Packets per second (10000 = fast, 100000 = very fast) |
|
|
451
|
+
| `--exclude` | Exclude specific IPs from scan |
|
|
452
|
+
| `-oG` | Grepable output |
|
|
453
|
+
| `-oX` | XML output |
|
|
454
|
+
| `-iL` | Input from file |
|
|
455
|
+
|
|
456
|
+
### gobuster
|
|
457
|
+
|
|
458
|
+
| Flag | Purpose |
|
|
459
|
+
|------|---------|
|
|
460
|
+
| `dir` | Directory/file enumeration mode |
|
|
461
|
+
| `dns` | DNS subdomain enumeration mode |
|
|
462
|
+
| `vhost` | Virtual host enumeration mode |
|
|
463
|
+
| `-u` | Target URL |
|
|
464
|
+
| `-w` | Wordlist path |
|
|
465
|
+
| `-x` | File extensions to append |
|
|
466
|
+
| `-t` | Threads |
|
|
467
|
+
| `-b` | Blacklist status codes |
|
|
468
|
+
| `-o` | Output file |
|
|
469
|
+
| `--timeout` | Request timeout |
|
|
470
|
+
|
|
471
|
+
### ffuf
|
|
472
|
+
|
|
473
|
+
| Flag | Purpose |
|
|
474
|
+
|------|---------|
|
|
475
|
+
| `-u` | URL with FUZZ keyword |
|
|
476
|
+
| `-w` | Wordlist |
|
|
477
|
+
| `-H` | Custom header |
|
|
478
|
+
| `-mc` | Match HTTP status codes |
|
|
479
|
+
| `-fc` | Filter/exclude status codes |
|
|
480
|
+
| `-rate` | Requests per second limit |
|
|
481
|
+
| `-of json` | Output format JSON |
|
|
482
|
+
| `-o` | Output file |
|
|
483
|
+
| `-fs` | Filter by response size |
|
|
484
|
+
| `-fw` | Filter by word count |
|
|
485
|
+
|
|
486
|
+
### wafw00f
|
|
487
|
+
|
|
488
|
+
| Flag | Purpose |
|
|
489
|
+
|------|---------|
|
|
490
|
+
| `-a` | Try to detect all WAFs |
|
|
491
|
+
| `-o` | Output file |
|
|
492
|
+
| `-f` | Output format (json, text, csv) |
|
|
493
|
+
|
|
494
|
+
### WhatWeb
|
|
495
|
+
|
|
496
|
+
| Flag | Purpose |
|
|
497
|
+
|------|---------|
|
|
498
|
+
| `-a 1` | Stealthy (no extra requests) |
|
|
499
|
+
| `-a 3` | Aggressive (many extra requests) |
|
|
500
|
+
| `--log-json=` | JSON log file |
|
|
501
|
+
| `--log-verbose=` | Verbose text log |
|
|
502
|
+
|
|
503
|
+
### Nuclei
|
|
504
|
+
|
|
505
|
+
| Flag | Purpose |
|
|
506
|
+
|------|---------|
|
|
507
|
+
| `-u` | Single target URL |
|
|
508
|
+
| `-l` | List of targets |
|
|
509
|
+
| `-t` | Template directory |
|
|
510
|
+
| `-tags` | Run templates matching tags |
|
|
511
|
+
| `-severity` | Filter by severity |
|
|
512
|
+
| `-rl` / `-rate-limit` | Requests per second |
|
|
513
|
+
| `-o` | Text output file |
|
|
514
|
+
| `-json-export` | JSON output file |
|
|
515
|
+
| `-stats` | Show scan statistics |
|
|
516
|
+
| `-H` | Custom header |
|
|
517
|
+
|
|
518
|
+
---
|
|
519
|
+
|
|
520
|
+
## Tools Referenced
|
|
521
|
+
|
|
522
|
+
| Tool | Purpose | URL |
|
|
523
|
+
|------|---------|-----|
|
|
524
|
+
| Nmap | Port scanning, service detection, NSE scripts | https://github.com/nmap/nmap |
|
|
525
|
+
| Masscan | Ultra-fast TCP port scanner | https://github.com/robertdavidgraham/masscan |
|
|
526
|
+
| gobuster | Directory, DNS, vhost enumeration | https://github.com/OJ/gobuster |
|
|
527
|
+
| ffuf | Fuzzing — directories, parameters, headers, vhosts | https://github.com/ffuf/ffuf |
|
|
528
|
+
| Nuclei | Template-based vulnerability scanner | https://github.com/projectdiscovery/nuclei |
|
|
529
|
+
| nuclei-templates | Community vulnerability templates | https://github.com/projectdiscovery/nuclei-templates |
|
|
530
|
+
| WhatWeb | Web technology fingerprinting | https://github.com/urbanadventurer/WhatWeb |
|
|
531
|
+
| wafw00f | WAF detection and fingerprinting | https://github.com/EnableSecurity/wafw00f |
|
|
532
|
+
| EyeWitness | Web screenshot and report generation | https://github.com/RedSiege/EyeWitness |
|
|
533
|
+
| gowitness | Fast Chromium-based screenshotter | https://github.com/sensepost/gowitness |
|
|
534
|
+
| SecLists | Community wordlists for all enumeration types | https://github.com/danielmiessler/SecLists |
|
|
535
|
+
| Wappalyzer CLI | SPA-aware tech fingerprinting | https://github.com/wappalyzer/wappalyzer |
|
|
536
|
+
|
|
537
|
+
---
|
|
538
|
+
|
|
539
|
+
## Output Files — What to Save and Where
|
|
540
|
+
|
|
541
|
+
All output goes under `_rtexit-output/recon/active/`. The RTExit autodoc engine watches this tree.
|
|
542
|
+
|
|
543
|
+
```
|
|
544
|
+
_rtexit-output/recon/active/
|
|
545
|
+
├── nmap/
|
|
546
|
+
│ ├── basic-scan.{nmap,gnmap,xml} # Initial scan
|
|
547
|
+
│ ├── targeted-scan.{nmap,gnmap,xml} # Deep service scan on open ports
|
|
548
|
+
│ ├── udp-scan.{nmap,gnmap,xml} # UDP scan
|
|
549
|
+
│ ├── ssl-audit.{nmap,gnmap,xml} # SSL/TLS audit
|
|
550
|
+
│ ├── smb-enum.{nmap,gnmap,xml} # SMB enumeration
|
|
551
|
+
│ ├── web-scripts.{nmap,gnmap,xml} # Web-specific NSE scripts
|
|
552
|
+
│ ├── os-fingerprint.{nmap,gnmap,xml} # OS detection
|
|
553
|
+
│ ├── live-hosts.txt # Clean list of live IPs
|
|
554
|
+
│ └── hosts/ # Per-host scan files (pipeline output)
|
|
555
|
+
│ └── 10_0_0_1.{nmap,gnmap,xml}
|
|
556
|
+
├── masscan/
|
|
557
|
+
│ ├── full-tcp.gnmap # All-port masscan output
|
|
558
|
+
│ └── internal-full.xml # Large subnet XML output
|
|
559
|
+
├── gobuster/
|
|
560
|
+
│ ├── common-dirs.txt # Common wordlist results
|
|
561
|
+
│ ├── medium-dirs.txt # Medium wordlist results
|
|
562
|
+
│ ├── raft-large.txt # Raft-large results
|
|
563
|
+
│ └── dns-subdomains.txt # DNS subdomain enumeration
|
|
564
|
+
├── ffuf/
|
|
565
|
+
│ ├── vhost-enum.json # Virtual host enumeration
|
|
566
|
+
│ ├── api-endpoints.json # API endpoint discovery
|
|
567
|
+
│ ├── param-fuzz.json # Parameter fuzzing
|
|
568
|
+
│ └── waf-bypass-files.json # WAF bypass attempts
|
|
569
|
+
├── nuclei/
|
|
570
|
+
│ ├── full-scan.txt # Full Nuclei text output
|
|
571
|
+
│ ├── full-scan.json # Full Nuclei JSON export
|
|
572
|
+
│ ├── targeted-nuclei.json # Tag-targeted scan
|
|
573
|
+
│ └── expert-scan.json # Expert-mode scan
|
|
574
|
+
├── whatweb/
|
|
575
|
+
│ ├── whatweb-basic.txt # Basic WhatWeb output
|
|
576
|
+
│ ├── whatweb-full.txt # Verbose WhatWeb output
|
|
577
|
+
│ └── whatweb-full.json # WhatWeb JSON log
|
|
578
|
+
├── wappalyzer/
|
|
579
|
+
│ └── fingerprint.json # Wappalyzer fingerprint
|
|
580
|
+
├── waf/
|
|
581
|
+
│ ├── wafw00f.txt # WAF detection results
|
|
582
|
+
│ └── waf-results.txt # Multi-target WAF results
|
|
583
|
+
├── screenshots/
|
|
584
|
+
│ ├── eyewitness/ # EyeWitness report
|
|
585
|
+
│ └── gowitness/ # gowitness screenshots
|
|
586
|
+
└── notes/
|
|
587
|
+
├── session.log # Operator session log
|
|
588
|
+
└── active-recon-summary.md # Summary for autodoc engine
|
|
589
|
+
```
|
|
590
|
+
|
|
591
|
+
**Naming convention:** Use underscores in filenames, no spaces, no special characters. The autodoc engine parses filenames for indexing.
|
|
592
|
+
|
|
593
|
+
**Retention:** All raw output files are evidence. Do not delete or overwrite during the engagement. Append a timestamp if re-running: `nmap-scan-$(date +%Y%m%d-%H%M%S).xml`.
|
|
594
|
+
|
|
595
|
+
---
|
|
596
|
+
|
|
597
|
+
## Integration with RTExit Autodoc Engine
|
|
598
|
+
|
|
599
|
+
The RTExit autodoc engine indexes `_rtexit-output/` and auto-populates the engagement report. To ensure active recon findings appear in the report:
|
|
600
|
+
|
|
601
|
+
1. Always save output to `_rtexit-output/recon/active/` using the directory structure above.
|
|
602
|
+
2. Create or update `_rtexit-output/recon/active/notes/active-recon-summary.md` with a human-readable summary after each scanning session.
|
|
603
|
+
3. Run `/rt-status` to trigger autodoc re-indexing and see your findings reflected in the engagement dashboard.
|
|
604
|
+
4. Run `/rt-agent-scribe` to have the Scribe agent formalize findings into the report narrative.
|
|
605
|
+
5. For critical findings discovered during active recon (e.g., Nuclei detects an unauthenticated RCE), immediately log to `_rtexit-output/findings/` using the finding template format — do not wait for the post-recon phase.
|
|
606
|
+
|
|
607
|
+
---
|
|
608
|
+
|
|
609
|
+
## SecLists Wordlist Reference
|
|
610
|
+
|
|
611
|
+
SecLists is pre-installed on Kali at `/usr/share/seclists/`. Install manually: `sudo apt install seclists` or clone from https://github.com/danielmiessler/SecLists.
|
|
612
|
+
|
|
613
|
+
| Wordlist Path | Use Case |
|
|
614
|
+
|--------------|---------|
|
|
615
|
+
| `Discovery/Web-Content/common.txt` | Quick web directory scan |
|
|
616
|
+
| `Discovery/Web-Content/directory-list-2.3-medium.txt` | Standard directory scan |
|
|
617
|
+
| `Discovery/Web-Content/raft-large-directories.txt` | Comprehensive directory scan |
|
|
618
|
+
| `Discovery/Web-Content/raft-large-files.txt` | File discovery |
|
|
619
|
+
| `Discovery/Web-Content/api/api-endpoints.txt` | REST API endpoint discovery |
|
|
620
|
+
| `Discovery/Web-Content/burp-parameter-names.txt` | Parameter name fuzzing |
|
|
621
|
+
| `Discovery/Web-Content/CGIs.txt` | CGI endpoint discovery |
|
|
622
|
+
| `Discovery/DNS/subdomains-top1million-5000.txt` | Fast subdomain enum |
|
|
623
|
+
| `Discovery/DNS/subdomains-top1million-20000.txt` | Thorough subdomain enum |
|
|
624
|
+
| `Discovery/DNS/dns-Jhaddix.txt` | Comprehensive DNS wordlist |
|
|
625
|
+
| `Usernames/top-usernames-shortlist.txt` | Quick username bruteforce |
|
|
626
|
+
| `Passwords/darkweb2017-top10000.txt` | Common password list |
|
|
627
|
+
|
|
628
|
+
---
|
|
629
|
+
|
|
630
|
+
## Useful Python Snippets
|
|
631
|
+
|
|
632
|
+
### Parse Nmap XML and Extract Services
|
|
633
|
+
|
|
634
|
+
```python
|
|
635
|
+
#!/usr/bin/env python3
|
|
636
|
+
"""
|
|
637
|
+
parse-nmap-xml.py — Extract host/port/service data from Nmap XML output.
|
|
638
|
+
Usage: python3 parse-nmap-xml.py <nmap-output.xml>
|
|
639
|
+
"""
|
|
640
|
+
import xml.etree.ElementTree as ET
|
|
641
|
+
import sys
|
|
642
|
+
import json
|
|
643
|
+
|
|
644
|
+
def parse_nmap(xml_file):
|
|
645
|
+
tree = ET.parse(xml_file)
|
|
646
|
+
root = tree.getroot()
|
|
647
|
+
results = []
|
|
648
|
+
|
|
649
|
+
for host in root.findall("host"):
|
|
650
|
+
status = host.find("status")
|
|
651
|
+
if status is None or status.get("state") != "up":
|
|
652
|
+
continue
|
|
653
|
+
|
|
654
|
+
addr_el = host.find("address[@addrtype='ipv4']")
|
|
655
|
+
ip = addr_el.get("addr") if addr_el is not None else "unknown"
|
|
656
|
+
|
|
657
|
+
hostname_el = host.find(".//hostname")
|
|
658
|
+
hostname = hostname_el.get("name") if hostname_el is not None else ""
|
|
659
|
+
|
|
660
|
+
ports = []
|
|
661
|
+
for port in host.findall(".//port"):
|
|
662
|
+
state = port.find("state")
|
|
663
|
+
if state is None or state.get("state") != "open":
|
|
664
|
+
continue
|
|
665
|
+
service = port.find("service")
|
|
666
|
+
ports.append({
|
|
667
|
+
"port": port.get("portid"),
|
|
668
|
+
"protocol": port.get("protocol"),
|
|
669
|
+
"service": service.get("name") if service is not None else "unknown",
|
|
670
|
+
"product": service.get("product", "") if service is not None else "",
|
|
671
|
+
"version": service.get("version", "") if service is not None else "",
|
|
672
|
+
})
|
|
673
|
+
|
|
674
|
+
results.append({"ip": ip, "hostname": hostname, "ports": ports})
|
|
675
|
+
|
|
676
|
+
return results
|
|
677
|
+
|
|
678
|
+
if __name__ == "__main__":
|
|
679
|
+
data = parse_nmap(sys.argv[1])
|
|
680
|
+
print(json.dumps(data, indent=2))
|
|
681
|
+
# Summary
|
|
682
|
+
print(f"\n[*] Hosts: {len(data)}")
|
|
683
|
+
print(f"[*] Total open ports: {sum(len(h['ports']) for h in data)}")
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
### Extract Web Targets from Nmap XML
|
|
687
|
+
|
|
688
|
+
```python
|
|
689
|
+
#!/usr/bin/env python3
|
|
690
|
+
"""
|
|
691
|
+
extract-web-targets.py — Pull all HTTP/HTTPS targets from Nmap XML.
|
|
692
|
+
Usage: python3 extract-web-targets.py <nmap-output.xml> > web-targets.txt
|
|
693
|
+
"""
|
|
694
|
+
import xml.etree.ElementTree as ET
|
|
695
|
+
import sys
|
|
696
|
+
|
|
697
|
+
WEB_PORTS = {"80": "http", "443": "https", "8080": "http", "8443": "https",
|
|
698
|
+
"8000": "http", "8888": "http", "3000": "http", "4443": "https"}
|
|
699
|
+
|
|
700
|
+
tree = ET.parse(sys.argv[1])
|
|
701
|
+
for host in tree.findall("host"):
|
|
702
|
+
addr = host.find("address[@addrtype='ipv4']")
|
|
703
|
+
if addr is None:
|
|
704
|
+
continue
|
|
705
|
+
ip = addr.get("addr")
|
|
706
|
+
for port in host.findall(".//port"):
|
|
707
|
+
state = port.find("state")
|
|
708
|
+
if state is None or state.get("state") != "open":
|
|
709
|
+
continue
|
|
710
|
+
portid = port.get("portid")
|
|
711
|
+
if portid in WEB_PORTS:
|
|
712
|
+
scheme = WEB_PORTS[portid]
|
|
713
|
+
print(f"{scheme}://{ip}:{portid}")
|
|
714
|
+
```
|
|
715
|
+
|
|
716
|
+
### Nuclei JSON to Markdown Table
|
|
717
|
+
|
|
718
|
+
```python
|
|
719
|
+
#!/usr/bin/env python3
|
|
720
|
+
"""
|
|
721
|
+
nuclei-to-md.py — Convert Nuclei JSON export to Markdown findings table.
|
|
722
|
+
Usage: python3 nuclei-to-md.py <nuclei-scan.json> > findings-table.md
|
|
723
|
+
"""
|
|
724
|
+
import json, sys
|
|
725
|
+
|
|
726
|
+
severity_order = {"critical": 0, "high": 1, "medium": 2, "low": 3, "info": 4}
|
|
727
|
+
|
|
728
|
+
findings = []
|
|
729
|
+
with open(sys.argv[1]) as f:
|
|
730
|
+
for line in f:
|
|
731
|
+
line = line.strip()
|
|
732
|
+
if line:
|
|
733
|
+
findings.append(json.loads(line))
|
|
734
|
+
|
|
735
|
+
findings.sort(key=lambda x: severity_order.get(x.get("info", {}).get("severity", "info"), 99))
|
|
736
|
+
|
|
737
|
+
print("| Severity | Name | Host | Template ID |")
|
|
738
|
+
print("|----------|------|------|-------------|")
|
|
739
|
+
for f in findings:
|
|
740
|
+
info = f.get("info", {})
|
|
741
|
+
print(f"| {info.get('severity','').upper()} | {info.get('name','')} | {f.get('host','')} | {f.get('template-id','')} |")
|
|
742
|
+
```
|
|
743
|
+
|
|
744
|
+
---
|
|
745
|
+
|
|
746
|
+
## Resources
|
|
747
|
+
|
|
748
|
+
| Resource | URL |
|
|
749
|
+
|---------|-----|
|
|
750
|
+
| Nmap Book (official) | https://nmap.org/book/man.html |
|
|
751
|
+
| Nmap NSE Script Reference | https://nmap.org/nsedoc/ |
|
|
752
|
+
| Masscan README | https://github.com/robertdavidgraham/masscan/blob/master/README.md |
|
|
753
|
+
| gobuster Documentation | https://github.com/OJ/gobuster#readme |
|
|
754
|
+
| ffuf Wiki | https://github.com/ffuf/ffuf/wiki |
|
|
755
|
+
| Nuclei Documentation | https://docs.projectdiscovery.io/tools/nuclei/overview |
|
|
756
|
+
| Nuclei Templates Docs | https://docs.projectdiscovery.io/templates/introduction |
|
|
757
|
+
| WhatWeb Wiki | https://github.com/urbanadventurer/WhatWeb/wiki |
|
|
758
|
+
| wafw00f Docs | https://github.com/EnableSecurity/wafw00f/blob/master/README.md |
|
|
759
|
+
| SecLists Repository | https://github.com/danielmiessler/SecLists |
|
|
760
|
+
| OWASP Testing Guide v4.2 | https://owasp.org/www-project-web-security-testing-guide/ |
|
|
761
|
+
| HackTricks — Network Scanning | https://book.hacktricks.xyz/network-services-pentesting/pentesting-network |
|
|
762
|
+
| HackTricks — Web Recon | https://book.hacktricks.xyz/network-services-pentesting/pentesting-web |
|
|
763
|
+
| PayloadsAllTheThings | https://github.com/swisskyrepo/PayloadsAllTheThings |
|
|
764
|
+
| Red Team Notes — Recon | https://www.ired.team/offensive-security/reconnaissance |
|
|
765
|
+
| EyeWitness Documentation | https://github.com/RedSiege/EyeWitness/blob/master/README.md |
|
|
766
|
+
| gowitness Documentation | https://github.com/sensepost/gowitness/wiki |
|
|
767
|
+
| ProjectDiscovery Tools | https://projectdiscovery.io/open-source |
|