Add recon network batch 1: stack banners and smart port profiles.
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled

Parse technology stack from crawl headers, grab SSH/HTTP/WinRM banners, merge smart port bundles with FleetPorts, and suggest deploy-kit lane plus SSM for EC2 metadata targets.
This commit is contained in:
AetherForge
2026-06-07 12:04:04 -07:00
parent 6122c3ebfc
commit 11c15cdcfb
21 changed files with 3314 additions and 51 deletions

38
scripts/_update_docs.py Normal file
View File

@@ -0,0 +1,38 @@
from pathlib import Path
import re
readme = Path(r"G:/crypto miner/tests/README.md")
text = readme.read_text(encoding="utf-8")
text = text.replace(
"Go server **960** `Test*` · Go agent **670** `Test*` · Vitest **849** tests in **109** files · Playwright **26** tests in **9** spec files.",
"Go server **1001** `Test*` · Go agent **680** `Test*` · Vitest **867** tests in **113** files · Playwright **32** tests in **10** spec files.",
)
if "Subnet recon" not in text:
text = text.replace(
"| **Fleet recon** | `.\\scripts\\test-suite.ps1 -ReconOnly` | Vuln/CVE, cred graph, triple-onion gates, Path Tracer discover, recon Vitest |",
"| **Fleet recon** | `.\\scripts\\test-suite.ps1 -ReconOnly` | Vuln/CVE, cred graph, triple-onion gates, Path Tracer discover, recon Vitest |\n| **Deploy Recon** | `.\\scripts\\test-suite.ps1 -Recon` | `internal/recon`, recon API + deploy-kit, Deploy Recon Vitest + `deploy-recon.spec.ts` E2E (unless `-SkipE2E`) |\n| **Subnet recon** | `.\\scripts\\test-suite.ps1 -SubnetRecon` | Agent subnet_recon packages + `fleetDiscoveries` Vitest |",
)
# remove duplicate Deploy Recon if added twice
text = text.replace(
"| **Deploy Recon** | `.\\scripts\\test-suite.ps1 -Recon` | `internal/recon`, `/recon/scan` + deploy-kit API, `DeployReconPage` + `deployRecon` Vitest |\n",
"",
)
if ".\\scripts\\test-suite.ps1 -SubnetRecon" not in text:
text = text.replace(
".\\scripts\\test-suite.ps1 -ReconOnly",
".\\scripts\\test-suite.ps1 -Recon\n.\\scripts\\test-suite.ps1 -SubnetRecon\n.\\scripts\\test-suite.ps1 -ReconOnly",
1,
)
readme.write_text(text, encoding="utf-8")
problems = Path(r"G:/crypto miner/PROBLEMS.md")
pt = problems.read_text(encoding="utf-8")
pt = pt.replace(
"Regression tables and counts: Go server **901**, agent **657**, Vitest **849**, Playwright **26**",
"Regression tables and counts: Go server **1001**, agent **680**, Vitest **867**, Playwright **32**",
)
if "Deploy Recon port scan" not in pt:
pt = pt.replace(
"## Do not commit",
"| **Deploy Recon port scan / crawl** | TCP port dial and same-origin HTTP crawl execute on the **dashboard host** (Go server), not from fleet agents. Firewall path must allow the server to reach the owned target. |\n| **Deploy Recon SSRF** | UI copies SSRF probe URLs; **no automated form submit** — operator pastes probe URL into owned target fields manually to validate server-side fetch to install.sh. |\n\n## Do not commit",
)
problems.write_text(pt, encoding="utf-8")
print("done")