Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ A modular, terminal-based toolkit for OSINT, reconnaissance, and scraping - buil
| 02 | **Web Reconnaissance** | Multi-mode OSINT search powered by the `ddgs` library. Choose from 7 modes: **General** (free-form), **Person** (12 dorks), **Email** (8 dorks), **Domain** (12 recon dorks), **Username** (12 platform dorks), **Phone Number** (8 dorks), or **Custom Dork** (write your own template). Configurable result count, retry/back-off on rate limits. Results can be exported to `scraped_data/` as **TXT**, **CSV**, or **JSON**. |
| 03 | **Phone Lookup** | Validates and analyses a phone number via the `phonenumbers` library (E.164/national/international formats, country, region, carrier, line type, time zones), then runs [`ignorant`](https://github.com/megadose/ignorant) to check social-media platform registrations. |
| 04 | **IP Lookup** | Resolves a hostname or IP address and queries [ipinfo.io](https://ipinfo.io) for geolocation data - city, region, country, coordinates, ISP/organization, postal code, and timezone - with a direct OpenStreetMap link. |
| 05 | **Username Search** | Checks a username across thousands of websites using [`Maigret`](https://github.com/soxoj/maigret)'s maintained site database and detection engines. Configure site count, timeout, parallel connections, retries, and detailed errors before scanning. Results can optionally be exported to `scraped_data/maigret/` as **TXT**, **CSV**, or **JSON**. |
| 05 | **Username Search** | Checks a username across thousands of websites using the fully integrated [`Maigret`](https://github.com/soxoj/maigret) OSINT tool. Configure site count, timeout, parallel connections, retries, and detailed errors before scanning. Results can optionally be exported to `scraped_data/maigret/` as **TXT**, **CSV**, or **JSON**. |
| 06 | **Email Search** | Checks an email address against 100+ websites and services using [`holehe`](https://github.com/megadose/holehe) to identify where the address is registered. |
| 07 | **Leak Search** | Multi-source breach and credential intelligence for an **email address**, **domain**, or **username**. Queries [Hudson Rock Cavalier](https://cavalier.hudsonrock.com) for stealer-log records (date of compromise, stealer family, infected machine details, masked credential samples, corporate/user service counts) and, for email targets, cross-references the [ProxyNova COMB](https://api.proxynova.com/comb) dataset (3.2B+ leaked credential lines) for a total hit count. Configurable inline entry limit; results can be exported to `scraped_data/` as **TXT**, **CSV**, or **JSON**. |
| 08 | **Port Scanner** | Concurrently scans a user-defined TCP port range (1–N) on any IP or hostname using a 50-thread pool. Open ports are reported in real time. |
Expand Down
6 changes: 3 additions & 3 deletions tools/username_search.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,18 @@ class UsernameSearchTool(BaseTool):
order = 5
aliases = ("--username", "--username-search")
description = (
"Checks a username across a configurable number of websites using Maigret's maintained site database and detection engines. "
"Checks a username across thousands of websites using the fully integrated Maigret OSINT tool. "
"Results can optionally be exported as TXT, CSV, or JSON."
)
arguments = (ToolArgument("username", "USERNAME", "Run Maigret username search."),)

def run(self, username: str | None = None) -> None:
from utils import search_username
from utils import username_search

printer.info(
"Maigret will check the username with configurable scan options and optional TXT/CSV/JSON export."
)
username = str(
username or printer.user_input("Enter a target username : \t")
).replace(" ", "_")
search_username.search(username=username)
username_search.search(username=username)
Loading