OnionMapper is a state-of-the-art web application for classifying and analyzing .onion websites on the Dark Web using advanced machine learning.
With a beautiful UI and seamless Tor integration, OnionMapper empowers researchers, analysts, and enthusiasts to explore hidden services responsibly and anonymously.
This project is designed for researchers, cybersecurity professionals, and enthusiasts exploring the hidden corners of the web responsibly.
- π Onion Site Scraping: Crawl
.onionwebsites securely via the Tor network. - β¨ Keyword Extraction: Instantly extract the most relevant keywords from dark web sites.
- π€ Multi-Model Classification: Choose from several trained ML modelsβNaive Bayes, XGBoost, CatBoost, Random Forest, and Stochastic Gradient Boostingβfor high-accuracy categorization.
- π₯οΈ Modern Web UI: Clean, responsive, and animated interface built with Flask and Bootstrap 5.
- π‘οΈ Privacy-First: All requests routed through Tor; no site data is stored.
- π§βπ» Developer & About Pages: Animated and interactive "About Project" and "Developers" sections.
- π Tor Integration: All scraping and browsing is routed through your local Tor proxy for anonymity.
This project is strictly for educational and research purposes.
Do not use OnionMapper to access illegal content or for any unlawful purposes. Always operate responsibly and respect local laws.
- Backend: Python, Flask
- Frontend: Bootstrap 5, custom CSS & animation
- ML Libraries:
scikit-learn,xgboost,catboost,joblib,nltk
- Scraping & Parsing:
requests,beautifulsoup4
- Proxy: Tor (
socks5h://127.0.0.1:9050) - Other:
nltkfor stopword filtering and keyword extraction
- Python 3.8+
- Tor service running locally (default port 9050)
- Required packages:
pip install -r requirements.txt
-
Clone the repository:
git clone https://github.com/Ibrahim-sayys/OnionMapper.git cd OnionMapper -
Run Tor:
sudo apt-get install tor tor
-
Run the Flask web app:
python app.py
The web interface will be available at http://127.0.0.1:5000
-
(Optional) Download NLTK stopwords: The app will attempt to download stopwords automatically, but you can manually do:
import nltk nltk.download('stopwords')
- Open the OnionMapper web app in your browser.
- Enter any
.onionURL, select a machine learning model, and click Predict Category. - See the predicted category and extracted keywords, and explore the About/Developers pages for more info.
- Tor-based secure web scraping
- Fast keyword extraction from scraped content
- Multiple ML models for classification
- Interactive, animated web UI with model selection
- Animated About & Developer sections
- Error handling and user-friendly alerts
- Visualize keyword/category trends
- Automated reporting for classified sites
- Docker support & deployment guides
Contributions are welcome! Please follow these steps:
- Fork the project
- Create a feature branch:
git checkout -b feature-name
- Commit your changes:
git commit -m "Add some feature" - Push to the branch:
git push origin feature-name
- Open a pull request
If you find any security vulnerabilities, please open an issue or contact the repository owners.
- Thanks to the open-source and cybersecurity communities for inspiration and tools.
- Special thanks to all contributors!
Made with β€οΈ by Syed Muhammad Ibrahim & Hassan Arshad