Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
darc — Crawler per il dark web che utilizza worker basati su requests e Selenium per recuperare le pagine, catturare header e cookie, estrarre link e salvare screenshot renderizzati per la raccolta OSINT. | Kitploit
Strumenti/GitHubGitHub/jarryshaw/darc
OSINT (Open Source Intelligence)RicognizioneScripting e AutomazioneRaccolta InformazioniSicurezza WebPrivacyCrawler
GitHubjarryshaw/darc

darc

Crawler per il dark web che utilizza worker basati su requests e Selenium per recuperare le pagine, catturare header e cookie, estrarre link e salvare screenshot renderizzati per la raccolta OSINT.

Vedi Repository
239392918 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

darc - Progetto Crawler per il Darkweb

Per qualsiasi informazione tecnica e/o di manutenzione, si prega di fare riferimento a |docs|_.

.. |docs| replace:: Documentazione Ufficiale .. _docs: https://darc.jarryshaw.me

NB: A partire dalla versione 1.0.0, le nuove funzionalità del progetto non saranno sviluppate in questo repository pubblico. Solo correzioni di bug e patch di sicurezza saranno applicate agli aggiornamenti e alle nuove release.

darc è progettato come un coltellino svizzero per il crawling del darkweb. Integra requests per raccogliere informazioni sulle richieste e risposte HTTP, come cookie, campi di intestazione, ecc. Include inoltre selenium per fornire una pagina web completamente renderizzata e uno screenshot di tale visualizzazione.

.. image:: https://darc.jarryshaw.me/en/latest/_images/darc.jpeg

Il processo generale di darc può essere descritto come segue:

Esistono due tipi di worker:

  • crawler -- esegue darc.crawl.crawler per fornire una vista aggiornata di un link e testarne la connettività

  • loader -- esegue darc.crawl.loader per fornire una vista approfondita di un link e fornire maggiori informazioni visive

