
Nächste Generation DorX. Erstellt von Dorks, für Dorks. 🤓
DorXNG ist eine moderne Lösung zur Gewinnung von OSINT-Daten mithilfe fortgeschrittener Suchmaschinenoperatoren über mehrere vorgelagerte Suchanbieter. Im Backend wird ein zweckgebautes containerisiertes Image von SearXNG verwendet, einer selbst gehosteten, hackbaren, datenschutzorientierten Meta-Suchmaschine.
Unsere SearXNG-Implementierung leitet alle Suchanfragen über das Tor-Netzwerk, während die Schaltkreise alle zehn Sekunden mit der Tor-Konfigurationsdirektive MaxCircuitDirtiness erneuert werden. Wir haben außerdem alle clientseitigen Timeout-Funktionen von SearXNG deaktiviert. Diese Einstellungen ermöglichen die Umgehung von Suchmaschineneinschränkungen, die häufig bei vielen wiederholten Suchanfragen auftreten.
Die DorXNG-Client-Anwendung ist in Python3 geschrieben und kommuniziert mit der SearXNG-API, um Suchanfragen gleichzeitig auszuführen. Sie kann sogar Anfragen über mehrere SearXNG-Instanzen hinweg stellen. Die resultierenden Suchergebnisse werden in einer SQLite3-Datenbank gespeichert.

