Skip to content

Repository files navigation

CloudGuard Security

 ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ██████╗ ██╗ ██╗ █████╗ ██████╗ ██████╗
██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗██╔════╝ ██║ ██║██╔══██╗██╔══██╗██╔══██╗
██║ ██║ ██║ ██║██║ ██║██║ ██║██║ ███╗██║ ██║███████║██████╔╝██║ ██║
██║ ██║ ██║ ██║██║ ██║██║ ██║██║ ██║██║ ██║██╔══██║██╔══██╗██║ ██║
╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝╚██████╔╝╚██████╔╝██║ ██║██║ ██║██████╔╝
╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝

Browser-based file system abuse via the File System Access API. Red-team demonstration. Chromium only. No software installation, no exploits, pure permission social engineering.


Screenshots

Landing page


Attack Flow

┌─────────────────────────────────────────────────────────────┐
│ TARGET │
│ │
│ visits lure page -> clicks "Start Deep Scan" │
│ | │
│ v │
│ browser asks: "Allow access to Documents?" │
│ | │
│ v │
│ [ALLOW] -> scanner animation -> files processed │
│ | │
│ v │
│ alert screen shown │
│ 72h countdown + Case ID │
└─────────────────────────────────────────────────────────────┘
|
POST /api/session (AES key)
|
┌─────────────────────────────────────────────────────────────┐
│ OPERATOR │
│ │
│ GET /api/admin -> session log + master key │
│ opens /decrypt -> enters token -> selects folder │
│ | │
│ v │
│ files restored │
└─────────────────────────────────────────────────────────────┘

Key design: AES-256 key lives server-side only. Target cannot self-recover.


Modes

ModeBehaviorUse Case
lock (default)AES-256-GCM encrypt files in place, show alert screenFile encryption demo
dropFake scan (always clean), silently write file to folderPayload delivery demo

Quick Start

npm install
# Lock mode
PORT=7654 ADMIN_TOKEN=StrongSecret node server.js
# Drop mode
PORT=7654 MODE=drop \
PAYLOAD_FILE=/path/to/update.exe \
PAYLOAD_FILENAME=WindowsUpdate.exe \
ADMIN_TOKEN=StrongSecret \
node server.js

Expose via Cloudflare Tunnel (required for HTTPS on remote targets):

cloudflared tunnel --url http://localhost:7654 --no-autoupdate

Configuration

VariableDefaultDescription
PORT3000HTTP port
ADMIN_TOKEN123123Recovery console password
MODElocklock or drop
PAYLOAD_FILE-Binary to drop (EXE, DLL...)
PAYLOAD_FILENAMEWindowsUpdate.batFilename written to disk
PAYLOAD_CONTENTBAT stubInline text fallback

API

MethodPathAuthDescription
GET/-Lure page
GET/decrypt-Recovery console
GET/api/config-Active mode + payload config
POST/api/session-Register session, return AES key
GET/api/adminX-Admin-Token headerMaster key + session log

File Structure

browser-ransomware-poc/
|-- server.js Express server (key mgmt, session registry)
|-- public/
| |-- index.html Lure page (target-facing)
| `-- decrypt.html Recovery console (operator-facing)
|-- master.key AES-256 master key (auto-generated, gitignored)
|-- sessions.json Session log (gitignored)
`-- package.json

Requirements

  • Node.js 18+
  • Chrome / Edge / Opera (Firefox and Safari block showDirectoryPicker)
  • cloudflared for HTTPS tunnel (optional but recommended)

Security Notes

FindingSeverityStatus
Admin token exposed in URLHighFixed: header-only (X-Admin-Token)
No input validation on /api/sessionMediumFixed: bounds + sanitize
Missing security headersMediumFixed
Timing-unsafe token comparisonLowFixed: timingSafeEqual
Weak default tokenLowWarned at startup
Key file permissionsLowFixed: chmod 600

Limitations

  • Chromium only (showDirectoryPicker not in Firefox / Safari)
  • Single master key per deployment
  • HTTPS required for showDirectoryPicker on non-localhost origins
  • No rate limiting or DoS protection

Credits

  • Check Point Research (2026) - Original research on browser-based file system abuse via the File System Access API
  • Web Crypto API / File System Access API - W3C / WHATWG specifications
  • GSAP - GreenSock Animation Platform
  • Plus Jakarta Sans / IBM Plex Mono - Google Fonts

Disclaimer

Authorized red-team and educational use only.

About

Proof-of-concept demonstrating browser-native file encryption via the File System Access API. No software installation required - runs entirely within the browser sandbox. Built for authorized red-team assessments.

Topics

Resources

Stars

14 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages