1515 <a href =" https://github.com/voltsparx/ASRFacet-Rb/actions/workflows/pages.yml " ><img src =" https://github.com/voltsparx/ASRFacet-Rb/actions/workflows/pages.yml/badge.svg " alt =" Docs Website " ></a >
1616</p >
1717
18- ASRFacet-Rb is a pipeline-based reconnaissance framework for authorized testing, built to track, correlate, and evolve attack surface intelligence over time.
19- It is designed for repeatable operator workflows, not one-off scans.
20- Core idea: ** recon that builds relationships, not just lists** .
18+ ASRFacet-Rb is a Ruby 3.2+ framework for authorized attack surface reconnaissance.
19+ It is built for repeatable workflows, relationship-aware intelligence, and run-to-run change tracking, not one-off scanner output.
2120
2221Project website: [ https://voltsparx.github.io/ASRFacet-Rb/ ] ( https://voltsparx.github.io/ASRFacet-Rb/ )
2322
24- ## Why This Exists
23+ ## Quick Navigation
2524
26- Most recon tools optimize for one-time output. That creates three common problems:
25+ - [ What It Solves] ( #what-it-solves )
26+ - [ Architecture and Process Flow] ( #architecture-and-process-flow )
27+ - [ Installation Guide] ( #installation-guide )
28+ - [ Usage Guide with Examples] ( #usage-guide-with-examples )
29+ - [ Output, Storage, and Reporting] ( #output-storage-and-reporting )
30+ - [ Testing and Release Verification] ( #testing-and-release-verification )
31+ - [ Troubleshooting Guide] ( #troubleshooting-guide )
32+ - [ Documentation Map] ( #documentation-map )
2733
28- - Results are scattered across disconnected commands.
29- - Findings are hard to compare between runs.
30- - Relationships between domains, IPs, services, and changes are lost.
34+ ## What It Solves
3135
32- ASRFacet-Rb addresses this with :
36+ Most recon tools are optimized for snapshots. That often creates :
3337
34- - A stage-driven pipeline.
35- - Structured multi-format output.
36- - Relationship-aware correlation.
37- - Memory-backed change tracking.
38+ - Scattered results across separate tools and files
39+ - Weak run-to-run comparability
40+ - Lost relationships between hosts, IPs, ports, services, and findings
3841
39- ## Visual Pipeline
42+ ASRFacet-Rb addresses this with pipeline stages, memory-backed tracking, and structured output.
4043
41- ``` text
42- [ Passive Discovery ]
43- ->
44- [ Active Validation ]
45- ->
46- [ Service and Web Mapping ]
47- ->
48- [ Correlation Engine ]
49- ->
50- [ Tracking and Change Summary ]
51- ```
44+ ## Architecture and Process Flow
45+
46+ ### Execution Roles
5247
53- ## Engine Model
48+ | Layer | Responsibility |
49+ | ---| ---|
50+ | Scheduler | Decides what runs next |
51+ | Engines | Execute bounded tasks |
52+ | Investigator | Reacts to significant findings |
53+ | Fusion/Store | Persists and correlates results |
5454
55- ASRFacet-Rb names its internal systems as a clear execution model:
55+ ### Pipeline Visualization
5656
57- - ` Discovery Engine ` : passive sources, DNS expansion, candidate generation.
58- - ` Validation Engine ` : scoped DNS/port/HTTP confirmation.
59- - ` Correlation Engine ` : graph links, scoring, and prioritization.
60- - ` Tracking Engine ` : recon memory and run-to-run change detection.
57+ ``` mermaid
58+ flowchart LR
59+ A[Passive Discovery] --> B[Active Validation]
60+ B --> C[Service and Web Mapping]
61+ C --> D[Correlation Engine]
62+ D --> E[Tracking and Change Summary]
63+ ```
6164
62- Execution boundaries stay strict:
65+ ### Stage Intent
6366
64- - Scheduler decides.
65- - Engines execute.
66- - Investigator reacts.
67- - Fusion/store persists.
67+ | Stage | Main Outcome |
68+ | ---| ---|
69+ | Passive Discovery | Candidate assets from low-noise sources |
70+ | Active Validation | Confirmed hosts, IPs, open ports, and HTTP surfaces |
71+ | Service/Web Mapping | Reachable application/service context |
72+ | Correlation Engine | Relationship mapping and prioritization |
73+ | Tracking Engine | Delta detection and historical visibility |
6874
69- ## When To Use / When Not To Use
75+ ## Installation Guide
7076
71- Use it if:
77+ ### Requirements
7278
73- - You want repeatable recon pipelines.
74- - You care about relationships between assets.
75- - You need offline-capable reporting and historical tracking.
79+ - Ruby ` >= 3.2 `
80+ - Bundler
81+ - Explicit permission to test targets
7682
77- Do not use it if:
83+ ### Installation Paths at a Glance
7884
79- - You only want very fast one-command spray scans.
80- - You need a fully hosted cloud GUI instead of local-first workflows.
81- - You do not care about structured, reusable output.
85+ | Path | Use Case |
86+ | ---| ---|
87+ | ` bundle exec ` from repo | Development and contribution |
88+ | ` install/*.sh ` / ` install/windows.ps1 ` | Managed local system install |
89+ | Website installers (` docs/website/web_assets/installers ` ) | Download-first install flow |
8290
83- ## 30-Second Quick Start
91+ ### 30-Second Quick Start (Repo Mode)
8492
8593``` bash
8694git clone https://github.com/voltsparx/ASRFacet-Rb.git
@@ -90,83 +98,103 @@ bundle exec rake
9098bundle exec ruby bin/asrfacet-rb scan example.com --passive-only
9199```
92100
93- ## Installation Paths
94-
95- Repository installers:
101+ ### Managed Installer Modes
96102
97- - ` install/windows.ps1 `
98- - ` install/macos.sh `
99- - ` install/linux.sh `
100-
101- Website download installers:
102-
103- - ` docs/website/web_assets/installers/asrfacet-rb-installer-windows.ps1 `
104- - ` docs/website/web_assets/installers/asrfacet-rb-installer-windows.cmd `
105- - ` docs/website/web_assets/installers/asrfacet-rb-installer-macos.sh `
106- - ` docs/website/web_assets/installers/asrfacet-rb-installer-linux.sh `
103+ | Mode | Description |
104+ | ---| ---|
105+ | ` install ` | Install framework and launchers |
106+ | ` test ` | Repo-local smoke install |
107+ | ` update ` | Refresh managed install |
108+ | ` uninstall ` | Remove managed install and launchers |
107109
108110Installed command aliases:
109111
110112- ` asrfacet-rb `
111113- ` asrfrb `
112114
113- Installer prompt theme (all platforms) :
115+ Installer prompt theme:
114116
115117- ` [ASRFacet-Rb][INFO] `
116118- ` [ASRFacet-Rb][ OK ] `
117119- ` [ASRFacet-Rb][WARN] `
118120- ` [ASRFacet-Rb][FAIL] `
119121
120- ## Command Examples
122+ ## Usage Guide with Examples
123+
124+ ### Quick Cheat Sheet
125+
126+ ![ ASRFacet-Rb Quick Command Cheat Sheet] ( docs/images/cheatsheets/quick-command-cheatsheet.svg )
127+
128+ ### Core Commands
129+
130+ | Command | Purpose | Example |
131+ | ---| ---| ---|
132+ | ` scan DOMAIN ` | Full pipeline | ` asrfacet-rb scan example.com ` |
133+ | ` passive DOMAIN ` | Passive-only discovery | ` asrfacet-rb passive example.com ` |
134+ | ` ports HOST ` | Focused port validation | ` asrfacet-rb ports api.example.com --ports top1000 ` |
135+ | ` dns DOMAIN ` | DNS-focused collection | ` asrfacet-rb dns example.com ` |
136+ | ` --console ` | Interactive shell mode | ` asrfacet-rb --console ` |
137+ | ` --web-session ` | Local web control panel | ` asrfacet-rb --web-session ` |
138+ | ` about ` | Framework overview | ` asrfacet-rb about ` |
139+ | ` --explain TOPIC ` | Built-in topic guidance | ` asrfacet-rb --explain scope ` |
140+
141+ ### Guided Workflow 1: Passive First
121142
122143``` bash
123- bundle exec ruby bin/asrfacet-rb scan example.com --format html --output report.html
124- bundle exec ruby bin/asrfacet-rb passive example.com --format json --output passive.json
125- bundle exec ruby bin/asrfacet-rb ports api.example.com --ports top1000
126- bundle exec ruby bin/asrfacet-rb dns example.com
127- bundle exec ruby bin/asrfacet-rb --console
128- bundle exec ruby bin/asrfacet-rb --web-session
129- bundle exec ruby bin/asrfacet-rb about
130- bundle exec ruby bin/asrfacet-rb --explain scope
144+ asrfacet-rb passive example.com --format json --output passive.json
145+ asrfacet-rb dns example.com
146+ asrfacet-rb ports example.com --ports top100
131147```
132148
133- ## Output and Storage
149+ When to use: low-noise recon kickoff with manual expansion.
134150
135- Output formats:
151+ ### Guided Workflow 2: Full Report Bundle
136152
137- - ` cli `
138- - ` txt `
139- - ` html `
140- - ` json `
153+ ``` bash
154+ asrfacet-rb scan example.com --monitor --memory --format html --output report.html
155+ ```
141156
142- Persistent paths:
157+ When to use: recurring assessments where historical deltas matter.
143158
144- - ` ~/.asrfacet_rb/output/ `
145- - ` ~/.asrfacet_rb/memory/ `
146- - ` ~/.asrfacet_rb/web_sessions/ `
159+ ### Guided Workflow 3: Web Session and Operator UX
147160
148- ## Why Not Just Use X Tool?
161+ ``` bash
162+ asrfacet-rb --web-session
163+ ```
149164
150- Traditional recon tools are often great at point-in-time enumeration.
151- ASRFacet-Rb is focused on ** continuous, structured, and relational intelligence** with operator memory and change tracking built in.
165+ When to use: visual control panel flow for recon, mapping, and report access.
152166
153- ## Trust Signals
167+ ## Output, Storage, and Reporting
154168
155- - Version file: [ ` VERSION ` ] ( /VERSION )
156- - Changelog: [ ` CHANGELOG.md ` ] ( /CHANGELOG.md )
157- - Roadmap: [ ` ROADMAP.md ` ] ( /ROADMAP.md )
158- - Website docs: [ https://voltsparx.github.io/ASRFacet-Rb/ ] ( https://voltsparx.github.io/ASRFacet-Rb/ )
169+ ### Output Formats
159170
160- ## Documentation Map
171+ | Format | Best For |
172+ | ---| ---|
173+ | ` cli ` | Live operator feedback |
174+ | ` txt ` | Plain-text sharing |
175+ | ` html ` | Human-friendly reports with richer structure |
176+ | ` json ` | Automation and downstream tooling |
161177
162- - [ ` docs/getting-started.md ` ] ( /docs/getting-started.md )
163- - [ ` docs/architecture.md ` ] ( /docs/architecture.md )
164- - [ ` docs/web-session.md ` ] ( /docs/web-session.md )
165- - [ ` docs/reporting.md ` ] ( /docs/reporting.md )
166- - [ ` docs/lab.md ` ] ( /docs/lab.md )
167- - [ ` docs/publishing.md ` ] ( /docs/publishing.md )
178+ ### Storage Layout
179+
180+ | Path | Data |
181+ | ---| ---|
182+ | ` ~/.asrfacet_rb/output/ ` | Report bundles and streams |
183+ | ` ~/.asrfacet_rb/memory/ ` | Recon memory and deltas |
184+ | ` ~/.asrfacet_rb/web_sessions/ ` | Saved web session state |
185+
186+ ### Reporting Process Visualization
187+
188+ ``` mermaid
189+ flowchart TD
190+ A[Scan Run] --> B[Result Store]
191+ B --> C[CLI/TXT/HTML/JSON Formatters]
192+ C --> D[Report Bundle Saved]
193+ D --> E[Recon Memory Updated]
194+ E --> F[Change Summary Available]
195+ ```
168196
169- ## Test and Verify
197+ ## Testing and Release Verification
170198
171199``` bash
172200bundle exec rake
@@ -178,12 +206,38 @@ bundle exec rake test:install
178206bundle exec rake test:website_installers
179207```
180208
181- Latest local verification in this repo :
209+ Verification snapshot :
182210
183211- Date: ` 2026-04-09 `
184212- Result: ` 53 examples, 0 failures `
185213- Full verify gate: ` bundle exec rake ` passed
186214
215+ ## Troubleshooting Guide
216+
217+ | Symptom | Likely Cause | Quick Fix |
218+ | ---| ---| ---|
219+ | ` bundle ` command missing | Bundler not installed | ` gem install bundler ` |
220+ | Installer exits on permission/path | Existing unmanaged target path | Remove/rename conflicting path or use managed location |
221+ | Noisy or slow run | Too many threads or broad scope | Lower ` --threads ` , tighten ` --scope ` , use passive-first flow |
222+ | Report confusion | Multiple formats generated | Start with ` report.html ` then inspect ` report.json ` for automation |
223+ | Web mode not reachable | Host/port mismatch | Start with ` --web-host 127.0.0.1 --web-port 4567 ` and retry |
224+
225+ ## Trust Signals
226+
227+ - Version file: [ ` VERSION ` ] ( /VERSION )
228+ - Changelog: [ ` CHANGELOG.md ` ] ( /CHANGELOG.md )
229+ - Roadmap: [ ` ROADMAP.md ` ] ( /ROADMAP.md )
230+ - Website docs: [ https://voltsparx.github.io/ASRFacet-Rb/ ] ( https://voltsparx.github.io/ASRFacet-Rb/ )
231+
232+ ## Documentation Map
233+
234+ - [ ` docs/getting-started.md ` ] ( /docs/getting-started.md )
235+ - [ ` docs/architecture.md ` ] ( /docs/architecture.md )
236+ - [ ` docs/web-session.md ` ] ( /docs/web-session.md )
237+ - [ ` docs/reporting.md ` ] ( /docs/reporting.md )
238+ - [ ` docs/lab.md ` ] ( /docs/lab.md )
239+ - [ ` docs/publishing.md ` ] ( /docs/publishing.md )
240+
187241## Authorized Use
188242
189243Use ASRFacet-Rb only on systems you own or have explicit written permission to test.
0 commit comments