Wir haben jede unterstützte vorgelagerte Suchmaschine aktiviert, die fortgeschrittene Suchoperator-Abfragen erlaubt:
GoogleDuckDuckGoQwantBingBraveStartpageYahooWeitere Informationen darüber, welche Suchmaschinen SearXNG unterstützt, finden Sie unter: Configured Engines
Shout Out an die Entwickler von Tor und SearXNG, die dies ermöglicht haben. Spenden Sie an beide Projekte!
Shout Out an den Entwickler von pagodo für die Inspiration und das tolle ghdb_scraper.py-Skript!
Nicht zuletzt ein Shout Out an j0hnny. Den OG Dork. 🧠🏴☠
Installiere DorXNG
git clone https://github.com/researchanddestroy/dorxng
cd dorxng
pip install -r requirements.txt
./DorXNG.py -h
Lade unseren Benutzerdefinierten SearXNG-Docker-Container herunter und führe ihn aus (mindestens einen). Es können mehrere SearXNG-Instanzen verwendet werden. Verwenden Sie die Option --serverlist mit DorXNG. Siehe: server.lst
docker run researchanddestroy/searxng:latest
Wenn Sie den Container selbst bauen möchten:
git clone https://github.com/researchanddestroy/searxng # Die URL muss vollständig in Kleinbuchstaben sein, damit der Build-Prozess abgeschlossen wird
cd searxng
DOCKER_BUILDKIT=1 make docker.build
docker images
docker run <image-id>
Standardmäßig hat DorXNG eine fest codierte server-Variable in parse_args.py, die auf die IP-Adresse gesetzt ist, die Docker dem ersten Container auf Ihrem Rechner zuweist: 172.17.0.2. Diese kann geändert oder mit --server oder --serverlist überschrieben werden.
Starte die Ausgabe von Suchanfragen
./DorXNG.py -q 'Suchanfrage'
Die DorXNG-Datenbank abfragen
./DorXNG.py -D 'regex Suchstring'
-h, --help show this help message and exit
-s SERVER, --server SERVER
DorXNG Server Instance - Example: 'https://172.17.0.2/search'
-S SERVERLIST, --serverlist SERVERLIST
Issue Search Queries Across a List of Servers - Format: Newline Delimited
-q QUERY, --query QUERY
Issue a Search Query - Examples: 'search query' | '!tch search query' | 'site:example.com intext:example'
-Q QUERYLIST, --querylist QUERYLIST
Iterate Through a Search Query List - Format: Newline Delimited
-n NUMBER, --number NUMBER
Define the Number of Page Result Iterations
-c CONCURRENT, --concurrent CONCURRENT
Define the Number of Concurrent Page Requests
-l LIMITDATABASE, --limitdatabase LIMITDATABASE
Set Maximum Database Size Limit - Starts New Database After Exceeded - Example: --limitdatabase 10 (10k Database Entries) - Suggested Maximum Database Size is 50k
when doing Deep Recursion
-L LOOP, --loop LOOP Define the Number of Main Function Loop Iterations - Infinite Loop with 0
-d DATABASE, --database DATABASE
Specify SQL Database File - Default: 'dorxng.db'
-D DATABASEQUERY, --databasequery DATABASEQUERY
Issue Database Query - Format: Regex
-m MERGEDATABASE, --mergedatabase MERGEDATABASE
Merge SQL Database File - Example: --mergedatabase database.db
-t TIMEOUT, --timeout TIMEOUT
Specify Timeout Interval Between Requests - Default: 4 Seconds - Disable with 0
-r NONEWRESULTS, --nonewresults NONEWRESULTS
Specify Number of Iterations with No New Results - Default: 4 (3 Attempts) - Disable with 0
-v, --verbose Enable Verbose Output
-vv, --veryverbose Enable Very Verbose Output - Displays Raw JSON Output
Manchmal trifft man auf einen Tor-Ausgangsknoten, der bereits von vorgelagerten Suchanbietern blockiert wird, sodass Sie nur eine minimale Anzahl von Suchergebnissen erhalten. Keine Sorge ... Senden Sie einfach weiterhin Anfragen. 😉
Behalten Sie Ihre DorXNG-SQL-Datenbankdatei und führen Sie Ihren Befehl erneut aus, oder verwenden Sie den Schalter --loop, um die Hauptfunktion wiederholt zu durchlaufen. 🔁
Meistens gilt: Je mehr Durchläufe Sie über eine Suchanfrage machen, desto mehr Ergebnisse werden Sie finden. 🍻
Beachten Sie auch, dass wir einen Kompromiss zwischen Geschwindigkeit und einer höheren Datenausgabe eingegangen sind. Dies ist schließlich ein OSINT-Projekt. 🔎🌎
Jede von Ihnen gestellte Suchanfrage wird an 7 vorgelagerte Suchanbieter gesendet ... Besonders bei --concurrent-Abfragen werden viele vorgelagerte Anfragen generiert ... Haben Sie also Geduld.
Beachten Sie, dass DorXNG weiterhin neue Suchergebnisse an Ihre Datenbankdatei anhängt. Verwenden Sie den Schalter --database, um einen Datenbankdateinamen anzugeben. Der Standarddateiname ist dorxng.db. Für die meisten ist das wahrscheinlich egal, aber wenn Sie Ihre OSINT-Untersuchungen getrennt halten möchten, steht es Ihnen zur Verfügung.
Vier gleichzeitige Suchanfragen scheinen der optimale Wert zu sein. Sie können mehr ausgeben, aber je mehr Anfragen Sie gleichzeitig stellen, desto länger dauert es, Ergebnisse zu erhalten. Es erhöht auch die Wahrscheinlichkeit, dass Sie HTTP/429 Too Many Requests-Antworten von vorgelagerten Suchanbietern auf diesem bestimmten Tor-Schaltkreis erhalten.
Wenn Sie mehrere SearXNG-Docker-Container zu schnell starten, können Tor-Verbindungen möglicherweise nicht aufgebaut werden. Während der Initialisierung eines Containers sieht eine gültige Antwort von der Tor-Konnektivitätsprüfungsfunktion wie folgt aus:
Checking Tor Connectivity..
{"IsTor":true,"IP":"<tor-exit-node>"}
Wenn Sie etwas anderes sehen oder wenn Sie beginnen, HTTP/500-Antwortcodes vom SearXNG-Überwachungsskript (STDOUT im Container) zu sehen, töten Sie den Docker-Container und starten Sie einen neuen.
HTTP/504 Gateway Time-out-Antwortcodes innerhalb von DorXNG sind manchmal zu erwarten. Dies bedeutet, dass die SearXNG-Instanz innerhalb einer Minute keine gültige Antwort erhalten hat. Dieser bestimmte Tor-Schaltkreis ist wahrscheinlich zu langsam. Machen Sie einfach weiter!