Convert Figma logo to code with AI

megadose logoholehe

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.

7,293
811
7,293
29

Top Related Projects

10,065

🕵️‍♂️ Collect a dossier on a person by username from thousands of sites

15,468

🕵️‍♂️ Offensive Google framework.

2,928

Snoop — инструмент разведки на основе открытых данных (OSINT world)

An OSINT tool to search for accounts by username and email in social networks.

Quick Overview

Holehe is an open-source tool designed to check if an email address is associated with various online services. It performs asynchronous checks across multiple platforms to determine if an email has been used to create accounts, providing valuable information for OSINT (Open Source Intelligence) investigations and security assessments.

Pros

  • Fast and efficient due to asynchronous processing
  • Supports a wide range of online services (over 120)
  • Provides detailed output, including account existence and additional information when available
  • Actively maintained and regularly updated

Cons

  • May raise ethical concerns regarding privacy and unauthorized access attempts
  • Some services may block or rate-limit requests, affecting accuracy
  • Potential for false positives or negatives due to service changes or security measures
  • Requires responsible use to avoid legal issues or service disruptions

Code Examples

  1. Basic usage:
from holehe import core
from holehe.core import *

async def main():
    email = "example@example.com"
    out = []
    await core.launch_module(email, out)
    print(out)

asyncio.run(main())
  1. Using specific modules:
from holehe.modules.social_media import twitter, instagram

async def check_social_media(email):
    twitter_result = await twitter.twitter(email, {})
    instagram_result = await instagram.instagram(email, {})
    return twitter_result, instagram_result

results = asyncio.run(check_social_media("example@example.com"))
print(results)
  1. Custom output handling:
from holehe import core
from holehe.core import *

async def custom_output(email):
    out = []
    await core.launch_module(email, out)
    for result in out:
        if result["exists"]:
            print(f"Account found on {result['name']}: {result['rateLimit']}")

asyncio.run(custom_output("example@example.com"))

Getting Started

  1. Install holehe:

    pip install holehe
    
  2. Basic usage in Python script:

    from holehe import core
    from holehe.core import *
    import asyncio
    
    async def check_email(email):
        out = []
        await core.launch_module(email, out)
        return out
    
    email = "example@example.com"
    results = asyncio.run(check_email(email))
    print(results)
    
  3. Run the script to see the results for the specified email address.

Competitor Comparisons

10,065

🕵️‍♂️ Collect a dossier on a person by username from thousands of sites

Pros of Maigret

  • Supports a wider range of platforms (500+) compared to Holehe's focus on email-based services
  • Offers more detailed output, including profile information and links
  • Provides a command-line interface with various options for customization

Cons of Maigret

  • Slower execution due to the larger number of sites checked
  • May require more setup and dependencies compared to Holehe's simpler structure
  • Potentially higher rate of false positives due to the broader scope

Code Comparison

Holehe:

async def instagram(email):
    try:
        req = await client.get("https://www.instagram.com/accounts/web_create_ajax/attempt/", headers=headers)
        token = req.text.split('{"config":{"csrf_token":"')[1].split('"')[0]
        # ... (additional code)
    except Exception:
        out.append({"name": name,"domain":domain,"method":method,"frequent_rate_limit":frequent_rate_limit,
                    "rateLimit": True,
                    "exists": False,
                    "emailrecovery": None,
                    "phoneNumber": None,
                    "others": None})

Maigret:

async def check_username(username):
    results = await self.db.ranked_check_services(username, self.db.sites, self.timeout, self.proxy_list)
    # ... (additional code)
    for sitename, sitereport in results.items():
        if sitereport['status'].is_found():
            print(f'[+] {sitename}: {sitereport["url_user"]}')
        # ... (additional code)
15,468

🕵️‍♂️ Offensive Google framework.

Pros of GHunt

  • More comprehensive Google account investigation, including Google Photos and Google Calendar
  • Provides detailed information about the target's Google services usage
  • Offers a command-line interface for easier automation and integration

Cons of GHunt

  • Focused solely on Google services, limiting its scope compared to Holehe's multi-platform approach
  • Requires more setup and configuration, including the need for Google cookies
  • May be more prone to detection and blocking by Google due to its intensive querying

Code Comparison

Holehe:

async def instagram(email):
    try:
        req = await client.get("https://www.instagram.com/accounts/web_create_ajax/attempt/", headers=headers)
        token = req.cookies['csrftoken']
        # ... (additional code)
    except Exception:
        out.append({"name": name,"domain":domain,"method":method,"frequent_rate_limit":frequent_rate_limit,
                    "rateLimit": True,
                    "exists": False,
                    "emailrecovery": None,
                    "phoneNumber": None,
                    "others": None})

GHunt:

def get_account_info(gaiaID):
    data = {
        "key": gaiaID,
        "requestMask": {
            "includePrefix": True,
            "checkpointMask": {
                "includeAbuseStatusCheckpoint": True,
                "includeAge": True,
                "includeAgeGroup": True,
                "includeCountry": True
            }
        }
    }
    # ... (additional code)
