OnionHarvester v2 release: small TOR Onion Address harvester for checking the address


A small TOR Onion Address harvester for checking if the address is available or not. The program uses the TOR local socks5 proxy for finding all the Onion Addresses which are alive and ports 80 and 443 are available. Details about the project and TOR onion harvesting are published on my personal blog here.

Changelog v2

1- Use of multiple TOR instances.
2- Increase the searching speed exponentially.
3- Redesigning the Code with design patterns.
4- Use MVP as the code layering.


git clone https://github.com/mirsamantajbakhsh/OnionHarvester.git

Just get the two java files and compile them inside your Java IDE. Java 8 is prefered (JDK 1.8).


  • make you sure PySocks in installed (pip install PySocks)
  • git clone https://github.com/viraintel/owasp-nettacker
  • goto OWASP Nettacker libraries directory cd owasp-nettacker/lib/scan
  • create a directory and rename it to onionharvester
  • go to the directory you created and copy engine.py into it.
  • create __init__.py file in the onionharvester directory and copy these contents and save it.
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-


  • now you are able to run it with OWASP Nettacker framework. python nettacker.py -m onion_harvester_scan -i something.onion -v 5 (it starts from aaaaaaaaaaaaaaaa.onion)


  • –ip: Sets the IP address for local TOR socks5 proxy. (Ex:
  • -thread: Sets the number of TOR instances and threads per each instance to harvest concurrently. (Ex: 20 = 400 threads, 20 TOR instances each works with 20 threads).
  • –time-out: The timeout time for reaching each Onion address in milliseconds (Ex: 5000 means 5 seconds).


If you did not set the switched, you can use the Onion Harvester with its default settings. The default value for each switch is here:

SwitchDefault Value
–time-out5000 (5 seconds)

OnionHarvester Copyright (C) 2017 mirsamantajbakhsh

Source: https://github.com/mirsamantajbakhsh/