Sherlock: Find Usernames Across Social Networks

repository·master·Indexed 13 days ago

https://github.com/sherlock-project/sherlock

An OSINT tool used to hunt down social media accounts by username across over 400 different social networks. Sherlock version 0.16.1 provides a CLI to search for single or multiple usernames, supporting various output formats including CSV and XLSX, and options for proxy routing and specific site analysis.

Tokens
7.9K
Snippets
21
Records
29
Agent score
99%

What's inside Sherlock

  1. Understand why certain sites are removed from Sherlock

    master

    Sherlock removes sites from its search list when they become unreliable for username enumeration. Common reasons for removal include:

    • Site Downtime: The website no longer exists (e.g., elwoRU, ingvarr.net.ru, Mixer).
    • Anti-Bot Protections: The site uses CAPTCHAs (e.g., CreativeMarket, YandexCollection) or Cloudflare/CloudFlair (e.g., pvpru) that prevent automated checking.
    • False Positives: The site returns a successful response even when a username does not exist, often due to specific username criteria (e.g., containing periods) or login prompts (e.g., easyen, Coderwall, TamTam, Linkedin).
    • Unstable Behavior: The site is highly unstable or has extremely slow response times (e.g., Zomato).
    • API Changes: Subdomains or API endpoints used for checking have been decommissioned (e.g., KanoWorld).
    • Username Logic Changes: The site implements logic that makes automated checking impossible, such as appending random digits to usernames (e.g., Redsun.tf).
  2. Understand why certain sites are removed from Sherlock

    master

    Sherlock removes certain websites from its active search list when the current design of the tool cannot reliably determine if a username exists. Common reasons for removal include:

    • Technical Limitations: The site requires JavaScript rendering (e.g., BlackPlanet), or the detection method requires a different approach (e.g., AdobeForums uses non-username-related profile URLs).
    • Authentication Requirements: The site requires a user to be logged in to view profiles or check existence (e.g., Investing.com, KiwiFarms, boingboing.net).
    • False Positives/Negatives: The site returns the same response for both claimed and unclaimed usernames (e.g., BlackPlanet, YandexMarket), or existing users are not detected (e.g., Codementor, EVE Online, AngelList).
    • Service Changes: The service has been shut down (e.g., Google Plus) or is in a permanent state of error/maintenance (e.g., Fotolog).
    • Anti-Automation: The site detects automated tools and bans the IP (e.g., Foursquare).
    • Redirects: The site redirects all queries to a general landing page regardless of whether the user exists (e.g., Trip, Canva).
  3. Understand why certain sites are removed from Sherlock

    master

    Sherlock removes sites from its default manifest when they become unreliable for username checking. Common reasons include:

    • Authentication Walls: Sites like Munzee and HexRPG require a user to be logged in to check for existence.
    • JavaScript Requirements: Sites like Quizlet require JavaScript execution to verify users, which the standard Sherlock engine may not support.
    • False Positives: Sites like TikTok, Lolchess, Virgool, Whonix Forum, and ebio.gg return results that incorrectly suggest a username exists when it does not.
    • Anti-Scraping/Security: Sites like Fiverr (CSRF protections), Etsy (403 Forbidden), and Penetestit (403 Forbidden) have implemented protections that block Sherlock's requests.
    • Site Defunct/Offline: Sites like Bitcoin Forum or TorrentGalaxy may no longer be active.
    • Blacklisting: Some sites, like Alik.cz, are explicitly blacklisted due to high traffic volumes caused by Sherlock requests.
  4. Install Sherlock

    master

    You can install Sherlock using several methods. Note that community-maintained packages for ParrotOS and Ubuntu 24.04 may be broken; for those systems, use pip, pipx, uv, or Docker.

    • pipx: pipx install sherlock-project (or use pip or uv as alternatives)
    • Docker: docker run -it --rm sherlock/sherlock
    • dnf: dnf install sherlock-project

    Community-maintained packages are also available for Debian (>= 13), Ubuntu (>= 22.10), Homebrew, Kali, and BlackArch, but they are not directly supported by the Sherlock Project.

    pipx install sherlock-project
  5. Identify removed or non-functional sites in Sherlock

    master

    Sherlock maintains a list of sites that have been removed from the active search list. These sites are typically removed due to one of the following reasons:

    • Service Shutdown/Relocation: The site is no longer functional or has moved (e.g., Gam1ng, OGUsers, Otzovik, radio_echo_msk, Enjin, IRL, mastodon.technology).
    • False Positives/Negatives: The site's current architecture (dynamic content, redirects, or login requirements) causes Sherlock to incorrectly report whether a username exists (e.g., Pinterest, Ghost, Google Developer, Arduino, Facebook, Tinder, OnlyFans, OK).
    • Authentication Requirements: The site requires a login to check for user existence, making automated scraping unreliable (e.g., PCPartPicker).
    • Technical Barriers: The site is behind CloudFlare or uses complex API/dynamic loading that prevents accurate detection (e.g., Ello, Google Developer).
    • Legal/External Changes: The site has undergone significant changes such as being taken over by authorities (e.g., Raidforums).

    Users should not expect results from these sites when running Sherlock searches.

  6. Use Sherlock to search for usernames

    master

    Sherlock allows you to hunt down social media accounts by username across 400+ social networks. You can search for a single username or multiple usernames at once.

    When searching for a single username, results are saved to a text file named after the username (e.g., user123.txt).

    Basic Usage

    • Single user: sherlock <username>
    • Multiple users: sherlock <user1> <user2> <user3>
    sherlock user1 user2 user3
  7. Use the Sherlock CLI to hunt social media accounts

    master

    Sherlock is a tool used to find social media accounts by username across over 400 social networks. You can search for a single username or multiple usernames in a single command.

    To search for one user:

    sherlock user123

    To search for multiple users:

    sherlock user1 user2 user3
  8. Search for username variations using `{?}`

    master

    Sherlock supports a special syntax for searching for similar usernames. If a username contains the placeholder {?}, Sherlock will automatically generate and search for variations by replacing the placeholder with common separators: _, -, and ..

    Example: Searching for my_user{?} will result in searches for:

    • my_user_
    • my_user-
    • my_user.
  9. Understand QueryStatus results

    master

    When a search is performed, each site returns a QueryStatus which indicates the verdict of the existence check. Common statuses include:

    • CLAIMED: The username is likely taken/exists on the site.
    • AVAILABLE: The username is likely available/does not exist.
    • WAF: The request was blocked by a Web Application Firewall (e.g., Cloudflare, AWS WAF, PerimeterX).
    • ILLEGAL: The username format is invalid for that specific site (based on regexCheck).
    • UNKNOWN: The status could not be determined due to an error or unexpected response.
  10. Implement a custom notification handler by inheriting from QueryNotify

    master

    The QueryNotify class is a base class designed to be subclassed to implement custom notification logic for query results. To create a custom notifier, inherit from QueryNotify and override the following lifecycle methods:

    • start(message=None): Called before any queries are performed. Use this to initialize the notification process or display a starting message.
    • update(result): Called whenever a query result is received. This method receives a QueryResult object.
    • finish(message=None): Called after all queries have been completed. Use this to display final summaries or cleanup.

    Note: The result attribute in the base class holds the current QueryResult object.

    from sherlock_project.notify import QueryNotify
    
    class MyCustomNotifier(QueryNotify):
        def start(self, message=None):
            print(f"Starting search for: {message}")
    
        def update(self, result):
            # Handle the specific result
            print(f"Found: {result.site_name}")
    
        def finish(self, message=None):
            print("Search finished!")
  11. Identify sites removed from Sherlock due to false positives or technical issues

    master

    Sherlock maintains a list of sites that have been removed from the active search list. These sites are typically removed because they:

    1. Return false positives: The site incorrectly reports that a username exists when it does not (e.g., Taringa, Photobucket, 4PDA, PokerStrategy, 500px, Badoo, Pling, Realmeye, Travellerspoint, Anobii, Quora, SparkPeople, TM-Ladder, plug.dj, CapFriendly, Gab, FanCentro, Countable).
    2. Use Captchas/CloudFlare: Security measures like CloudFlare or site-specific captchas prevent automated username checking (e.g., AllTrails, NameMC, Steamid, Gab).
    3. Require Authentication: The site requires a user to be logged in to check for other users (e.g., Kali Community).
    4. Are Closed or Down: The service is no longer operational (e.g., Filmogs, Cloob, Smashcast).
    5. Have Performance Issues: The site is extremely slow or causes the tool to freeze (e.g., GDProfiles, TripAdvisor, House-Mixes.com).
    6. Lack a stable check method: There is no reliable way to determine if a username exists (e.g., Cent).
  12. Reference: List of sites removed from Sherlock

    master

    The following is a partial list of sites documented as removed or non-functional in the docs/removed-sites.md file. This list is updated as site behaviors change.

    Raidforums
    Pinterest
    PCPartPicker
    Ebay
    Ghost
    Atom Discussions
    Gam1ng
    OGUsers
    Otzovik
    radio_echo_msk
    Ello
    GitHub Support Community
    GuruShots
    Google Developer
    mastodon.technology
    Aruino
    Zoomit
    Facebook
    BinarySearch
    Arduino
    Koo
    We Heart It
    Tinder
    Coil
    OnlyFans
    OK
    ForumhouseRU
    Enjin
    IRL