2,928

Snoop — инструмент разведки на основе открытых данных (OSINT world)

Pros of Snoop

  • Supports a wider range of platforms and services (400+)
  • Includes a graphical user interface (GUI) for easier use
  • Offers more detailed reporting options

Cons of Snoop

  • Primarily focused on Russian-language services
  • Less frequently updated compared to Holehe

Code Comparison

Holehe:

async def instagram(email):
    try:
        req = await client.get("https://www.instagram.com/accounts/web_create_ajax/attempt/", headers=headers)
        token = req.cookies['csrftoken']
        # ... (additional code)
    except Exception:
        out.append({"name": name,"domain":domain,"method":method,"frequent_rate_limit":frequent_rate_limit,
                    "rateLimit": True,
                    "exists": False,
                    "emailrecovery": None,
                    "phoneNumber": None,
                    "others": None})

Snoop:

def instagram(username):
    url = f"https://www.instagram.com/{username}/"
    response = requests.get(url, headers=headers)
    if response.status_code == 200:
        return f"[+] Instagram: https://instagram.com/{username}"
    else:
        return f"[-] Instagram: Not Found!"

Both projects aim to gather information about online presence, but Holehe focuses on email-based searches across various platforms, while Snoop primarily checks username availability on different services. Holehe uses asynchronous requests and provides more detailed output, whereas Snoop offers a simpler, synchronous approach with basic availability reporting.

An OSINT tool to search for accounts by username and email in social networks.

Pros of Blackbird

  • Supports a wider range of social media platforms and websites
  • Offers a graphical user interface (GUI) for easier use
  • Provides more detailed output, including profile pictures and additional user information

Cons of Blackbird

  • Slower execution time due to more comprehensive checks
  • May require additional dependencies for GUI functionality
  • Less frequently updated compared to Holehe

Code Comparison

Holehe:

async def instagram(email):
    r = await client.get("https://www.instagram.com/accounts/login/")
    csrf = r.cookies["csrftoken"]
    data = {"email": email, "username": "", "csrf_token": csrf}
    r = await client.post("https://www.instagram.com/accounts/web_create_ajax/attempt/", data=data)
    return r.json()["status"] == "ok"

Blackbird:

def instagram(email):
    headers = {"User-Agent": random.choice(user_agents)}
    data = {"email": email, "username": "", "first_name": "", "opt_into_one_tap": "false"}
    response = requests.post("https://www.instagram.com/accounts/web_create_ajax/attempt/", headers=headers, data=data)
    return "email_is_taken" in response.text

Both projects aim to check email usage across various platforms, but Blackbird offers a more user-friendly experience with its GUI and broader platform coverage. However, Holehe may be more suitable for users prioritizing speed and frequent updates.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Holehe OSINT - Email to Registered Accounts

👋 Hi there! For any professional inquiries or collaborations, please reach out to me at: megadose@protonmail.com

📧 Preferably, use your professional email for correspondence. Let's keep it short and sweet, and all in English!

PyPI PyPI - Week PyPI - Downloads PyPI - License

Holehe Online Version

Summary

Efficiently finding registered accounts from emails.

Holehe checks if an email is attached to an account on sites like twitter, instagram, imgur and more than 120 others.

🛠️ Installation

With PyPI

pip3 install holehe

With Github

git clone https://github.com/megadose/holehe.git
cd holehe/
python3 setup.py install

With Docker

docker build . -t my-holehe-image
docker run my-holehe-image holehe test@gmail.com

Quick Start

Holehe can be run from the CLI and rapidly embedded within existing python applications.

📚 CLI Example

holehe test@gmail.com

📈 Python Example

import trio
import httpx

from holehe.modules.social_media.snapchat import snapchat


async def main():
    email = "test@gmail.com"
    out = []
    client = httpx.AsyncClient()

    await snapchat(email, client, out)

    print(out)
    await client.aclose()

trio.run(main)

Module Output

For each module, data is returned in a standard dictionary with the following json-equivalent format :

{
  "name": "example",
  "rateLimit": false,
  "exists": true,
  "emailrecovery": "ex****e@gmail.com",
  "phoneNumber": "0*******78",
  "others": null
}
  • rateLitmit : Lets you know if you've been rate-limited.
  • exists : If an account exists for the email on that service.
  • emailrecovery : Sometimes partially obfuscated recovery emails are returned.
  • phoneNumber : Sometimes partially obfuscated recovery phone numbers are returned.
  • others : Any extra info.

Rate limit? Change your IP.

Maltego Transform : Holehe Maltego

Thank you to :

Donations

For BTC Donations : 1FHDM49QfZX6pJmhjLE5tB2K6CaTLMZpXZ

📝 License

GNU General Public License v3.0

