Skip to main content

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

Release files for georecon 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for georecon 0.2.1
File Size Uploaded
georecon-0.2.1.tar.gz 9.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for georecon 0.2.1
File Interpreter ABI Platform
georecon-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 20.8 kB

Release files / georecon-0.2.1.tar.gz

Download URL georecon-0.2.1.tar.gz
Size 9.9 kB
Tags Source
SHA-256 checksum
How to use checksums
41c7ebb889c4ef588d6d759f2acbb433f42d298cb6e6a209bd5f0ca782c69665
BLAKE2b-256 checksum
How to use checksums
503997e110c37b39bf172a2ea12d9320eb79984fe600cb429914603bb22bf711
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / georecon-0.2.1-py3-none-any.whl

Download URL georecon-0.2.1-py3-none-any.whl
Size 10.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
61f5c48c9240102437a0fe01e8de51870ad095e3fee65896b7c01135d3600653
BLAKE2b-256 checksum
How to use checksums
1c8a76b7b487efc45a49298e37320cf9493c022bb889469847c23459259faf85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page