{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "eWnO-BOVihlo" }, "source": [ "# **Holehe OSINT - Email to Registered Accounts**\n", "![PyPI](https://img.shields.io/pypi/v/holehe) ![PyPI - Week](https://img.shields.io/pypi/dw/holehe) ![PyPI - Downloads](https://static.pepy.tech/badge/holehe) ![PyPI - License](https://img.shields.io/pypi/l/holehe)\n", "\n", "# [Holehe Online Version](https://osint.industries/)\n", "\n", "# **Summary** 📋\n", "\n", "*Efficiently finding registered accounts from emails.*\n", "\n", "Holehe uses password recovery, login, and registration requests to check if an email is attached to an account on sites like twitter, instagram, imgur and more than 120 others.\n", "\n", "The full list is available [here](https://github.com/megadose/holehe#modules).\n", "\n", "## **Features**\n", "-----\n", "- Can be utilized through the command-line or in a Python script\n", "- Email address owner is not alerted by queries from this tool\n", "- More than one email address can be queried at one time.\n", "- Results can be exported in .csv format.\n", "\n", "## **Limitations**\n", "-----\n", "- In some, but not all cases, recovery email and phone number can be returned\n", "- Email address registration status is simply unobtainable from some websites.\n", "- Rate Limits - website will only allow requests to be made from a specific IP address a certain number of times.\n", "\n", "### ***Note** 👇\n", "Many of the code examples below included either '!'or '&&shell'. They are included purely for use in Jupyter Notebooks and are not required if you are running these commands on your computer at home.\n", "\n", "# **Installation** 💿\n", "\n", "There are two ways to install the holehe tool.\n", "1. Use 'pip', a package installer for Python\n", "2. download and install the tool from its github repository.\n", "\n", "Run one of the two code snippets below to install holehe:\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "MtoQUzJmRFZy" }, "outputs": [], "source": [ "!pip install holehe" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "GggqVnKzDRfs" }, "outputs": [], "source": [ "%%bash\n", "git clone https://github.com/megadose/holehe.git\n", "cd holehe/\n", "python3 setup.py install" ] }, { "cell_type": "markdown", "metadata": { "id": "gBNwBXx5MTSP" }, "source": [ "# **Usage** 💻\n", "## **Query Single Email Address**\n", "------\n", "You will enter your command in the following format:\n", "```\n", "holehe \n", "```\n", "Run the example below to see how to query an email address." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "aUjw8-_sRh9L" }, "outputs": [], "source": [ "!holehe test@gmail.com" ] }, { "cell_type": "markdown", "metadata": { "id": "flENFXjlUOik" }, "source": [ "Your result will be one of the following:\n", "\n", "Green [+] - The email address is registered.\n", "\n", "Yellow [x] - The email address is not registered.\n", "\n", "Purple [-] - Email address not used.\n", "\n", "Red [!] - Error in determining status. (Usually rate limit has been hit)\n", "\n", "\n", "### **Export Results as .csv Document**\n", "-----\n", "The resultant .csv document will appear in the same folder as you are executing the command.\n", "\n", "If running this notebook in Google Colab, just click on the folder icon to get access to your .csv, which can be downloaded and opened using Microsoft Excel, or any other spreadsheet-based program.\n", "\n", "In other services that allow you to host Jupyter Notebooks, such as Binder, you may have to access your folder and thereby the .csv file a different way.\n", "\n", "You will enter the command in the following format:\n", "```\n", "holehe --csv \n", "```\n", "Run the example below to see how to query an email address and generate a .csv." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "T1s2dm3mUvfd" }, "outputs": [], "source": [ "!holehe --csv test@gmail.com" ] }, { "cell_type": "markdown", "metadata": { "id": "9FHPJtO7xIRb" }, "source": [ "## **Query Multiple Email Addresses**\n", "-------\n", "\n", "Using the following code, you can query multiple email addresses at one time. Their results will be printed out sequentially.\n", "\n", "Simply paste your list of email addresses, in quotes and separated by a space. You may query an unlimited number of email addresses, but you may run into rate limitations for some websites.\n", "\n", "You will enter the command in the following format:\n", "\n", "```\n", "echo \" ... \" | xargs -n 1 holehe\n", "```\n", "Run the example below to see how to query an email address and generate a .csv." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "SHN6qezGCfVO" }, "outputs": [], "source": [ "!echo \"test@gmail.com test2@gmail.com\" | xargs -n 1 holehe" ] }, { "cell_type": "markdown", "metadata": { "id": "JOa6daYsEep-" }, "source": [ "### **Export Results as .csv Document**\n", "-----\n", "There are 3 lines of code required to export the results of multiple email address queries to a .csv. In order to specify the email addresses to query and export to a .csv file, you should paste them in the quoted portion on the 2nd line.\n", "\n", "The resultant .csv document (named \"result.csv\") will appear in the same folder as you are executing the command.\n", "\n", "In the case of this notebook, just click on the folder icon to get access to your .csv, which can be downloaded and opened using Microsoft Excel, or any other spreadsheet-based program.\n", "\n", "You will enter the command in the following format:\n", "```\n", "pip install csvkit\n", "echo \" ... \" | xargs -n 1 holehe --csv\n", "csvstack --filenames *.csv > result.csv\n", "```\n", "\n", "Here's an example you can run to see how it works:\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "YhSIzUDUE-Fv" }, "outputs": [], "source": [ "%%bash\n", "pip install csvkit\n", "echo \"test@gmail.com test2@gmail.com\" | xargs -n 1 holehe --csv\n", "csvstack --filenames *.csv > result.csv" ] }, { "cell_type": "markdown", "metadata": { "id": "c4tyboZYtLsz" }, "source": [ "# **FAQ** 📃\n", "### **How can I deal with rate limits?**\n", "----\n", "If using holehe on your own computer:\n", "- You can connect to a VPN and then make a request - this effectively changes the IP address from which you are making your request to a given website.\n", "- You can also run the application on a different computer or WiFi connection, public spaces or campuses may not be so strongly rate-limited.\n", "\n", "If using holehe in a Jupyter Notebook, it really depends on the machine hosting your Jupyter Notebook and whether that machine can make a request using a VPN. If not, you may simply have to wait for a time period determined by the website that's rate limiting you.\n", "\n", "### **How can I display only those websites in which the target email is registered?**\n", "---\n", "After typing \"holehe\", add \"--only-used.\"\n", "\n", "Here's an example you can run that demonstrates querying a single email address:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "PYe2T9PYMGvH" }, "outputs": [], "source": [ "!holehe --only-used test@gmail.com" ] }, { "cell_type": "markdown", "metadata": { "id": "UuJvbFyBMlAy" }, "source": [ "Here's an example of querying multiple email addresses with --only-used:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Lnn2n-tdMLD2" }, "outputs": [], "source": [ "!echo \"test@gmail.com test2@gmail.com\" | xargs -n 1 holehe --only-used" ] }, { "cell_type": "markdown", "metadata": { "id": "NXE8lSeLM8ty" }, "source": [ "Here's an example of combining both to export the results from a query of a single email address to a .csv:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "BrkiUxsiNEtq" }, "outputs": [], "source": [ "!holehe --csv --only-used test@gmail.com" ] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 }