Built for educational purposes only.

Modules

NameDomainMethodFrequent Rate Limit
aboutmeabout.meregister✘
adobeadobe.compassword recovery✘
amazonamazon.comlogin✘
amocrmamocrm.comregister✘
anydoany.dologin✔
archivearchive.orgregister✘
armurerieauxerrearmurerie-auxerre.comregister✘
atlassianatlassian.comregister✘
axonautaxonaut.comregister✘
babeshowsbabeshows.co.ukregister✘
badeggsonlinebadeggsonline.comregister✘
biosmodsbios-mods.comregister✘
biotechnologyforumsbiotechnologyforums.comregister✘
bitmojibitmoji.comlogin✘
blablacarblablacar.comregister✔
blackworldforumblackworldforum.comregister✔
blipblip.fmregister✔
blitzortungforum.blitzortung.orgregister✘
bluegrassrivalsbluegrassrivals.comregister✘
bodybuildingbodybuilding.comregister✘
buymeacoffeebuymeacoffee.comregister✔
cambridgemtdiscussion.cambridge-mt.comregister✘
caringbridgecaringbridge.orgregister✘
chinaphonearenachinaphonearena.comregister✘
clashfarmerclashfarmer.comregister✔
codecademycodecademy.comregister✔
codeigniterforum.codeigniter.comregister✘
codepencodepen.ioregister✘
coroflotcoroflot.comregister✘
cpaelitescpaelites.comregister✘
cpaherocpahero.comregister✘
cracked_tocracked.toregister✔
crevadocrevado.comregister✔
deliveroodeliveroo.comregister✔
demonforumsdemonforums.netregister✔
devrantdevrant.comregister✘
diigodiigo.comregister✘
discorddiscord.comregister✘
dockerdocker.comregister✘
dominosfrdominos.frregister✔
ebayebay.comlogin✔
elloello.coregister✘
envatoenvato.comregister✘
eventbriteeventbrite.comlogin✘
evernoteevernote.comlogin✘
fanpopfanpop.comregister✘
firefoxfirefox.comregister✘
flickrflickr.comlogin✘
freelancerfreelancer.comregister✘
freibergdrachenhort.user.stunet.tu-freiberg.deregister✘
garmingarmin.comregister✔
githubgithub.comregister✘
googlegoogle.comregister✔
gravatargravatar.comother✘
hubspothubspot.comlogin✘
imgurimgur.comregister✔
insightlyinsightly.comlogin✘
instagraminstagram.comregister✔
issuuissuu.comregister✘
koditvforum.kodi.tvregister✘
komootkomoot.comregister✔
lapostelaposte.frregister✘
lastfmlast.fmregister✘
lastpasslastpass.comregister✘
mail_rumail.rupassword recovery✘
mybbcommunity.mybb.comregister✘
myspacemyspace.comregister✘
nattyornotnattyornotforum.nattyornot.comregister✘
naturabuynaturabuy.frregister✘
ndemiccreationsforum.ndemiccreations.comregister✘
nextpvrforums.nextpvr.comregister✘
nikenike.comregister✘
nimblenimble.comregister✘
nocrmnocrm.ioregister✘
nutshellnutshell.comregister✘
odnoklassnikiok.rupassword recovery✘
office365office365.comother✔
onlinesequenceronlinesequencer.netregister✘
parlerparler.comlogin✘
patreonpatreon.comlogin✔
pinterestpinterest.comregister✘
pipedrivepipedrive.comregister✘
plurkplurk.comregister✘
pornhubpornhub.comregister✘
protonmailprotonmail.chother✘
quoraquora.comregister✘
ramblerrambler.ruregister✘
redtuberedtube.comregister✘
replitreplit.comregister✔
rocketreachrocketreach.coregister✘
samsungsamsung.comregister✘
seoclerksseoclerks.comregister✘
sevencups7cups.comregister✔
smulesmule.comregister✔
snapchatsnapchat.comlogin✘
soundcloudsoundcloud.comregister✘
sporclesporcle.comregister✘
spotifyspotify.comregister✔
stravastrava.comregister✘
taringataringa.netregister✔
teamleaderteamleader.comregister✘
teamtreehouseteamtreehouse.comregister✘
tellonymtellonym.meregister✘
thecardboardthecardboard.orgregister✘
therianguideforums.therian-guide.comregister✘
thevapingforumthevapingforum.comregister✘
tumblrtumblr.comregister✘
tunefindtunefind.comregister✔
twittertwitter.comregister✘
venmovenmo.comregister✔
vivinovivino.comregister✘
voxmediavoxmedia.comregister✘
vrbovrbo.comregister✘
vscovsco.coregister✘
wattpadwattpad.comregister✔
wordpresswordpresslogin✘
xingxing.comregister✘
xnxxxnxx.comregister✔
xvideosxvideos.comregister✘
yahooyahoo.comlogin✔
zohozoho.comlogin✔