Skip to content

Commit 829f7e3

Browse files
committed
Add guided demo documentation
1 parent a042df9 commit 829f7e3

6 files changed

Lines changed: 162 additions & 12 deletions

File tree

CHANGELOG.es.md

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,23 @@ y este proyecto sigue [Versionado Semántico](https://semver.org/spec/v2.0.0.htm
99
1010
---
1111

12+
## [1.4.0] - 2026-06-23
13+
14+
### Agregado
15+
16+
- Wizard de auditoría con perfiles `passive`, `portal` y `full`.
17+
- Guardrail de modo pasivo que bloquea inicio de portal, deauth, beacon flood, evil twin, auto-attack y karma, manteniendo disponibles escaneos, probe sniffer, captura PMKID, reportes, logs y limpieza.
18+
- Reporte de sesión compatible con redacción, incluyendo alcance, contadores, hallazgos, estado de datos capturados y log operativo.
19+
- Documentación de demo guiado para presentar el proyecto sin hardware en vivo.
20+
- Soporte `GET /api/autoattack?action=suggest` para sugerencias de template desde el dashboard.
21+
22+
### Cambiado
23+
24+
- README, arquitectura, setup, uso y safety ahora explican flujos pasivos, comportamiento de reportes redactados e higiene actual de releases.
25+
- La guía pública de releases se enfoca en el firmware soportado más reciente en vez de mantener tags obsoletos visibles.
26+
27+
---
28+
1229
## [1.3.0] - 2026-06-02
1330

1431
### Agregado
@@ -165,7 +182,5 @@ Primera version estable de ESP8266 PhantomKit — plataforma autonoma de auditor
165182

166183
---
167184

168-
[1.3.0]: https://github.com/chrisq-dev/phantom-kit/compare/v1.2.0...v1.3.0
169-
[1.2.0]: https://github.com/chrisq-dev/phantom-kit/compare/v1.1.0...v1.2.0
170-
[1.1.0]: https://github.com/chrisq-dev/phantom-kit/compare/v1.0.0...v1.1.0
171-
[1.0.0]: https://github.com/chrisq-dev/phantom-kit/releases/tag/v1.0.0
185+
[1.4.0]: https://github.com/chrisq-dev/phantom-kit/releases/tag/v1.4.0
186+
[1.3.0]: https://github.com/chrisq-dev/phantom-kit/releases/tag/v1.3.0

CHANGELOG.md

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99
1010
---
1111

12+
## [1.4.0] - 2026-06-23
13+
14+
### Added
15+
16+
- Audit wizard with `passive`, `portal`, and `full` profiles.
17+
- Passive-mode guardrail that blocks portal start, deauth, beacon flood, evil twin, auto-attack, and karma while keeping scans, probe sniffing, PMKID capture, reports, logs, and cleanup available.
18+
- Redaction-aware session report with audit scope, counters, findings, captured-data status, and operational log.
19+
- Guided portfolio demo documentation for presenting the project without live hardware.
20+
- `GET /api/autoattack?action=suggest` support for dashboard template suggestions.
21+
22+
### Changed
23+
24+
- README, architecture, setup, usage, and safety docs now explain passive workflows, report redaction behavior, and current release hygiene.
25+
- Public release guidance now focuses on the latest supported firmware instead of keeping obsolete release tags visible.
26+
27+
---
28+
1229
## [1.3.0] - 2026-06-02
1330

1431
### Added
@@ -165,7 +182,5 @@ First stable release of ESP8266 PhantomKit — a self-contained Wi-Fi security a
165182

166183
---
167184

168-
[1.3.0]: https://github.com/chrisq-dev/phantom-kit/compare/v1.2.0...v1.3.0
169-
[1.2.0]: https://github.com/chrisq-dev/phantom-kit/compare/v1.1.0...v1.2.0
170-
[1.1.0]: https://github.com/chrisq-dev/phantom-kit/compare/v1.0.0...v1.1.0
171-
[1.0.0]: https://github.com/chrisq-dev/phantom-kit/releases/tag/v1.0.0
185+
[1.4.0]: https://github.com/chrisq-dev/phantom-kit/releases/tag/v1.4.0
186+
[1.3.0]: https://github.com/chrisq-dev/phantom-kit/releases/tag/v1.3.0

README.es.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ phantom-kit/
210210
│ ├── architecture.es.md # Arquitectura del sistema en español
211211
│ ├── setup.md / setup.es.md # Guías de instalación
212212
│ ├── usage.md / usage.es.md # Guías de uso y escenarios
213+
│ ├── demo.md / demo.es.md # Demo guiado para portafolio sin hardware
213214
│ ├── safety.md / safety.es.md # Controles de seguridad y checklist
214215
│ └── legal.md / legal.es.md # Disclaimer legal
215216
├── CHANGELOG.md # Historial de versiones
@@ -223,12 +224,13 @@ phantom-kit/
223224
- [Arquitectura](docs/architecture.es.md)
224225
- [Guía de instalación](docs/setup.es.md)
225226
- [Guía de uso](docs/usage.es.md)
227+
- [Demo guiado para portafolio](docs/demo.es.md)
226228
- [Seguridad por Diseño](docs/safety.es.md)
227229
- [Disclaimer legal y ético](docs/legal.es.md)
228230
- [Política de seguridad](SECURITY.es.md)
229231
- [Guía de contribución](CONTRIBUTING.es.md)
230232
231-
La documentación en inglés está disponible en [README.md](README.md), [docs/architecture.md](docs/architecture.md), [docs/setup.md](docs/setup.md), [docs/usage.md](docs/usage.md), [docs/safety.md](docs/safety.md) y [docs/legal.md](docs/legal.md).
233+
La documentación en inglés está disponible en [README.md](README.md), [docs/architecture.md](docs/architecture.md), [docs/setup.md](docs/setup.md), [docs/usage.md](docs/usage.md), [docs/demo.md](docs/demo.md), [docs/safety.md](docs/safety.md) y [docs/legal.md](docs/legal.md).
232234
233235
## Releases
234236
@@ -240,6 +242,8 @@ Los releases taggeados (`v*.*.*`) se compilan con GitHub Actions. Cada release i
240242
241243
Usa el archivo de checksums para verificar los binarios descargados antes de flashear.
242244
245+
La página pública de releases se mantiene enfocada en el firmware soportado más reciente. Los tags viejos pueden eliminarse cuando ya no reflejan los controles de seguridad o documentación actuales.
246+
243247
---
244248
245249
## Escenarios de Auditoría
@@ -325,10 +329,14 @@ lib_deps =
325329
| v1.3 | Portal Auto-Match (seleccion de template por palabras clave) |
326330
| v1.3 | Emergency Wipe (mantener GPIO0 + endpoint /api/panic) |
327331
| v1.3 | Notificacion toast de credenciales en tiempo real |
332+
| v1.4 | Wizard de auditoría con perfiles pasivo, portal autorizado y laboratorio completo |
333+
| v1.4 | Guardrail de modo pasivo que bloquea módulos activos |
334+
| v1.4 | Reporte de sesión compatible con redacción, hallazgos y log operativo |
335+
| v1.4 | Documentación de demo guiado para portafolio |
328336

329337
### Planificado
330338

331-
**v1.4 — Tooling e integracion**
339+
**v1.5 — Tooling e integracion**
332340

333341
- [ ] `phantomkit-pull` — CLI en Python para descargar PMKIDs y credenciales del dashboard y pasarlos directamente a hashcat o un archivo local
334342
- [ ] Integracion con bot de Telegram — alertas de credenciales en tiempo real con mensajes formateados

README.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ phantom-kit/
210210
│ ├── architecture.es.md # Arquitectura del sistema en español
211211
│ ├── setup.md / setup.es.md # Installation guides
212212
│ ├── usage.md / usage.es.md # Usage guides and scenarios
213+
│ ├── demo.md / demo.es.md # Guided portfolio demo without hardware
213214
│ ├── safety.md / safety.es.md # Safety controls and operator checklist
214215
│ └── legal.md / legal.es.md # Legal disclaimers
215216
├── CHANGELOG.md # Version history
@@ -223,12 +224,13 @@ phantom-kit/
223224
- [Architecture](docs/architecture.md)
224225
- [Setup guide](docs/setup.md)
225226
- [Usage guide](docs/usage.md)
227+
- [Guided portfolio demo](docs/demo.md)
226228
- [Safety by Design](docs/safety.md)
227229
- [Legal and ethical disclaimer](docs/legal.md)
228230
- [Security policy](SECURITY.md)
229231
- [Contributing guide](CONTRIBUTING.md)
230232
231-
Spanish documentation is available through [README.es.md](README.es.md), [docs/architecture.es.md](docs/architecture.es.md), [docs/setup.es.md](docs/setup.es.md), [docs/usage.es.md](docs/usage.es.md), [docs/safety.es.md](docs/safety.es.md), and [docs/legal.es.md](docs/legal.es.md).
233+
Spanish documentation is available through [README.es.md](README.es.md), [docs/architecture.es.md](docs/architecture.es.md), [docs/setup.es.md](docs/setup.es.md), [docs/usage.es.md](docs/usage.es.md), [docs/demo.es.md](docs/demo.es.md), [docs/safety.es.md](docs/safety.es.md), and [docs/legal.es.md](docs/legal.es.md).
232234
233235
## Releases
234236
@@ -240,6 +242,8 @@ Tagged releases (`v*.*.*`) are built by GitHub Actions. Each release includes:
240242
241243
Use the checksum file to verify downloaded binaries before flashing.
242244
245+
The public release page is intentionally kept focused on the latest supported firmware. Older release tags may be removed when they no longer reflect the current safety controls or documentation.
246+
243247
---
244248
245249
## Audit Scenarios
@@ -325,10 +329,14 @@ lib_deps =
325329
| v1.3 | Portal Auto-Match (keyword-based template selection) |
326330
| v1.3 | Emergency Wipe (GPIO0 hold + /api/panic endpoint) |
327331
| v1.3 | Real-time credential toast notification |
332+
| v1.4 | Audit wizard with passive, portal-only, and full-lab profiles |
333+
| v1.4 | Passive-mode guardrail that blocks active modules |
334+
| v1.4 | Redaction-aware session report with findings and operational log |
335+
| v1.4 | Guided portfolio demo documentation |
328336

329337
### Planned
330338

331-
**v1.4 — Tooling and integration**
339+
**v1.5 — Tooling and integration**
332340

333341
- [ ] `phantomkit-pull` — Python CLI to pull captured PMKIDs and credentials from the dashboard and pipe directly into hashcat or a local file
334342
- [ ] Telegram bot integration — real-time credential alerts with formatted messages

docs/demo.es.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Demo Guiado para Portafolio
2+
3+
> [English version](demo.md)
4+
5+
Este guion sirve para presentar PhantomKit en portafolio aunque no tengas un ESP8266 a la mano. Explica qué hace el proyecto, cómo fluye la operación y qué controles lo hacen presentable como herramienta de entrenamiento autorizado.
6+
7+
## Pitch de 60 Segundos
8+
9+
PhantomKit es una plataforma autónoma de concientización Wi-Fi para ESP8266. El dispositivo ejecuta su propio AP de gestión, DNS cautivo, dashboard web, templates de portal, almacenamiento local y módulos Wi-Fi sin servidor externo en laptop. El proyecto demuestra seguridad embebida, manejo de protocolos Wi-Fi, diseño bajo límites reales de memoria y controles responsables como autenticación del dashboard, bloqueo de credenciales default, modo pasivo, salida redactada para demos, emergency wipe y checksums de releases.
10+
11+
## Qué Mostrar Sin Hardware
12+
13+
Usa el repositorio como artefacto principal del demo:
14+
15+
1. Abre `README.es.md` y explica el diagrama de arquitectura, threat model y assets de release.
16+
2. Abre `docs/safety.es.md` y resalta el perfil pasivo, redacción, hardening de auth y emergency wipe.
17+
3. Abre `src/wifi/web_server.cpp` y señala:
18+
- `/api/audit` para el wizard de auditoría.
19+
- `/api/passive` para activar/desactivar el modo pasivo.
20+
- `rejectIfPassive()` para bloquear módulos activos.
21+
- `handleAPIExportReport()` para reportes compatibles con redacción.
22+
4. Abre `.github/workflows/build.yml` y explica que los tags generan firmware, LittleFS y checksums.
23+
5. Muestra el release más reciente en GitHub y su `SHA256SUMS.txt`.
24+
25+
Con eso puedes demostrar diseño y criterio técnico sin simular que el hardware está corriendo en vivo.
26+
27+
## Guion de Dashboard
28+
29+
Usa estos puntos con screenshots más adelante, o como walkthrough narrado del código:
30+
31+
1. **Login y setup:** El dashboard usa una contraseña separada del AP y rechaza el acceso si siguen compiladas las credenciales `change-me-*`.
32+
2. **Wizard de auditoría:** El operador selecciona `passive`, `portal` o `full` y registra alcance con SSID/BSSID/canal.
33+
3. **Modo pasivo:** En modo pasivo, PhantomKit bloquea deauth, beacon flood, evil twin, auto-attack, inicio de portal y karma. Siguen disponibles escaneos, probe sniffer, captura PMKID, logs, reportes y wipe.
34+
4. **Flujo de portal:** Para concientización autorizada, el operador elige template, activa portal, usa valores de prueba y exporta un reporte de sesión.
35+
5. **Reporte:** El reporte incluye alcance, estado de modo pasivo, contadores, hallazgos, estado de datos capturados y log operativo. Con redacción activa, omite campos crudos.
36+
6. **Limpieza:** El operador ejecuta wipe desde dashboard o GPIO antes de guardar o entregar el dispositivo.
37+
38+
## Explicación para Portafolio
39+
40+
Puedes usar este párrafo en README, sitio personal o entrevista:
41+
42+
> PhantomKit no se presenta como un gadget ofensivo genérico. Está planteado como plataforma de laboratorio y concientización autorizada. El valor técnico está en la implementación ESP8266: un dispositivo limitado, de radio único, ejecutando dashboard local, DNS cautivo, templates LittleFS, módulos de frames Wi-Fi, parsing PMKID, reportes y controles de seguridad. El valor profesional está en el threat model, modo pasivo, demos redactados, checksums de release y documentación que explica dónde aplica la herramienta y dónde no.
43+
44+
## Notas de Issues / Roadmap
45+
46+
Los issues abiertos quedan como trabajo futuro real:
47+
48+
- `#4 PMKID`: el firmware actual captura/exporta líneas hashcat PMKID; persistencia a LittleFS/SD queda pendiente.
49+
- `#3 SD card`: sigue abierto porque falta autodetección SD y espejo de logs/credenciales.
50+
- `#2 Webhooks`: el firmware actual soporta ntfy/webhook HTTP configurable; retry, toggle y payloads específicos para Discord/Slack quedan pendientes.
51+
52+
Mantenerlos abiertos es mejor que cerrarlos antes de cumplir todos los criterios porque demuestra criterios de aceptación honestos.

docs/demo.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Guided Portfolio Demo
2+
3+
> [Versión en español](demo.es.md)
4+
5+
This demo script is designed for a portfolio walkthrough even when you do not have an ESP8266 on hand. It explains what the project does, how the operator flow works, and which safety controls make it suitable for authorized training.
6+
7+
## 60-Second Pitch
8+
9+
PhantomKit is a self-contained ESP8266 Wi-Fi security awareness platform. It runs its own management AP, captive DNS, web dashboard, portal templates, local storage, and Wi-Fi modules without a laptop-side server. The project demonstrates embedded security engineering, Wi-Fi protocol handling, constrained-memory design, and responsible tooling controls such as dashboard authentication, default credential blocking, passive mode, redacted demo output, emergency wipe, and release checksums.
10+
11+
## What To Show Without Hardware
12+
13+
Use the repository itself as the demo artifact:
14+
15+
1. Open `README.md` and explain the architecture diagram, threat model, and release assets.
16+
2. Open `docs/safety.md` and highlight the passive audit profile, redaction, auth hardening, and emergency wipe.
17+
3. Open `src/wifi/web_server.cpp` and point to:
18+
- `/api/audit` for the audit wizard.
19+
- `/api/passive` for passive-mode enforcement.
20+
- `rejectIfPassive()` for blocking active modules.
21+
- `handleAPIExportReport()` for redaction-aware reporting.
22+
4. Open `.github/workflows/build.yml` and explain that tagged releases build firmware, LittleFS, and checksums.
23+
5. Show the latest GitHub release and its `SHA256SUMS.txt`.
24+
25+
This is enough to demonstrate design and engineering judgment without pretending to run hardware live.
26+
27+
## Dashboard Walkthrough Script
28+
29+
Use these talking points with screenshots later, or as a narrated code walkthrough now:
30+
31+
1. **Login and setup:** The dashboard has a separate password from the AP password and refuses login while default `change-me-*` credentials are compiled in.
32+
2. **Audit wizard:** The operator selects `passive`, `portal`, or `full` and records SSID/BSSID/channel scope.
33+
3. **Passive mode:** In passive mode, PhantomKit blocks deauth, beacon flood, evil twin, auto-attack, portal start, and karma. Scans, probe sniffing, PMKID capture, logs, reports, and wipe remain available.
34+
4. **Portal workflow:** For authorized awareness training, the operator selects a template, starts the captive portal, captures only test values, then exports a session report.
35+
5. **Report:** The report includes scope, passive-mode state, counters, findings, captured-data status, and operational logs. With redaction enabled, raw captured fields are omitted.
36+
6. **Cleanup:** The operator uses dashboard wipe or GPIO wipe before storing or handing off the device.
37+
38+
## Portfolio Explanation
39+
40+
Use this paragraph in a README section, personal site, or interview:
41+
42+
> PhantomKit is not presented as a generic attack gadget. It is framed as an authorized lab and awareness platform. The technical value is in the ESP8266 implementation: a constrained single-radio device running a local dashboard, captive DNS, LittleFS templates, Wi-Fi frame modules, PMKID parsing, reporting, and safety controls. The professional value is in the threat model, passive-mode guardrails, redacted demos, release checksums, and documentation that explain where the tool is appropriate and where it is not.
43+
44+
## Issue Roadmap Notes
45+
46+
The open issues are intentionally scoped as future work:
47+
48+
- `#4 PMKID`: current firmware captures/export PMKID hashcat lines; persistence to LittleFS/SD remains future work.
49+
- `#3 SD card`: still open because SD auto-detect and log/credential mirroring are not implemented.
50+
- `#2 Webhooks`: current firmware supports ntfy/custom HTTP webhook configuration; retry, toggle, and provider-specific Discord/Slack payload polish remain future work.
51+
52+
Keeping those issues open is better than closing them prematurely because it shows honest acceptance criteria.

0 commit comments

Comments
 (0)