chore: bump version to 1.2; scrub personal details from docs
- Version 1.1 -> 1.2 in the hak5 manifest and MCP serverInfo. - Removed leaked personal details from process docs: device root password, the user's personal iPhone SSID (authorized-test target), the local /Users/... checkout path, and the device IP where it appeared alongside the password. Replaced with <device-password>, <authorized-test-ssid>, <repo>, and <device-ip> placeholders.
This commit is contained in:
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
- No new Python deps; no pip; device python3-light-compatible (no urllib/http.server/sqlite3 stdlib).
|
- No new Python deps; no pip; device python3-light-compatible (no urllib/http.server/sqlite3 stdlib).
|
||||||
- Truth = device state (UCI `/etc/config/wireless`, `/etc/config/pineapd`, `iw dev`, live pineapd socket), never UI cache.
|
- Truth = device state (UCI `/etc/config/wireless`, `/etc/config/pineapd`, `iw dev`, live pineapd socket), never UI cache.
|
||||||
- Attacks only against `Zuccaro_iPhone_15` (authorized). No deauth blasts; band-aware inject only.
|
- Attacks only against `<authorized-test-ssid>` (authorized). No deauth blasts; band-aware inject only.
|
||||||
- SSID pool broadcast stays disabled (stock SIGSEGV bug).
|
- SSID pool broadcast stays disabled (stock SIGSEGV bug).
|
||||||
- Writes must be verified by re-read before success is reported.
|
- Writes must be verified by re-read before success is reported.
|
||||||
- Follow existing code style: `device_run()`, `daemon_sock_call()`, `_daemon_proxy()` helpers; `h()` DOM helper in views; routes registered with `ROUTER.add`.
|
- Follow existing code style: `device_run()`, `daemon_sock_call()`, `_daemon_proxy()` helpers; `h()` DOM helper in views; routes registered with `ROUTER.add`.
|
||||||
@@ -107,6 +107,6 @@
|
|||||||
### Task 6: Deploy + on-device verification
|
### Task 6: Deploy + on-device verification
|
||||||
|
|
||||||
- [ ] **Step 1:** Run full test suite locally (each module separately).
|
- [ ] **Step 1:** Run full test suite locally (each module separately).
|
||||||
- [ ] **Step 2:** Deploy via `./scripts/deploy.sh --password 'Bryce9205'`.
|
- [ ] **Step 2:** Deploy via `./scripts/deploy.sh --password '<device-password>'`.
|
||||||
- [ ] **Step 3:** On-device smoke: login, status, health endpoint, attacks deploy/stop round-trip (Evil WPA on 2.4GHz with `Zuccaro_iPhone_15` SSID — no deauth), enterprise deploy/stop, MCP `initialize`+`tools/list` via curl.
|
- [ ] **Step 3:** On-device smoke: login, status, health endpoint, attacks deploy/stop round-trip (Evil WPA on 2.4GHz with `<authorized-test-ssid>` SSID — no deauth), enterprise deploy/stop, MCP `initialize`+`tools/list` via curl.
|
||||||
- [ ] **Step 4:** Leave device in clean state (no active attacks, hop resumed, pool disabled, wlan1mon up).
|
- [ ] **Step 4:** Leave device in clean state (no active attacks, hop resumed, pool disabled, wlan1mon up).
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
**Architecture:** Single-file client-side change: the recon view in `views.js` drops the `encValue`/`encSub` text nodes, draws the doughnut with `legend:false` and a taller height, and populates a new HTML legend container from the existing `encCounts` bucket map. `chart.js`'s `MiniChart.doughnut` is unchanged (its canvas `legend` option is simply no longer used by the enc card). CSS adds flex-wrap legend styles.
|
**Architecture:** Single-file client-side change: the recon view in `views.js` drops the `encValue`/`encSub` text nodes, draws the doughnut with `legend:false` and a taller height, and populates a new HTML legend container from the existing `encCounts` bucket map. `chart.js`'s `MiniChart.doughnut` is unchanged (its canvas `legend` option is simply no longer used by the enc card). CSS adds flex-wrap legend styles.
|
||||||
|
|
||||||
**Tech Stack:** Vanilla JS (no framework), canvas via `MiniChart.doughnut` in `chart.js`, plain CSS in `app.css`. Device deploy via `scripts/deploy.sh --password 'Bryce9205'`. Tests: none exist for the frontend; verification is via the deployed device + backend test suite (must stay green).
|
**Tech Stack:** Vanilla JS (no framework), canvas via `MiniChart.doughnut` in `chart.js`, plain CSS in `app.css`. Device deploy via `scripts/deploy.sh --password '<device-password>'`. Tests: none exist for the frontend; verification is via the deployed device + backend test suite (must stay green).
|
||||||
|
|
||||||
## Global Constraints
|
## Global Constraints
|
||||||
|
|
||||||
@@ -156,17 +156,17 @@ Expected: exit 0, no output.
|
|||||||
|
|
||||||
- [ ] **Step 6: Run the backend test suite**
|
- [ ] **Step 6: Run the backend test suite**
|
||||||
|
|
||||||
Run: `cd /Users/bzuccaro/Documents/AI/Mark-VIII && python3 -m pytest tests/ -q 2>&1 | tail -3`
|
Run: `cd <repo> && python3 -m pytest tests/ -q 2>&1 | tail -3`
|
||||||
Expected: `291 passed` (or the current passing count) — no regressions from unrelated files.
|
Expected: `291 passed` (or the current passing count) — no regressions from unrelated files.
|
||||||
|
|
||||||
- [ ] **Step 7: Deploy to the device**
|
- [ ] **Step 7: Deploy to the device**
|
||||||
|
|
||||||
Run: `cd /Users/bzuccaro/Documents/AI/Mark-VIII && ./scripts/deploy.sh --password 'Bryce9205'`
|
Run: `cd <repo> && ./scripts/deploy.sh --password '<device-password>'`
|
||||||
Expected: deploy completes with `EXTRACT_OK` / success output.
|
Expected: deploy completes with `EXTRACT_OK` / success output.
|
||||||
|
|
||||||
- [ ] **Step 8: Verify the enc card on the device**
|
- [ ] **Step 8: Verify the enc card on the device**
|
||||||
|
|
||||||
Recreate the CDP venv if absent (`python3 -m venv /tmp/cdpenv2 && /tmp/cdpenv2/bin/pip install -q websocket-client`), then drive headless Chrome against http://172.16.52.1:8080 (login `Bryce9205`, go to `#/recon`, wait ~20s) and assert:
|
Recreate the CDP venv if absent (`python3 -m venv /tmp/cdpenv2 && /tmp/cdpenv2/bin/pip install -q websocket-client`), then drive headless Chrome against http://<device-ip>:8080 (login `<device-password>`, go to `#/recon`, wait ~20s) and assert:
|
||||||
1. `document.getElementById('recon-encryption')` canvas has non-zero `width` attribute and the card is visible (not `.hidden`).
|
1. `document.getElementById('recon-encryption')` canvas has non-zero `width` attribute and the card is visible (not `.hidden`).
|
||||||
2. `document.getElementById('recon-enc-legend')` contains entries whose text matches `/WPA2/` and `/\d+/`, and no `recon-card-value` element exists inside the enc card.
|
2. `document.getElementById('recon-enc-legend')` contains entries whose text matches `/WPA2/` and `/\d+/`, and no `recon-card-value` element exists inside the enc card.
|
||||||
3. Zero `Runtime.exceptionThrown` events.
|
3. Zero `Runtime.exceptionThrown` events.
|
||||||
@@ -175,5 +175,5 @@ Expected: all three pass; screenshots unavailable, text-state assertions only.
|
|||||||
- [ ] **Step 9: Commit**
|
- [ ] **Step 9: Commit**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /Users/bzuccaro/Documents/AI/Mark-VIII && git add payload/user/remote_access/pager-webui/www/js/views.js payload/user/remote_access/pager-webui/www/css/app.css && git commit -m "ui: encryption landscape card — ring + HTML legend with counts"
|
cd <repo> && git add payload/user/remote_access/pager-webui/www/js/views.js payload/user/remote_access/pager-webui/www/css/app.css && git commit -m "ui: encryption landscape card — ring + HTML legend with counts"
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ Stop button, and a post-write poll (UCI + `iw dev`) before success toast.
|
|||||||
|
|
||||||
## Constraints
|
## Constraints
|
||||||
|
|
||||||
- Authorized target: `Zuccaro_iPhone_15` only (intermittent). Non-client
|
- Authorized target: `<authorized-test-ssid>` only (intermittent). Non-client
|
||||||
environment; no deauth blasts; verify on-wire via monitor capture when needed.
|
environment; no deauth blasts; verify on-wire via monitor capture when needed.
|
||||||
- SSID pool stays disabled (stock bug; re-enabling re-crashes pineapd).
|
- SSID pool stays disabled (stock bug; re-enabling re-crashes pineapd).
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
"title": "Mark VIII",
|
"title": "Mark VIII",
|
||||||
"author": "c4ch3c4d3",
|
"author": "c4ch3c4d3",
|
||||||
"description": "Mark VII-style web management UI for the WiFi Pineapple Pager",
|
"description": "Mark VII-style web management UI for the WiFi Pineapple Pager",
|
||||||
"version": "1.1",
|
"version": "1.2",
|
||||||
"category": "remote_access",
|
"category": "remote_access",
|
||||||
"tags": ["remote-access", "web-interface", "device-management", "pineap"],
|
"tags": ["remote-access", "web-interface", "device-management", "pineap"],
|
||||||
"firmware": "Pineapple Pager 24.10.1"
|
"firmware": "Pineapple Pager 24.10.1"
|
||||||
|
|||||||
@@ -3953,7 +3953,7 @@ def _mcp_dispatch(msg):
|
|||||||
'resources': {'listChanged': False, 'subscribe': False},
|
'resources': {'listChanged': False, 'subscribe': False},
|
||||||
'prompts': {'listChanged': False},
|
'prompts': {'listChanged': False},
|
||||||
},
|
},
|
||||||
'serverInfo': {'name': 'mark-viii', 'version': '1.1'}}}
|
'serverInfo': {'name': 'mark-viii', 'version': '1.2'}}}
|
||||||
if method == 'notifications/initialized':
|
if method == 'notifications/initialized':
|
||||||
return 202, None
|
return 202, None
|
||||||
if method == 'ping':
|
if method == 'ping':
|
||||||
|
|||||||
Reference in New Issue
Block a user