Skip to main content

Asynchronous geolocation capture service for OSINT investigations. Serve convincing phishing pages to capture visitor device information and GPS coordinates.

Project description

GeoRecon

Asynchronous geolocation capture service for OSINT investigations. Serve convincing phishing pages to capture visitor device information and GPS coordinates.

CLI Interface Telegram Template NearYou Template
Google Disk Template Telegram Bot

Features

  • Geolocation Capture – Obtain precise GPS coordinates from visitors via browser Geolocation API
  • Device Fingerprinting – Collect OS, browser, CPU cores, RAM, GPU info, screen resolution
  • Telegram Integration – Optional real-time notifications to your Telegram bot
  • Multiple Templates – Comes with Telegram, Google Disk, and NearYou templates
  • CLI + Config File – Configurable via CLI arguments or YAML file
  • Clean Formatted Output – Colored CLI logs with device/location data

Requirements

  • Python 3.12+
  • A modern browser with Geolocation API support (victim's browser)

Installation

From PyPI (recommended)

pip install georecon
# or
uv add georecon

From source

git clone https://github.com/MarkLevkovich/geo-recon.git
cd geo-recon
pip install .

Usage

Quick Start

georecon

CLI Options

georecon --host 127.0.0.1 --port 8080           # Custom host/port
georecon --config /path/to/config.yaml         # Use config file
georecon --log-level debug                     # Verbose logging
georecon --no-access-log                     # Disable access logs

Configuration File

Create geoconf.yaml (or any path):

host: "0.0.0.0"
port: 8080
log_level: "info"
no_access_log: false

CLI arguments override config file values.

Telegram Bot Setup

1. Create a bot

  1. Open @BotFather in Telegram
  2. Send /newbot
  3. Follow the instructions to get your bot token

2. Get your chat ID

  1. Start a conversation with your bot
  2. Send any message to the bot
  3. Visit https://api.telegram.org/bot<TOKEN>/getUpdates
  4. Find "chat":{"id":123456789 in the JSON response – that's your chat ID

3. Configure GeoRecon

When running georecon, you'll be prompted:

Do you want to duplicate msgs to Telegram? [y/n] -> y
=== Telegram bot setup ===
Enter bot token: 123456789:ABCdefGHIjklMNOpqrSTUvw
Enter target chat ID (numeric): 123456789

Configuration is saved to ~/.geo_recon.conf.

Exposing to Internet

By default, the server binds to 0.0.0.0:8080. To make it accessible from the internet, you need to expose your local server.

Option 1: ngrok

ngrok http 8080

Copy the generated URL (e.g., https://abc123.ngrok.io) and share it with your target.

Option 2: Cloudflare Tunnel

  1. Install cloudflared:
# Arch Linux
sudo pacman -S cloudflared

# Ubuntu/Debian
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o /usr/local/bin/cloudflared
chmod +x /usr/local/bin/cloudflared
  1. Create a tunnel:
cloudflared tunnel create my-geo-tunnel
  1. Run the tunnel:
cloudflared tunnel --url http://localhost:8080 run my-geo-tunnel

Copy the generated .cloudflared.io URL.

Captured Data

  • IP address
  • Operating system
  • Browser & platform
  • CPU cores & RAM
  • GPU vendor/renderer
  • Screen resolution
  • Latitude / Longitude
  • Accuracy
  • City / Country (if available)
  • Google Maps link

Tested On

  • Arch Linux – Full compatibility

License

MIT License – see LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

georecon-0.2.1.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

georecon-0.2.1-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file georecon-0.2.1.tar.gz.

File metadata

  • Download URL: georecon-0.2.1.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for georecon-0.2.1.tar.gz
Algorithm Hash digest
SHA256 41c7ebb889c4ef588d6d759f2acbb433f42d298cb6e6a209bd5f0ca782c69665
MD5 5d931eb9c80bcc8752f86b79b66f0187
BLAKE2b-256 503997e110c37b39bf172a2ea12d9320eb79984fe600cb429914603bb22bf711

See more details on using hashes here.

File details

Details for the file georecon-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: georecon-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for georecon-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 61f5c48c9240102437a0fe01e8de51870ad095e3fee65896b7c01135d3600653
MD5 c6fdb89e91d3f6303634546778f5fd5d
BLAKE2b-256 1c8a76b7b487efc45a49298e37320cf9493c022bb889469847c23459259faf85

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page