Warning
Educational / Demonstration Purposes Only
- Grabber is a social engineering proof-of-concept (POC) designed to demonstrate how browser permissions (camera, location) can be exploited when users trust unverified sites.
- This tool is NOT intended for malicious use. The author takes no responsibility for any misuse.
- π Overview
- β¨ Features
- β‘ Installation
- π Set Admin Credentials
- π Usage Flow
- π Data Storage
- π Project Structure
- βοΈ Legal / Educational Use Only
β οΈ Disclaimer- π License
Grabber simulates a website with a seemingly legitimate use of gps and camera permissions. Its goal is to raise awareness about how easily sensitive data can be harvested when permissions are granted to untrusted websites.
Terminal Menu:
User-Facing Page Themes:
Admin Panel:
- The site appears to be a legitimate website requiring camera and location permissions.
- Collects:
- Server-facing IP
- Public IP (via IPify API)
- WebRTC leak IPs
- If location permission is granted:
- Displays their location on an interactive OpenStreetMap.
- If camera permission is granted:
- Silently captures 3 front-facing photos in the background.
- Displays a fake error popup:
"Failed to initialize camera."
- Logs stored in
data.json. - Captured photos saved in
/images.
An admin dashboard allows:
β Viewing IP details (with WHOIS info)
β Viewing captured geolocation on an interactive map
β Viewing captured images (single or carousel with autoplay)
β Secure access β The admin panel is only accessible from localhost or 127.0.0.1, preventing external access.
- β Disguised UI β Multiple user-facing HTML themes that appear to be websites legitimately requiring permissions
- β IP Collection β Server IP, Public IP, WebRTC IP leaks
- β Location Tracking β OpenStreetMap embed if allowed
- β Silent Camera Capture β Three selfies in background, fake error shown
- β Secure Admin Panel β Login protected with scrypt-hashed credentials and restricted to localhost only
- β Image Carousel β Navigate or autoplay captured images
- β Serveo Integration β Expose local server securely
- β Optional URL Shortening β Three shortening services supported
- Node.js v14+
- Python 3.8+
- npm
- pip
- OpenSSH
sudo apt update && sudo apt install -y git nodejs npm python3 python3-pip openssh-client
git clone https://github.com/cons0le7/Grabbersudo pacman -S --needed git nodejs npm python python-pip openssh
git clone https://github.com/cons0le7/Grabberpkg install git nodejs python python-pip openssh
git clone https://github.com/cons0le7/Grabberapk add git nodejs npm python3 py3-pip openssh
git clone https://github.com/cons0le7/Grabbercd Grabber
npm install whois whois-json underscore
python3 pass.pyβ Prompts for username & password
β Hashes credentials using scrypt
β Saves securely in config.json
Tip: Delete pass.py after setup for extra security.
python3 grab.pyThis will:
- Check if port
3000is in use and prompt to terminate any processes occupying it. - List all available user-facing HTML pages in
/publicand prompt for selection. - Ask if you want Local mode (localhost only) or Public mode (via Serveo or localhost.run).
- If Public mode is chosen, optionally ask whether to shorten the public URL (3 options available).
- Start the Node.js server on
http://localhost:3000. - If Public mode is chosen, create a Serveo or localhost.run tunnel and display a public link.
After starting server, send the generated link to the test device.
- Open the link.
- Accept location permissions β Displays map.
- Tap βScan Itemβ β Accept camera permissions.
- Fake error appears: "Failed to initialize camera." (images are still captured).
-
Access the admin panel:
http://localhost:3000/adminorhttp://127.0.0.1:3000/admin
(The panel is not accessible externally, only from localhost for security.) -
Log in using your credentials.
-
View:
β Collected IP info with WHOIS
β Click coordinates β Opens interactive map
β Captured images β Carousel with navigation & autoplay
- Captured images:
/images - All session data:
data.json
Grabber/
β
βββ public/ # Front-end files (HTML, CSS, JS)
βββ images/ # Captured images
βββ config.json # Stores hashed credentials
βββ data.json # Logs IP, location, session details
βββ grab.py # Main launcher script
βββ pass.py # Credential setup script
βββ server.js # Node.js server
- This software is strictly for educational, research, or demonstration purposes.
- Do not use this tool to target real individuals or systems without explicit consent.
- By using Grabber, you agree not to engage in illegal or unethical activities.
- The author does not endorse or facilitate malicious use and assumes no liability for misuse.
This tool is provided βas-isβ.
The authors are not responsible for any damages, legal issues, or misuse arising from the use of this software.
MIT License. See LICENSE for details.


