OSINT reconnaissance suite — search usernames, emails, phones, IPs, and domains.
Luna is a comprehensive OSINT toolkit featuring 5 modules for investigating digital footprints across the web.
| Module | Description |
|---|---|
| ✦ Username Search | Search 150+ websites and social platforms |
| ✧ Email Lookup | Validate emails, Gravatar, social media registration |
| ✦ Phone Lookup | Carrier info, messaging apps, data aggregators |
| ✧ IP Lookup | Geolocation, reputation, reverse DNS, port scan |
| ✦ Domain / WHOIS | DNS records, SSL certs, subdomains, tech stack |
- Download and unzip the .zip from
Releases - Run
luna.exe - Select a module (1-5)
- Enter your query and press Enter
| Key | Action |
|---|---|
↑/↓ or j/k |
Navigate modules |
1-5 |
Quick select module |
Enter |
Select module |
? |
Help |
q |
Quit |
| Key | Action |
|---|---|
Type |
Enter query |
Enter |
Start scan |
Tab |
View/edit site list (Username only) |
Esc |
Back to module select |
| Key | Action |
|---|---|
↑/↓ or j/k |
Navigate |
Space |
Toggle site on/off |
a |
Enable all sites |
n |
Disable all sites |
Tab/Esc |
Back |
| Key | Action |
|---|---|
↑/↓ or j/k |
Navigate |
f |
Filter (found only) |
e |
Export results |
Enter |
Open URL in browser |
n |
New search |
Esc |
Back |
Search for a username across 150+ platforms including:
- Social: Twitter, Instagram, TikTok, Reddit, Mastodon
- Developer: GitHub, GitLab, StackOverflow, HackerNews
- Gaming: Steam, Discord, Twitch, Xbox, PlayStation
- Creative: DeviantArt, ArtStation, Behance, Dribbble
- Video: YouTube, Vimeo, Dailymotion
- Music: Spotify, SoundCloud, Bandcamp, Last.fm
- Professional: LinkedIn, Glassdoor, AngelList
- + More: Forums, Blogging, Finance, Messaging...
- Email format and MX record validation
- Gravatar profile detection
- Social media registration checks (Twitter, Discord, Spotify, Pinterest)
- Number validation and formatting
- Country and carrier identification
- Messaging app detection (WhatsApp, Telegram, Signal, Viber)
- Data aggregator searches
- Geolocation (city, region, country, coordinates)
- ISP/ASN identification
- Reverse DNS lookup
- Reputation checks (VPN, proxy, Tor detection)
- Common port scanning (21 ports)
- WHOIS information
- DNS records (A, AAAA, MX, NS, TXT, SOA, CNAME)
- WHOIS registration information
- SSL/TLS certificate inspection
- Subdomain enumeration (crt.sh, HackerTarget, common prefixes)
- Technology stack detection
# Interactive TUI (default)
luna.exe
# Auto-detect input type and run headless
luna.exe "johndoe" # Username search
luna.exe "user@example.com" # Email lookup
luna.exe "+1234567890" # Phone lookup
luna.exe "8.8.8.8" # IP lookup
luna.exe "example.com" # Domain lookup
# Export results
luna.exe --headless <query> -o results.json
luna.exe --headless <query> -o results.csv -f csv
luna.exe --headless <query> -o report.html -f html
# Username-specific options
luna.exe --headless <username> --categories social,gaming
luna.exe --headless <username> --include-adult
# List all sites
luna.exe --list-sites
# Performance tuning
luna.exe --headless <query> -w 100 -t 5000| Option | Description |
|---|---|
-o, --output <file> |
Output file for results |
-f, --format <fmt> |
Output format: json, csv, html |
-w, --workers <n> |
Concurrent workers (default: 50) |
-t, --timeout <ms> |
Request timeout in ms (default: 10000) |
--categories <list> |
Filter by categories (comma-separated) |
--exclude-categories <list> |
Exclude categories |
--include-adult |
Include NSFW sites |
--list-sites |
List all available sites |
--headless |
Run without TUI |
-v, --verbose |
Verbose output |
--debug |
Debug output |
Create a .toml file in sites/<category>/:
[site]
name = "Example Site"
# Options: social, developer, gaming, creative, video, music, professional,
# forums, blogging, finance, dating, messaging, misc, adult
category = "misc"
url_template = "https://example.com/user/{username}"
enabled = true
description = "Example site for demonstration"
requires_login = false
nsfw = false
[detection]
method = "content" # "status", "content", "selector", "json", "redirect"
not_found_patterns = [
"User not found",
"Page not found",
"404",
"doesn't exist",
]
[request]
method = "GET" # HTTP method (GET, POST, HEAD)
[request.headers]
Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
Accept-Language = "en-US,en;q=0.5"
[username]
min_length = 1
max_length = 50
allowed_pattern = "^[a-zA-Z0-9_.-]+$"
case_sensitive = false| Method | Description |
|---|---|
status |
Check HTTP status codes |
content |
Search for text patterns in response |
json |
Parse JSON response for specific fields |
redirect |
Check redirect behavior |
selector |
CSS selector matching |
Luna looks for config.toml in the current directory:
[general]
workers = 50
timeout = 10000
colors = true
default_categories = []
exclude_adult = false
[http]
follow_redirects = true
max_redirects = 10
compression = true
cookies = true
[rate_limit]
global_rps = 100
default_delay_ms = 100
burst_size = 10Want to help Luna grow? Here's how:
Open an issue and include:
- Site name and URL
- Profile URL format (e.g.,
https://example.com/user/{username}) - How to detect if a user exists (status code, page content, etc.)
Open an issue and describe:
- What happened vs. what you expected
- Steps to reproduce
- Any error messages
Have an idea? Open an issue and tell us about it!
Luna is intended for legitimate security research and OSINT purposes only. Users are responsible for ensuring their use complies with applicable laws and terms of service. Do not use Luna to:
- Stalk or harass individuals
- Violate terms of service of websites
- Conduct unauthorized investigations
- Any illegal activities
Built by Stiz Solutions ⏾
- Inspired by Sherlock
- Site data from WhatsMyName
- IP geolocation from ip-api.com
- SSL data from crt.sh
