Inspiration In an era where data breaches are daily news, I realized that monitoring your digital footprint usually means paying for expensive services or relying on "Have I Been Pwned" notifications after it’s already too late. I wanted to build a proactive, defensive tool that allows individuals and researchers to safely scan hidden parts of the web for their own data. The goal was to demystify the dark web and create a transparent, open-source engine for Defensive OSINT (Open Source Intelligence).
What it does Abyss is a specialized dark web crawler that hunts for specific data artifacts (like emails, usernames, or crypto addresses) across the Tor network. It utilizes Stealth Routing to tunnel all traffic through a local Tor SOCKS5 proxy, masking the user's origin. It performs Multi-Engine Search by querying multiple hidden search indexes like Torch and Ahmia simultaneously to ensure redundancy. It executes Deep Crawling, meaning unlike basic scrapers that only look at search results, Abyss visits the actual onion sites to mine data from the page source. Finally, it uses Intelligent Filtering via a Sanitization Pipeline to filter out spam, scam listings, and irrelevant noise, ensuring the final report is accurate and actionable.
How we built it The core was built in Python 3 using a modular architecture. For Networking, we used requests[socks] to route HTTP traffic through port 9150 (the Tor Browser's local interface). This required strict session management to handle the instability of onion routing. For Parsing, we utilized BeautifulSoup4 to normalize the chaotic HTML structures found on dark web sites, creating custom adapters for different search engines. For Data Mining, the brain of the tool is a Regex engine that scans raw text for patterns (emails, BTC addresses, PGP keys) rather than specific keywords, allowing it to find data we didn't explicitly ask for. For Sanitization, we implemented a Nuclear Blocklist system that checks both page titles and extracted artifacts against a massive dictionary of spam keywords to eliminate false positives.
Challenges we ran into The Cartel Spam Problem: Our early tests were flooded with 90% spam results (fake markets, ads). We had to engineer a Sanitization Step that filters artifacts after extraction, cross-referencing them against a dynamically loaded blocklist to ensure clean data. Tor Instability: Onion links are notoriously unreliable. We had to implement robust error handling, timeouts, and soft failures so the crawler wouldn't crash just because one node was down. Dependency Conflicts: Managing the bridge between local Python scripts and the Tor service required debugging SOCKS5 protocol errors and ensuring the crawler wouldn't leak DNS requests.
Accomplishments that we're proud of Zero-Leak Architecture: We successfully built a crawler that operates entirely locally. No API keys are required, and no data is ever sent to a third-party server. The Deep Crawl Logic: Getting the tool to successfully visit a search result, scrape it, and return safely without getting blocked by anti-bot scripts was a huge technical win. Effective Noise Reduction: Transforming the output from a list of 50 spam links into a concise report of 0-3 highly relevant findings.
What we learned The power of Regex: I learned that pattern matching is far more powerful than keyword searching when dealing with unstructured data. Network Resilience: Building for the dark web taught me defensive programming—assuming every connection will fail and writing code that handles that gracefully. Data Hygiene: The importance of sanitizing inputs and outputs. A crawler is only as good as its ability to filter out garbage data.
What's next for Abyss GUI Development: Moving from a CLI tool to a simple desktop interface using Tkinter or PyQt. Database Integration: Adding support for SQLite to track changes over time (e.g., "This email appeared on a new site today"). Real-Time Alerts: Implementing a notification system that alerts the user immediately if a high-priority artifact is found during a scan.
Log in or sign up for Devpost to join the conversation.