Chris (ChrisJr404) 4fb1ad7ef3 fix(worker): surface the underlying exception when a work item fails (#2227)
The async worker that drains the engine queue catches `Exception` with
no `as` binding and prints the bare line

    "A error occurred while processing a 'work item'."

That message both swallows the actual error class+text (so users
report bugs like #2227 with no actionable detail and the maintainer
has to ask them to repro under more verbosity) and reads "A error"
instead of the grammatical "An error".

Bind the exception, print its type and message, and fix the article.
The shodan integration test (`tests/discovery/test_shodan_engine.py`)
already asserts the message is not in output on the happy path; the
assertion is updated to match the new string.

Closes #2227.
2026-05-03 11:35:54 -04:00
2026-01-27 20:44:51 -08:00
2026-02-22 02:58:04 +00:00
2026-04-22 22:16:25 +00:00

theHarvester

TheHarvester CI TheHarvester Docker Image CI Rawsec's CyberSecurity Inventory

Packaging status

About

theHarvester is a simple to use, yet powerful tool designed to be used during the reconnaissance stage of a red team assessment or penetration test. It performs open source intelligence (OSINT) gathering to help determine a domain's external threat landscape. The tool gathers names, emails, IPs, subdomains, and URLs by using multiple public resources that include:

Install and dependencies

Install uv:

curl -LsSf https://astral.sh/uv/install.sh | sh

Clone the repository:

git clone https://github.com/laramies/theHarvester
cd theHarvester

Install dependencies and create a virtual environment:

uv sync

Run theHarvester:

uv run theHarvester

Development

To install development dependencies:

uv sync --all-groups

To run tests:

uv run pytest

To run linting and formatting:

uv run ruff check
uv run ruff format

Passive modules

Active modules

  • DNS brute force: dictionary brute force enumeration
  • Screenshots: Take screenshots of subdomains that were found

Modules that require an API key

Documentation to setup API keys can be found at - https://github.com/laramies/theHarvester/wiki/Installation#api-keys

  • bevigil - 50 free queries/month. 1k queries/month $50
  • brave - free plan available. Pro plans for higher limits
  • bufferoverun - 100 free queries/month. 10k/month $25
  • builtwith - 50 free queries ever. $2950/yr
  • censys - 500 credits $100
  • criminalip - 100 free queries/month. 700k/month $59
  • dehashed - 500 credts $15, 5k credits $150
  • dnsdumpster - 50 free querries/day, $49
  • fofa - query credits 10,000/month. 100k results/month $25
  • fullhunt - 50 free queries. 200 queries $29/month, 500 queries $59
  • github-code
  • haveibeenpwned - 10 email searches/min $4.50, 50 email searches/min $22
  • hunter - 50 free credits/month. 12k credits/yr $34
  • hunterhow - 10k free API results per 30 days. 50k API results per 30 days $10
  • intelx - free account is very limited. Business acount $2900
  • leakix - free 25 results pages, 3000 API requests/month. Bounty Hunter $29
  • leaklookup - 20 credits $10, 50 credits $20, 140 credits $50, 300 credits $100
  • mojeek - 5000 free credits $6.50, $1.30 CPM (Personal), $2.60 CPM (Startup), $3.90 CPM (Business)
  • netlas - 50 free requests/day. 1k requests $49, 10k requests $249
  • onyphe - 10M results/month $587
  • pentesttools - 5 assets netsec $95/month, 5 assets webnetsec $140/month
  • projecdiscovery - requires work email. Free monthly discovery and vulnerability scans on sign-up email domain, enterprise $
  • rocketreach - 100 email lookups/month $48, 250 email lookups/month $108
  • securityscorecard - requires a work email
  • securityTrails - 50 free queries/month. 20k queries/month $500
  • shodan - Freelancer $69 month, Small Business $359 month
  • tomba - 25 free searches/month. 1k searches/month $39, 5k searches/month $89
  • venacus - 1 free search/day. 10 searches/day $12, 30 searches/day $36
  • virustotal - 500 free lookups/day, 15.5k lookups/month. Busines accounts requires a work email
  • whoisxml - 2k queries $50, 5k queries $105
  • windvane - 100 free queries
  • zoomeye - 5 free results/day. 30/results/day $190/yr

Package versions

Packaging status

Comments, bugs, and requests

Main contributors

  • Twitter Follow Matthew Brown @NotoriousRebel1
  • Twitter Follow Jay "L1ghtn1ng" Townsend @jay_townsend1
  • Twitter Follow Lee Baird @discoverscripts

Thanks

  • John Matherly - Shodan project
  • Ahmed Aboul Ela - subdomain names dictionaries (big and small)
Languages
Python 93.3%
JavaScript 3.6%
CSS 1.7%
HTML 1.3%