Il processo generale può essere descritto come segue per i worker di tipo crawler:

  1. darc.process.process_crawler: ottiene gli URL dal database dei link di requests (cfr. darc.db.load_requests), e alimenta tali URL a darc.crawl.crawler.

    NOTA:

    Se darc.const.FLAG_MP è True, la funzione sarà chiamata con supporto multiprocessing; se darc.const.FLAG_TH è True, la funzione sarà chiamata con supporto multithreading; se nessuno dei due, la funzione sarà chiamata in single-threading.

  2. darc.crawl.crawler: analizza l'URL usando darc.link.parse_link, e verifica se è necessario eseguire il crawl dell'URL (cfr. darc.const.PROXY_WHITE_LIST, darc.const.PROXY_BLACK_LIST, darc.const.LINK_WHITE_LIST e darc.const.LINK_BLACK_LIST); se vero, allora esegue il crawl dell'URL con requests.

    Se l'URL proviene da un host completamente nuovo, darc proverà prima a recuperare e salvare robots.txt e le sitemap dell'host (cfr. darc.proxy.null.save_robots e darc.proxy.null.save_sitemap), ed estrarre poi salvare i link dalle sitemap (cfr. darc.proxy.null.read_sitemap) nel database dei link per il crawling futuro (cfr. darc.db.save_requests). Inoltre, se l'API di invio è fornita, darc.submit.submit_new_host sarà chiamata e invierà i documenti appena recuperati.

    Se robots.txt è presente, e darc.const.FORCE è False, darc verificherà se è consentito eseguire il crawl dell'URL.

    NOTA:

    Il percorso radice (ad es. / in https://www.example.com/) sarà sempre sottoposto a crawl ignorando robots.txt.

    A questo punto, darc chiamerà la funzione hook personalizzata da darc.sites per eseguire il crawl e ottenere l'oggetto risposta finale. darc salverà i cookie di sessione e le informazioni di intestazione, usando darc.save.save_headers.

    NOTA:

    Se viene sollevata requests.exceptions.InvalidSchema, il link sarà salvato da darc.proxy.null.save_invalid. L'ulteriore elaborazione viene interrotta.

    Se il tipo di contenuto del documento di risposta non è ignorato (cfr. darc.const.MIME_WHITE_LIST e darc.const.MIME_BLACK_LIST), darc.submit.submit_requests sarà chiamata e invierà il documento appena recuperato.

    Se il documento di risposta è HTML (text/html e application/xhtml+xml), darc.parse.extract_links sarà chiamata per estrarre tutti i possibili link dal documento HTML e salvare tali link nel database (cfr. darc.db.save_requests).

    E se il codice di stato della risposta è compreso tra 400 e 600, l'URL sarà salvato nuovamente nel database dei link (cfr. darc.db.save_requests). Se NO, l'URL sarà salvato nel database dei link di selenium per procedere con i passaggi successivi (cfr. darc.db.save_selenium).

Il processo generale può essere descritto come segue per i worker di tipo loader:

  1. darc.process.process_loader: nel frattempo, darc otterrà gli URL dal database dei link di selenium (cfr. darc.db.load_selenium), e passerà tali URL a darc.crawl.loader.

    NOTA:

    Se darc.const.FLAG_MP è True, la funzione verrà chiamata con supporto multiprocessing; se darc.const.FLAG_TH è True, la funzione verrà chiamata con supporto multithreading; se nessuno dei due, la funzione verrà chiamata in single-threading.

  2. darc.crawl.loader: analizza l'URL usando darc.link.parse_link e avvia il caricamento dell'URL usando selenium con Google Chrome.

    A questo punto, darc chiamerà la funzione hook personalizzata da darc.sites per caricare e restituire l'oggetto originale selenium.webdriver.chrome.webdriver.WebDriver.

    Se ha successo, il documento HTML sorgente renderizzato verrà salvato, e verrà acquisito e salvato uno screenshot a pagina intera.

    Se viene fornita l'API di submission, verrà chiamata darc.submit.submit_selenium che invierà il documento appena caricato.

    Successivamente, verrà chiamata darc.parse.extract_links per estrarre tutti i possibili link dal documento HTML e salvare tali link nel database requests (cfr. darc.db.save_requests).


Installazione

NOTA:

darc supporta tutte le versioni di Python superiori a e includenti la 3.6. Attualmente, supporta ed è testato solo su Linux (Ubuntu 18.04) e macOS (Catalina).

Quando installato su versioni di Python inferiori alla 3.8, darc utilizzerà |walrus|_ per compilarsi al fine di garantire la compatibilità backport.

.. |walrus| replace:: walrus .. _walrus: https://github.com/pybpc/walrus

.. code-block:: shell

pip install python-darc

Assicurati di avere Google Chrome e la versione corrispondente di Chrome Driver installati sul tuo sistema.

A partire dalla versione 0.3.0, abbiamo introdotto Redis_ come backend del database della coda dei task.

.. _Redis: https://redis.io

Dalla versione 0.6.0, abbiamo introdotto l'archiviazione su database relazionale (ad es. MySQL, SQLite, PostgreSQL, ecc.) per il backend del database della coda dei task, oltre al database Redis, poiché può essere troppo dispendioso in termini di memoria quando la coda dei task diventa molto grande.

.. _MySQL: https://mysql.com/ .. _SQLite: https://www.sqlite.org/ .. _PostgreSQL: https://www.postgresql.org/

Assicurati di avere uno dei database backend installato, configurato e in esecuzione quando utilizzi il progetto darc.

Tuttavia, il progetto darc è distribuito con supporto a Docker e Compose. Consulta la root del progetto per i file pertinenti e maggiori informazioni.

Oppure, puoi fare riferimento e/o installare dal repository Docker Hub_:

.. code-block:: shell

docker pull jsnbzh/darc[:TAGNAME]

.. _Docker Hub: https://hub.docker.com/r/jsnbzh/darc

oppure dal GitHub Container Registry, con immagini più aggiornate e complete:

.. code-block:: shell

docker pull ghcr.io/jarryshaw/darc[:TAGNAME]

oppure l'immagine di debug

docker pull ghcr.io/jarryshaw/darc-debug[:TAGNAME]


Utilizzo

Il progetto darc fornisce una semplice CLI::

usage: darc [-h] [-v] -t {crawler,loader} [-f FILE] ...

the darkweb crawling swiss army knife

positional arguments: link links to craw

Scarica lo strumento