
Next Generation DorX. Costruito da Dorks, per Dorks. 🤓
DorXNG è una soluzione moderna per raccogliere dati OSINT utilizzando operatori di ricerca avanzati attraverso molteplici provider di ricerca upstream. Nel backend sfrutta un'immagine containerizzata appositamente costruita di SearXNG, un meta-motore di ricerca self-hosted, hackable e incentrato sulla privacy.
La nostra implementazione di SearXNG instrada tutte le query di ricerca attraverso la rete Tor, rigenerando i circuiti ogni dieci secondi con la direttiva di configurazione MaxCircuitDirtiness di Tor. Abbiamo anche disabilitato tutte le funzionalità di timeout lato client di SearXNG. Queste impostazioni consentono di eludere le restrizioni dei motori di ricerca comunemente incontrate quando si emettono molte query di ricerca ripetute.
L'applicazione client DorXNG è scritta in Python3 e interagisce con l'API di SearXNG per emettere query di ricerca in modo concorrente. Può persino inviare richieste attraverso più istanze SearXNG. I risultati di ricerca ottenuti vengono memorizzati in un database SQLite3.

Abbiamo abilitato ogni motore di ricerca upstream supportato che consente query con operatori di ricerca avanzati:
GoogleDuckDuckGoQwantBingBraveStartpageYahooPer maggiori informazioni sui motori di ricerca supportati da SearXNG, consultare: Configured Engines
Un ringraziamento agli sviluppatori di Tor e SearXNG per aver reso tutto ciò possibile. Andate a donare a entrambi i progetti!
Un ringraziamento allo sviluppatore di pagodo per l'ispirazione e quel fantastico script ghdb_scraper.py!
Ultimo ma non meno importante, un ringraziamento a j0hnny. L'OG Dork. 🧠🏴☠
Installa DorXNG
git clone https://github.com/researchanddestroy/dorxng
cd dorxng
pip install -r requirements.txt
./DorXNG.py -h
Scarica ed esegui il nostro container Docker SearXNG personalizzato (almeno uno). È possibile utilizzare più istanze SearXNG. Usa l'opzione --serverlist con DorXNG. Vedi: server.lst
docker run researchanddestroy/searxng:latest
Se desideri costruire il container da solo:
git clone https://github.com/researchanddestroy/searxng # L'URL deve essere tutto minuscolo per completare la build
cd searxng
DOCKER_BUILDKIT=1 make docker.build
docker images
docker run <image-id>
Per impostazione predefinita, DorXNG ha una variabile server hardcoded in parse_args.py impostata sull'indirizzo IP che Docker assegnerà al primo container che esegui sulla tua macchina 172.17.0.2. Può essere modificata o sovrascritta con --server o --serverlist.
Inizia a emettere query di ricerca
./DorXNG.py -q 'query di ricerca'
Interroga il database DorXNG
./DorXNG.py -D 'stringa regex di ricerca'
-h, --help mostra questo messaggio di aiuto ed esci
-s SERVER, --server SERVER
Istanza del server DorXNG - Esempio: 'https://172.17.0.2/search'
-S SERVERLIST, --serverlist SERVERLIST
Emetti query di ricerca su un elenco di server - Formato: delimitato da newline
-q QUERY, --query QUERY
Emetti una query di ricerca - Esempi: 'query di ricerca' | '!tch query di ricerca' | 'site:example.com intext:example'
-Q QUERYLIST, --querylist QUERYLIST
Iterazione attraverso un elenco di query di ricerca - Formato: delimitato da newline
-n NUMBER, --number NUMBER
Definisci il numero di iterazioni dei risultati della pagina
-c CONCURRENT, --concurrent CONCURRENT
Definisci il numero di richieste di pagina concorrenti
-l LIMITDATABASE, --limitdatabase LIMITDATABASE
Imposta il limite massimo di dimensione del database - Avvia un nuovo database dopo il superamento - Esempio: --limitdatabase 10 (10.000 voci nel database) - La dimensione massima consigliata del database è 50k
quando si esegue una ricorsione profonda
-L LOOP, --loop LOOP Definisci il numero di iterazioni del ciclo della funzione principale - Ciclo infinito con 0
-d DATABASE, --database DATABASE
Specifica il file del database SQL - Predefinito: 'dorxng.db'
-D DATABASEQUERY, --databasequery DATABASEQUERY
Esegui una query sul database - Formato: regex
-m MERGEDATABASE, --mergedatabase MERGEDATABASE
Unisci file di database SQL - Esempio: --mergedatabase database.db
-t TIMEOUT, --timeout TIMEOUT
Specifica l'intervallo di timeout tra le richieste - Predefinito: 4 secondi - Disabilita con 0
-r NONEWRESULTS, --nonewresults NONEWRESULTS
Specifica il numero di iterazioni senza nuovi risultati - Predefinito: 4 (3 tentativi) - Disabilita con 0
-v, --verbose Abilita output verboso
-vv, --veryverbose Abilita output molto verboso - Mostra output JSON grezzo
A volte capiterai su un nodo di uscita Tor già bloccato dai provider di ricerca upstream, ricevendo così un numero minimo di risultati di ricerca. Niente paura... Continua a lanciare query. 😉
Mantieni il tuo file di database SQL di DorXNG e riesegui il comando, oppure usa l'opzione --loop per iterare ripetutamente la funzione principale. 🔁
Molto spesso, più passaggi fai su una query di ricerca, più risultati troverai. 🍻
Tieni anche presente che abbiamo sacrificato la velocità per un maggiore volume di dati in uscita. Dopo tutto, questo è un progetto OSINT. 🔎🌎
Ogni query di ricerca che fai viene inviata a 7 provider di ricerca upstream... Soprattutto con query --concurrent, questo genera molte richieste upstream... Quindi abbi pazienza.
Tieni presente che DorXNG continuerà ad aggiungere nuovi risultati di ricerca al tuo file di database. Usa l'opzione --database per specificare un nome file del database; il nome predefinito è dorxng.db. Probabilmente per la maggior parte non ha importanza, ma se vuoi tenere separate le tue indagini OSINT, è lì per te.
Quattro richieste di ricerca concorrenti sembrano essere il punto ottimale. Puoi emetterne di più, ma più query emetti contemporaneamente, più tempo ci vorrà per ricevere i risultati. Aumenta anche la probabilità di ricevere risposte HTTP/429 Too Many Requests dai provider di ricerca upstream su quel circuito Tor specifico.
Se avvii più container Docker SearXNG troppo rapidamente, le connessioni Tor potrebbero non riuscire a stabilirsi. Durante l'inizializzazione di un container, una risposta valida dalla funzione di verifica della connettività Tor appare così:
Checking Tor Connectivity..
{"IsTor":true,"IP":"<tor-exit-node>"}
Se vedi qualcosa di diverso, o se inizi a vedere codici di risposta HTTP/500 dallo script di monitoraggio SearXNG (STDOUT nel container), kill il container Docker e avviane uno nuovo.
I codici di risposta HTTP/504 Gateway Time-out all'interno di DorXNG sono a volte previsti. Ciò significa che l'istanza SearXNG non ha ricevuto una risposta valida entro un minuto. Quel circuito Tor specifico è probabilmente troppo lento. Continua e basta!