NeutrOSINT

A tool for investigating Proton Mail addresses.

URL

https://github.com/Kr0wZ/NeutrOSINTarrow-up-right

Description

NeutrOSINT is an open-source Python tool designed to determine if a Proton Mail email address exists and to retrieve its most recent PGP Key creation date.

circle-info

PGP (Pretty Good Privacy)

PGP is an encryption method used to encrypt and sign messages developed by Philip Zimmermann in 1991.

  • It ensures confidentiality by encrypting data so only the intended recipient can decrypt it;

  • It guarantees integrity by allowing the recipient to verify that the message wasn’t altered during transit;

  • It offers authentication through digital signatures that confirm the sender’s identity;

  • And it supports non-repudiation, meaning the sender cannot later deny having sent the signed message.

Proton Mail automatically creates PGP key pairs with each email. These pairs are then used to encrypt and sign outgoing messages as well as decrypt incoming messages.

You can generate a new PGP key pair in your Proton Mail settings.

For more information on PGP and how it is used by Proton Mail, check these two guides:

NeutrOSINT uses the email's associated PGP key to detect if an email exists or not.

The tool supports two modes:

  • Light Mode (API Mode): Uses Proton Mail's API to check email validity. This mode is best suited for quick checking a few usernames or emails as the API has a request limit.

  • Selenium Mode (Browser-automated mode): Connects with your own Proton Mail credentials to check email addresses. Use this mode to test a consequent list of usernames or emails without getting a cooldown. Also use it when you need to verify business emailsarrow-up-right.

Cost

The tool is free and open source.

Level of difficulty

starstarstarstarstarstarstarstar

The tool requires users to run Python scripts and configure API access or credentials.

Requirements

  • Python (compatible with Python 3.6+)

  • Optional: Google Chrome (for Selenium Mode)

  • Optional: Proton Mail credentials (for Selenium Mode)

  • Optional: Proxy configuration if needed (for bypassing the API's request limit).

  • Optional: A file containing the list of email addresses for batch operations

Limitations

  • On PGP Key Creation Date: The PGP Key Creation Date isn't always the email address creation date as a new PGP Key can be generated from the Proton Mail settings.

  • API Limits: The light mode relies on Proton Mail's API that has request limit of 100 requests per hour.

How to Use

Installation

  1. Clone the NeutrOSINT Repository:

Open your terminal and run:

  1. Set Up a Virtual Environment

This articlearrow-up-right explains why virtual environments are recommended for manipulating Python projects.

  1. Install NeutrOSINT:

Usage

Command Syntax

Options

Examples

Example 1: Validate a Single Email Address

This is the most basic usage of NeutrOSINT. It will test testemail@proton.me validity and display its PGP Creation Date, Fingerprint and Encryption Algorithm.

Output:

Example 2: Display the PGP Public Key

You can specify the -k option to display the PGP Key.

Output:

Example 3: Fetch for a username

You can specify a username and it will look for the associated emails in all known Proton domain names.

Output:

Example 4: Validate Multiple Emails from a File

Create a file named emails.txt with one entry (email or username) per line:

Run the command below. It will also save the results in a results.txt file.

Output:

Example 5: Using Selenium Mode

The request limit of the API in Light Mode is 100 requests. When you reach the API limit, the following message will be displayed:

If you reach this limit or if you know you have a lot of entries to test, then you can use Selenium Mode which requires to have a valid set of credentials. The Selenium Mode will automate a browser to simulate a human-like interaction with the Proton Mail website. It will login using your credentials, start composing a new email and check for the target availability.

When you type in an email in the destination field, a request is made to check for the email availability when it's a Proton Email.

The lock shows that the email is valid and the encryption is possible.
When the email does not exist, an error message is displayed.

The Selenium Mode will leverage the UI's capabilities to retrieve this information. To use it you need to specify your email and password using the -u and -e options.

This example will use a file containing more than 100 usernames.

Example 6: Using a Proxy (Advanced)

Start your proxy and specify it in the command line (e.g. 127.0.0.1:8080). You might want to use:

  • Torarrow-up-right: The Onion Router opens a proxy at 127.0.0.1:9050

  • Any free or paid proxy from a provider you trust.

  • Your own proxy.

Output:

Advanced Usage: Bypassing API Limits through proxies (requires a bit of scripting knowledge)

  1. Using multiple proxies

If you have multiple emails to test, you can develop your own script to use multiple proxies and avoid a cooldown. Let's say you have three different proxies. Here's how you would do it in bash:

  1. Using Tor Circuit Changing

Another solution would be to route requests through the Tor network. If a request fails, the script requests a new Tor circuit to attempt the validation again.

Ethical Considerations

Use responsibly for legitimate research purposes.

Guides and articles

GitHub - NeutrOSINTarrow-up-right: Includes detailed instructions for setup and usage.

Tool provider

The tool is developed and maintained by KrowZarrow-up-right, a french pentester, youtuber, streamer and OSINT enthusiast.

Advertising Trackers

Page maintainer

Bellingcat Volunteer Team

Last updated

Was this helpful?