👋 Welcome to OSINT Tool Tuesday. This week, we’re exploring Phunter, a phone number OSINT tool useful for investigating profiles across various sources. This tool leverages several technologies, making it a great tool to increase your OSINT investigation capabilities.
🚨 This tool has been added to the OSINT Resources for Phone Numbers page on The OSINT Newsletter for easy reference later. That list serves as a roadmap for new tutorials in the future. If there are any tools you’d like to see added to the list and covered, please reach out jake@osint.news with details.
Let’s get started. ⬇️
Phunter
Phunter is an OSINT tool that extracts information from phone numbers, including the operator, location, line type, and potential owner details. It can be installed and run using Python commands directly from GitHub.
🎩 H/T: Norze
🗒️ Phunter has very basic functionality; however, this tutorial will expose you to Selenium, command line tools, password reset methods, and person search databases.
Setup
Install Chromedriver
To use this tool and essentially any other tool that leverages Selenium, you’ll first have to ensure that you have either Chromedriver or Geckodriver installed. Selenium allows you to interact with a browser in a way that other tools cannot by popping up a browser instance, navigating to a page, and then completing some sort of action.
In this tutorial, I’m going to be using Google Chrome as my browser. To follow along, use this tutorial to install Chromedriver.
Download Phunter
Now that we have Chromedriver installed, let’s download Phunter from GitHub to our local device. Using your terminal, enter the following command.
git clone https://github.com/N0rz3/Phunter.git
🗒️ If you’re getting an error that you don’t have git installed or similar, follow this guide to install git on your device. This is essential for OSINT investigations if you’re interacting with open source tools.
Now that Phunter is on our local device, we’ll have to open that directory so we can interact with the tool. Enter the following command to open that directory.
cd Phunter
You can explore this directory further once opened by entering the ls command. This will list all files in that directory. It should look something like this.
jakecreps@Macbook Phunter % ls
LICENSE assets lib requirements.txt
README.md config.json phunter.py useragents.txt
Notice the requirements.txt file. These are the dependencies we need to ensure we install before moving forward. We’ll do this using Python and pip. Enter the following command.
pip install -r requirements.txt
If you’re running into issues using pip, try pip3 instead. If you’re continuing to run into issues, it’s difficult for me to troubleshoot async. I recommend entering the error messages you receive into ChatGPT and following its guidance for debugging.
If you’ve succeeded, you should see a list of confirmations, and possibly a few yellow messages, in your terminal.
Now it’s time to move on to the next step, usage.
Usage
When using any GitHub-hosted tool, I always start by inspecting the help menu. You can do that for Phunter by using the following command. The -h flag is pretty universal among many scripts.
python phunter.py -h
If successful, you should see a menu similar to this.
usage: phunter.py [-h] [-t [TARGET]] [-a [AMAZON]] [-p [PERSON]] [-f [FILE]] [-v] [-o [OUTPUT]]
options:
-h, --help show this help message and exit
-t [TARGET], --target [TARGET]
get info by phone number
-a [AMAZON], --amazon [AMAZON]
get confirmation whether Amazon linked by phone number
-p [PERSON], --person [PERSON]
get owner of phone number with inversed annual (Page Blanche)
-f [FILE], --file [FILE]
get info by a file containing phone numbers
-v, --verify check your version, update(s), services...
-o [OUTPUT], --output [OUTPUT]
give a file to save the output (only with args: --amazon/-a , --person/-p)
This menu gives you a list of options you add to your commands to get specific results. If you’re new to command line tools, you will see this a lot moving forward.
The three options we are going to look at are -t, -a, and -p.
General Information
If you’re looking for general information about a phone number, including if it’s an IP phone, a landline, a wireless device, or a location, this is the method for you.
You can do this by issuing the following command.
python phunter.py -t +11234567890
Replace the +11234567890 with the phone number you’re interested in.
🗒️ Make sure you enter your country code with a + before it; otherwise, you’ll receive an error.
If you’re successful, you should see something like this.
📞 Phone number: +15555555555
[>] Possible: ✔️
[>] Valid: ❌
[-] Not Operator
[>] Possible location: United States, Canada, Bahamas, Jamaica, Trinidad and Tobago, Barbados, Saint Lucia, Grenada, Antigua and Barbuda, Saint Kitts and Nevis, Dominica, Saint Vincent and the Grenadines, Dominican Republic, Puerto Rico
[-] Line not found
[>] Free-lookup
├── International: +1 555-555-5555
├── National: (555) 555-5555
├── Views count: 3
[>] Spamcalls
└── > Not spammer
In this example, we can see that this phone number is not valid and limited information is found.
Amazon Account Registration
The next method of Phunter we’re going to look into is the Amazon lookup method. This method uses Selenium to generate a pop-up, ask you to solve a captcha, and then use the password reset method to collect information.
You can do this by entering the following command.
Keep reading with a 7-day free trial
Subscribe to The OSINT Newsletter to keep reading this post and get 7 days of free access to the full post archives.