OSINT and recon
OSINT workflow from zero, with AI as a co-pilot
A repeatable OSINT workflow for a target you may look at: set scope, collect in passes, correlate, and let the NotHoly chat plan and summarise.
Username, email and breach checks for a scope you own, with sherlock, holehe and Have I Been Pwned, kept inside privacy limits.
People OSINT maps the humans and accounts around a target: usernames, work emails, public profiles, and whether an address shows up in a known breach. It is the most privacy-sensitive part of recon, so the rule comes first. You collect what the scope needs about accounts tied to your target, you do not build dossiers on private individuals, and breach data is handled as the sensitive record it is.
A handle reused across sites links accounts. sherlock checks one username against hundreds of platforms.
sherlock exampledev --timeout 5 --print-foundmaigret does the same across more sites and tags, and can write a report folder.
maigret exampledev --folderoutput ./maigret-outA hit means the name exists on that platform, not that it is the same person. Confirm by the account content before you link two handles to one human.
Work emails usually follow a pattern such as first.last at the domain. theHarvester collects addresses tied to a domain from public sources.
theHarvester -d example.com -b bing,crtsh -f example-emailsholehe checks which sites already have an account registered to an address, without sending the person anything.
holehe [email protected] --only-usedKeep this to addresses on your scope's domain or ones the program told you are in scope. An address outside that is someone's personal account, and it is not yours to probe.
A breach-notification service tells you whether an address appeared in a known data breach, which matters for exposure, not for logging in. Have I Been Pwned is the standard source and has an API.
curl -s -H "hibp-api-key: $HIBP_KEY" \
"https://haveibeenpwned.com/api/v3/breachedaccount/[email protected]"A hit lists the breaches an address was in. It does not give you passwords, and you should not seek them. The finding is that the address was exposed in a named breach, and that belongs in a report so the owner can force a reset. Treat the list itself as sensitive, because a record that an address was breached is still personal data, so it stays encrypted and out of any shared screenshot.
The NotHoly chat has no access to any of these services; it structures what you already gathered.
Here are usernames, emails and breach names for accounts in
my scope. Build a table: account, platforms confirmed, domain,
breach exposure, confidence. Mark anything that is a guess.Use it to turn scattered findings into one table with a confidence column, which stops you from stating a guess as a fact. It will not and cannot pull more data on a person.
This is where OSINT touches real lives, so three limits keep it clean. Collect only accounts tied to the target in scope, not an employee's private life. Store breach data encrypted, share it only through the program's channel, and delete it when the engagement ends. Never use a breached password or a found email to log in anywhere, and when you are unsure whether something is in scope, leave it out.
Only when the person's work identity is in scope and the purpose is the engagement, not curiosity. A personal account outside work is their private data, so stay off it.
No. The query goes to the breach service, not the mailbox. holehe and sherlock likewise query third-party sites, not the target, but the data they return is still about a person, so handle it with care.
Accounts and people fill in the human layer. Next, learn image and location work in image and geolocation OSINT basics. Back to search-engine dorking that works.
OSINT and recon
A repeatable OSINT workflow for a target you may look at: set scope, collect in passes, correlate, and let the NotHoly chat plan and summarise.
OSINT and recon
Enumerate subdomains for a scope you own: subfinder, amass, findomain and chaos piped through anew and httpx, with the NotHoly chat to triage.
OSINT and recon
Harvest URLs and parameters on a scope you own with gospider, hakrawler, waybackurls and gau, then filter with qsreplace and the NotHoly chat.