EagleEye
Stalk your Friends. Find their Instagram, FB and Twitter Profiles using Image Recognition and Reverse Image Search.
Top Related Projects
Hunt down social media accounts by username across social networks
API, CLI, and Web App for analyzing and finding a person's profile in 1000 social media \ websites
🕵️♂️ Collect a dossier on a person by username from thousands of sites
holehe allows you to check if the mail is used on different sites like twitter, instagram and will retrieve information on sites with the forgotten password function.
🕵️♂️ Offensive Google framework.
Snoop — инструмент разведки на основе открытых данных (OSINT world)
Quick Overview
EagleEye is an open-source facial recognition tool designed to find social media profiles of a person using their image. It utilizes various facial recognition APIs and web scraping techniques to search across multiple social media platforms and return potential matches.
Pros
- Combines multiple facial recognition APIs for improved accuracy
- Searches across various social media platforms simultaneously
- Provides a command-line interface for easy use
- Open-source and customizable
Cons
- Potential privacy concerns and ethical implications
- Accuracy may vary depending on the quality of input images
- Relies on third-party APIs which may change or become unavailable
- May require significant processing time for extensive searches
Getting Started
-
Clone the repository:
git clone https://github.com/ThoughtfulDev/EagleEye.git
-
Install dependencies:
cd EagleEye pip install -r requirements.txt
-
Set up API keys in
config.json
:{ "google_cs_id": "your_google_cs_id", "google_cs_key": "your_google_cs_key", "twitter_api_key": "your_twitter_api_key", "twitter_api_secret_key": "your_twitter_api_secret_key", "twitter_access_token": "your_twitter_access_token", "twitter_access_token_secret": "your_twitter_access_token_secret" }
-
Run EagleEye:
python3 eagle-eye.py -h
Note: This tool should be used responsibly and in compliance with applicable laws and regulations. Always respect privacy and obtain necessary permissions before using facial recognition technology.
Competitor Comparisons
Hunt down social media accounts by username across social networks
Pros of sherlock
- More actively maintained with frequent updates and contributions
- Supports a larger number of websites and platforms (350+)
- Better documentation and user guides
Cons of sherlock
- Focuses solely on username searches, lacking image recognition capabilities
- May produce more false positives due to its broad search approach
Code Comparison
EagleEye (Python):
def get_social_media_profiles(self):
for website in self.websites:
try:
self.profiles.append(website.check_username(self.username))
except Exception as e:
print(f"Error checking {website.name}: {str(e)}")
sherlock (Python):
def sherlock(username, site_data, timeout=60):
results = {}
for social_network, net_info in site_data.items():
results[social_network] = {"url_main": net_info.get("urlMain")}
url = net_info["url"].format(username=username)
results[social_network]["url_user"] = url
results[social_network]["status"] = "Claimed"
# ... (additional code for request handling and status checking)
Both projects aim to find social media profiles, but sherlock offers a more comprehensive approach with a larger database of supported websites. EagleEye, while less actively maintained, provides additional functionality for image recognition and facial analysis, which sherlock lacks. sherlock's code structure allows for easier expansion and maintenance of the supported platforms list.
API, CLI, and Web App for analyzing and finding a person's profile in 1000 social media \ websites
Pros of social-analyzer
- Supports a wider range of social media platforms (300+)
- Offers both CLI and API interfaces for flexibility
- Provides more detailed output, including profile pictures and additional metadata
Cons of social-analyzer
- More complex setup and dependencies
- May be slower due to the larger number of platforms it searches
- Less focused on facial recognition compared to EagleEye
Code Comparison
EagleEye:
def get_social_media_profiles(self):
self.facebook_profile = self.find_facebook_profile()
self.linkedin_profile = self.find_linkedin_profile()
self.twitter_profile = self.find_twitter_profile()
social-analyzer:
def run_as_object(self, username, silent=False, output="good", filter_output="", profiles=""):
# ... (initialization code)
for site in sites:
if site["selected"] == "true":
# ... (site-specific search logic)
return {"detected": detected, "unknown": unknown, "failed": failed, "profiles": profiles}
The code snippets highlight the different approaches:
- EagleEye focuses on specific platforms with dedicated methods
- social-analyzer uses a more generic approach to handle multiple platforms
Both tools aim to find social media profiles, but social-analyzer offers a more comprehensive search across a larger number of platforms, while EagleEye appears to be more specialized for a few major social networks.
🕵️♂️ Collect a dossier on a person by username from thousands of sites
Pros of Maigret
- Supports a wider range of social networks and websites (over 2000)
- More actively maintained with regular updates
- Includes additional features like report generation and proxy support
Cons of Maigret
- May have a steeper learning curve due to more complex functionality
- Potentially slower execution time when searching across numerous platforms
- Requires more dependencies and setup compared to EagleEye
Code Comparison
EagleEye (Python):
def get_social_media_profiles(self):
for website in self.websites:
self.driver.get(website)
if self.driver.title == "Page not found":
continue
# Process and extract profile information
Maigret (Python):
async def search(self, username, site_dict, query_notify):
tasks = []
for site in site_dict:
check_func = site.check_func or self.standard_check
task = asyncio.ensure_future(check_func(site, username, query_notify))
tasks.append(task)
await asyncio.gather(*tasks)
The code snippets show that Maigret uses asynchronous programming for potentially faster execution when searching multiple sites simultaneously, while EagleEye uses a more straightforward sequential approach.
holehe allows you to check if the mail is used on different sites like twitter, instagram and will retrieve information on sites with the forgotten password function.
Pros of holehe
- Focuses specifically on email address reconnaissance
- Supports a larger number of websites and services (over 120)
- Faster execution due to asynchronous requests
Cons of holehe
- Limited to email-based searches only
- Does not include image recognition or facial search capabilities
- Less comprehensive profile information gathering
Code Comparison
holehe:
async def instagram(email):
try:
async with aiohttp.ClientSession() as session:
async with session.get("https://www.instagram.com/accounts/web_create_ajax/attempt/", timeout=10) as response:
if response.status == 200:
return {"exists": True, "email_recovery": None}
except Exception:
return {"exists": False, "email_recovery": None}
EagleEye:
def instagram(self):
try:
response = requests.get('https://www.instagram.com/' + self.username)
if response.status_code == 200:
return True
except:
return False
The code snippets show that holehe focuses on email-based checks, while EagleEye performs username-based searches. holehe uses asynchronous requests with aiohttp, potentially offering better performance for multiple checks.
🕵️♂️ Offensive Google framework.
Pros of GHunt
- More focused on Google account information retrieval
- Actively maintained with recent updates
- Supports command-line interface for easier automation
Cons of GHunt
- Limited to Google accounts, less versatile for general OSINT
- Requires more setup and dependencies
- May be more complex for beginners
Code Comparison
EagleEye:
def get_profile_pic(self):
if self.profile_picture:
return self.profile_picture
else:
return None
GHunt:
def get_profile_picture(gaiaID):
url = f"https://lh3.googleusercontent.com/a-/{gaiaID}"
response = requests.head(url)
if response.status_code == 200:
return url
return None
Both projects aim to gather information from online sources, but they differ in their focus and implementation. EagleEye is designed for broader social media reconnaissance, while GHunt specializes in Google account information retrieval. EagleEye may be easier for beginners to use, but GHunt offers more in-depth analysis of Google-related data. The code comparison shows that both projects have similar functions for retrieving profile pictures, but GHunt's implementation is more specific to Google's infrastructure.
Snoop — инструмент разведки на основе открытых данных (OSINT world)
Pros of snoop
- More active development with frequent updates
- Supports a wider range of social networks and platforms
- Offers a user-friendly command-line interface
Cons of snoop
- Primarily focused on Russian-language platforms and users
- Less emphasis on facial recognition capabilities
- Requires more manual input and configuration
Code comparison
EagleEye:
def get_social_media_profiles(self):
for website in self.websites:
if website.search():
print("[+] Profile found on {}".format(website.name))
else:
print("[-] Profile not found on {}".format(website.name))
snoop:
def start(self):
for module in self.modules:
try:
module.main(self.username)
except Exception as e:
self.logger.error(f"Error in module {module.__name__}: {str(e)}")
Both projects aim to gather information about individuals across various online platforms. EagleEye focuses more on facial recognition and image analysis, while snoop emphasizes username searches across a broader range of social networks. EagleEye is more specialized but potentially more powerful for visual identification, whereas snoop offers a more comprehensive search across text-based profiles and platforms.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
$$$$$$$$\ $$\ $$$$$$$$\
$$ _____| $$ | $$ _____|
$$ | $$$$$$\ $$$$$$\ $$ | $$$$$$\ $$ | $$\ $$\ $$$$$$\
$$$$$\ \____$$\ $$ __$$\ $$ |$$ __$$\ $$$$$\ $$ | $$ |$$ __$$\
$$ __| $$$$$$$ |$$ / $$ |$$ |$$$$$$$$ | $$ __| $$ | $$ |$$$$$$$$ |
$$ | $$ __$$ |$$ | $$ |$$ |$$ ____| $$ | $$ | $$ |$$ ____|
$$$$$$$$\\$$$$$$$ |\$$$$$$$ |$$ |\$$$$$$$\ $$$$$$$$\\$$$$$$$ |\$$$$$$$\
\________|\_______| \____$$ |\__| \_______| \________|\____$$ | \_______|
$$\ $$ | $$\ $$ |
\$$$$$$ | \$$$$$$ |
\______/ \______/
You have at least one image of the person you are looking for and a clue about their name.
You enter this data into EagleEye and it tries to find Instagram, Youtube, Facebook, and Twitter Profiles of this person.
ð Table of Contents
ð Getting Started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Prerequisites
- A system with a x-server installed (Linux)
- Firefox installed
When using docker
- Only docker is required
When you dont use docker
- Python 3.6 or higher
- Pythons pip
Installing
Docker (Preferred)
Make sure that you have docker installed Make sure that you use a LINUX distribution as the host
-
Clone the Repository
$ git clone https://github.com/ThoughtfulDev/EagleEye
-
$ cd EagleEye $ sudo docker build -t eagle-eye .
-
Now create a
known
folder and aresult
folder anywhere on your PC. -
Put the images of the known person in the known folder.
-
Change the name of the person your are searching for in
entry.sh
-
Start the container. Make sure to edit the paths:
sudo docker run -t --net=host --env="DISPLAY" \
--volume="$HOME/.Xauthority:/root/.Xauthority:rw" \
-v /path/to/known:/EagleEye/known \
-v /path/to/result:/result \
-v /path/to/EagleEye/Repository/entry.sh:/entry.sh \
eagle-eye
The result should now be in /path/to/result
Automated Prerequisites Installation (If Docker doesn't work)
wget https://raw.githubusercontent.com/ThoughtfulDev/EagleEye/master/install.sh && chmod +x install.sh && ./install.sh
Manual Prerequisites Installation (If you are hardcore)
For Debian based Distros
$ sudo apt update && sudo apt upgrade -y
$ sudo apt install git python3 python3-pip python3-dev
$ sudo apt install libgtk-3-dev libboost-all-dev build-essential cmake libffi-dev
$ git clone https://github.com/ThoughtfulDev/EagleEye
$ cd EagleEye && sudo pip3 install -r requirements.txt
$ sudo pip3 install --upgrade beautifulsoup4 html5lib spry
For Arch
$ sudo pacman -Syu
$ sudo pacman -S git python python-pip gtk3 boost cmake libffi
$ git clone https://github.com/ThoughtfulDev/EagleEye
$ cd EagleEye && sudo pip3 install -r requirements.txt
$ sudo pip3 install --upgrade beautifulsoup4 html5lib spry
If Firefox is installed, download the latest release of the Geckodriver for you Architecture.
If you get a broken pipe
Error use Geckodriver Version 0.19.1.
Note: If you are using Firefox ESR (like Kali does) please use the Geckodriver Version 0.17.
Make the Geckodriver executable:
$ chmod +x /path/to/geckodriver
Note: The geckodriver
prefers to be in your path so wherever you do set it up you will likely need to setup a link to somewhere in your PATH (or add it to your PATH).
Example:
$ sudo ln -s /path/to/geckodriver /usr/local/bin/geckodriver
ð Usage
Configuration: General
Change the value in config.json
to the path of the geckodriver
e.g
{
"DEFAULTS": {
...
},
"WEBDRIVER": {
"ENGINE": "firefox",
"PATH": "/usr/local/bin/geckodriver"
},
"FILTER": [
....
],
...
}
Configuration: Images
Put at least one Image of the Person you want to find in the known
folder.
Supported Filetypes are: jpg/JPG, jpeg/JPEG, png/PNG, and bmp/BMP.
Run
Then run the program ;)
$ python3 eagle-eye.py
To see a list of all available Options just type
$ python3 eagle-eye.py -h
The ImageRaider Reverse Image Search can take some minutes 1-15 Minutes depending on the count of Images
TODO
- Implement the Chrome Webdriver
âï¸ Built Using
- Python - Language
- dlib - Face detection
- face_recognition - dlib python api
- Selenium - WebBrowser automation
âï¸ Authors
- @ThoughtfulDev - Idea & Work
ð Acknowledgements
- The movie Eagle Eye
Top Related Projects
Hunt down social media accounts by username across social networks
API, CLI, and Web App for analyzing and finding a person's profile in 1000 social media \ websites
🕵️♂️ Collect a dossier on a person by username from thousands of sites
holehe allows you to check if the mail is used on different sites like twitter, instagram and will retrieve information on sites with the forgotten password function.
🕵️♂️ Offensive Google framework.
Snoop — инструмент разведки на основе открытых данных (OSINT world)
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot