
Ultimate Internet of Things/Industrial Control Systems reconnaissance tool.
Kamerka GUI is a Django-based reconnaissance dashboard for discovering, reviewing, and triaging Internet-exposed Industrial Control System, Internet of Things and medical devices. It combines Shodan search data, Google Maps visualization, device screenshots, passive intelligence enrichment, and selected scan/exploit helpers into one web interface.
The app helps reduce noise during review with a Filter Honeypots toggle in device tables. This excludes devices that expose honeypot-style indicators, so analysts can focus on likely real assets first. Kamerka also surfaces a device Indicator field, built from parsed banners, protocol responses, screenshot labels, and other device metadata, to explain why a device was flagged or how it can be located or classified.
Use it only for authorized research, asset inventory, defensive exposure management, and reporting to the appropriate owners or CERT/CSIRT teams.






Dashboard: high-level counts, Shodan credits, recent searches, charts, world coverage, and favorites.Database: searchable table of all discovered devices with filtering for likely honeypots.History: previous searches with country names, selected device categories, and links to results.Map: global clustered Google Map of discovered devices.Gallery: all collected device screenshots, with country filtering.Results: per-search device table, map, statistics, and export-style browsing.Device: Locate, Intel, and Exploit tabs for a single device.GeoLite2-City.mmdb in the repository root if you want Nmap XML import geolocation.Python dependencies are listed in requirements.txt. The project now targets the Django 5.2 LTS line, Celery 5.6, and bounded Python packages so installs stay current without jumping to incompatible major versions.
Clone the repository and create a virtual environment:
git clone https://github.com/woj-ciech/Kamerka-GUI.git
cd Kamerka-GUI
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
If python3.12 is not available, use another Python 3.10-3.13 interpreter. Avoid reusing an old Python 3.8/3.9 virtual environment because the current dependency set requires Python 3.10+.
Create the database schema:
python manage.py migrate
Create keys.json in the repository root:
{
"keys": {
"shodan": "YOUR_SHODAN_API_KEY",
"google_maps": "YOUR_GOOGLE_MAPS_API_KEY",
"whoisxmlapi": "YOUR_WHOIS_XML_API_KEY"
}
}
Start Redis in a separate terminal:
redis-server
Start a Celery worker in another terminal:
source .venv/bin/activate
celery --app kamerka worker --loglevel=info
Start the Django development server:
source .venv/bin/activate
python manage.py runserver
Open the app:
http://localhost:8000/
keys.json is required at runtime because the app reads API keys from keys['keys'].keys.json out of source control. It contains private credentials.The full list of supported Shodan queries is maintained in queries.md.
Broad categories include:
Kamerka can import Nmap XML output and includes NSE helper scripts under nmap_scripts.
Included script families include:
The project includes selected exploit/helper modules for specific device families, including: