Skip to content

Commit 76a54b8

Browse files
committed
Modification
1 parent 0ff20d3 commit 76a54b8

2 files changed

Lines changed: 199 additions & 96 deletions

File tree

README.md

Lines changed: 150 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -15,72 +15,80 @@
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

2221
Project 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
8694
git clone https://github.com/voltsparx/ASRFacet-Rb.git
@@ -90,83 +98,103 @@ bundle exec rake
9098
bundle 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

108110
Installed 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
172200
bundle exec rake
@@ -178,12 +206,38 @@ bundle exec rake test:install
178206
bundle 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

189243
Use ASRFacet-Rb only on systems you own or have explicit written permission to test.
Lines changed: 49 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)