Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
darc — Crawler Darkweb qui utilise des workers requests et Selenium pour récupérer des pages, capturer les en-têtes et les cookies, extraire les liens et enregistrer des captures d'écran rendues pour la collecte OSINT. | Kitploit
Outils/GitHubGitHub/jarryshaw/darc
OSINT (Renseignement de Sources Ouvertes)ReconnaissanceScripting et AutomatisationCollecte d'InformationsSécurité WebProtection de la Vie PrivéeCrawler
GitHubjarryshaw/darc

darc

Crawler Darkweb qui utilise des workers requests et Selenium pour récupérer des pages, capturer les en-têtes et les cookies, extraire les liens et enregistrer des captures d'écran rendues pour la collecte OSINT.

Voir le dépôt
2393926il y a 18 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

darc - Projet de crawler pour le darkweb

Pour toute information technique et/ou de maintenance, veuillez vous référer à |docs|_.

.. |docs| replace:: Documentation officielle .. _docs: https://darc.jarryshaw.me

NB : À partir de la version 1.0.0, les nouvelles fonctionnalités du projet ne seront pas développées dans ce dépôt public. Seuls les correctifs de bogues et les correctifs de sécurité seront appliqués aux mises à jour et aux nouvelles versions.

darc est conçu comme un couteau suisse pour le crawling du darkweb. Il intègre requests pour collecter les informations de requêtes et de réponses HTTP, telles que les cookies, les champs d'en-tête, etc. Il regroupe également selenium pour fournir une page web entièrement rendue et une capture d'écran de cette vue.

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

Le processus général de darc peut être décrit comme suit :

Il existe deux types de workers :

  • crawler -- exécute darc.crawl.crawler pour fournir une vue fraîche d'un lien et tester sa connectabilité

  • loader -- exécute darc.crawl.loader pour fournir une vue approfondie d'un lien et fournir davantage d'informations visuelles

Le processus général peut être décrit comme suit pour les workers de type crawler :

  1. darc.process.process_crawler : obtient les URL depuis la base de données de liens requests (cf. darc.db.load_requests), et transmet ces URL à darc.crawl.crawler.

    REMARQUE :

    Si darc.const.FLAG_MP vaut True, la fonction sera appelée avec le support du multiprocessing ; si darc.const.FLAG_TH vaut True, la fonction sera appelée avec le support du multithreading ; sinon, la fonction sera appelée en mono-threading.

  2. darc.crawl.crawler : analyse l'URL à l'aide de darc.link.parse_link, et vérifie s'il faut crawler l'URL (cf. darc.const.PROXY_WHITE_LIST, darc.const.PROXY_BLACK_LIST, darc.const.LINK_WHITE_LIST et darc.const.LINK_BLACK_LIST) ; si oui, alors crawle l'URL avec requests.

    Si l'URL provient d'un hôte entièrement nouveau, darc essaiera d'abord de récupérer et d'enregistrer robots.txt et les sitemaps de l'hôte (cf. darc.proxy.null.save_robots et darc.proxy.null.save_sitemap), puis d'extraire et d'enregistrer les liens des sitemaps (cf. darc.proxy.null.read_sitemap) dans la base de données de liens pour un crawling ultérieur (cf. darc.db.save_requests). De plus, si l'API de soumission est fournie, darc.submit.submit_new_host sera appelée et soumettra les documents qui viennent d'être récupérés.

    Si robots.txt est présent, et que darc.const.FORCE vaut False, darc vérifiera s'il est autorisé de crawler l'URL.

    REMARQUE :

    Le chemin racine (par exemple / dans https://www.example.com/) sera toujours crawlé en ignorant robots.txt.

    À ce stade, darc appellera la fonction de hook personnalisée depuis darc.sites pour crawler et obtenir l'objet de réponse final. darc enregistrera les cookies de session et les informations d'en-tête, à l'aide de darc.save.save_headers.

    REMARQUE :

    Si requests.exceptions.InvalidSchema est levée, le lien sera enregistré par darc.proxy.null.save_invalid. Tout traitement ultérieur est abandonné.

    Si le type de contenu du document de réponse n'est pas ignoré (cf. darc.const.MIME_WHITE_LIST et darc.const.MIME_BLACK_LIST), darc.submit.submit_requests sera appelée et soumettra le document qui vient d'être récupéré.

    Si le document de réponse est du HTML (text/html et application/xhtml+xml), darc.parse.extract_links sera alors appelée pour extraire tous les liens possibles du document HTML et enregistrer ces liens dans la base de données (cf. darc.db.save_requests).

    Et si le code de statut de la réponse est compris entre 400 et 600, l'URL sera réenregistrée dans la base de données de liens (cf. darc.db.save_requests). Si NON, l'URL sera enregistrée dans la base de données de liens selenium pour passer aux étapes suivantes (cf. darc.db.save_selenium).

Le processus général peut être décrit comme suit pour les workers de type loader :

  1. darc.process.process_loader : pendant ce temps, darc va obtenir des URL depuis la base de données de liens selenium (cf. darc.db.load_selenium), et transmettre ces URL à darc.crawl.loader.

    REMARQUE :

    Si darc.const.FLAG_MP vaut True, la fonction sera appelée avec le support du multiprocessing ; si darc.const.FLAG_TH vaut True, la fonction sera appelée avec le support du multithreading ; sinon, la fonction sera appelée en mono-thread.

  2. darc.crawl.loader : analyse l'URL à l'aide de darc.link.parse_link et commence le chargement de l'URL avec selenium et Google Chrome.

    À ce stade, darc appellera la fonction hook personnalisée de darc.sites pour charger et renvoyer l'objet selenium.webdriver.chrome.webdriver.WebDriver d'origine.

    En cas de succès, le document HTML source rendu sera sauvegardé, et une capture d'écran pleine page sera prise et sauvegardée.

    Si l'API de soumission est fournie, darc.submit.submit_selenium sera appelée et soumettra le document qui vient d'être chargé.

    Ensuite, darc.parse.extract_links sera appelée pour extraire tous les liens possibles du document HTML et sauvegarder ces liens dans la base de données requests (cf. darc.db.save_requests).


Installation

REMARQUE :

darc prend en charge toutes les versions de Python supérieures à et incluant 3.6. Actuellement, il ne prend en charge et n'est testé que sur Linux (Ubuntu 18.04) et macOS (Catalina).

Lors de l'installation avec des versions de Python inférieures à 3.8, darc utilisera |walrus|_ pour se compiler afin d'assurer la compatibilité rétroportée.

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

.. code-block:: shell

pip install python-darc

Veuillez vous assurer que Google Chrome et la version correspondante de Chrome Driver sont installés sur votre système.

À partir de la version 0.3.0, nous avons introduit Redis_ comme backend de base de données pour la file de tâches.

.. _Redis: https://redis.io

Depuis la version 0.6.0, nous avons introduit le stockage en base de données relationnelle (par ex. MySQL, SQLite, PostgreSQL, etc.) comme backend de base de données pour la file de tâches, en plus de la base de données Redis, car cela peut être trop coûteux en mémoire lorsque la file de tâches devient très volumineuse.

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

Veuillez vous assurer que l'une des bases de données backend est installée, configurée et en cours d'exécution lors de l'utilisation du projet darc.

Cependant, le projet darc est livré avec le support de Docker et Compose. Veuillez consulter la racine du projet pour les fichiers pertinents et plus d'informations.

Ou, vous pouvez vous référer à et/ou installer depuis le dépôt Docker Hub_ :

.. code-block:: shell

docker pull jsnbzh/darc[:TAGNAME]

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

ou depuis le GitHub Container Registry, avec des images plus à jour et complètes :

.. code-block:: shell

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

or the debug image

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


Usage

Le projet darc fournit une interface CLI simple ::

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

Télécharger l’outil