Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
darc — Краулер для даркнета, использующий воркеры на основе requests и Selenium для загрузки страниц, захвата заголовков и cookie, извлечения ссылок и сохранения отрендеренных скриншотов для сбора данных OSINT. | Kitploit
Инструменты/GitHubGitHub/jarryshaw/darc
OSINT (Разведка открытых источников)РазведкаСкриптинг и автоматизацияСбор информацииВеб-безопасностьКонфиденциальностьКраулер
GitHubjarryshaw/darc

darc

Краулер для даркнета, использующий воркеры на основе requests и Selenium для загрузки страниц, захвата заголовков и cookie, извлечения ссылок и сохранения отрендеренных скриншотов для сбора данных OSINT.

Репозиторий
239392918 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

darc - Проект краулера даркнета

За любой технической и/или информацией по обслуживанию, пожалуйста, обращайтесь к |docs|_.

.. |docs| replace:: Официальная документация .. _docs: https://darc.jarryshaw.me

NB: Начиная с версии 1.0.0, новые функции проекта не будут разрабатываться в этом публичном репозитории. В обновления и новые релизы будут вноситься только исправления ошибок и патчи безопасности.

darc разработан как швейцарский армейский нож для краулинга даркнета. Он интегрирует requests для сбора информации о HTTP-запросах и ответах, такой как cookies, поля заголовков и т.д. Он также включает selenium для предоставления полностью отрендеренной веб-страницы и скриншота такого вида.

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

Общий процесс работы darc можно описать следующим образом:

Существует два типа воркеров:

  • crawler -- запускает darc.crawl.crawler для предоставления свежего представления ссылки и проверки её доступности

  • loader -- запускает darc.crawl.loader для предоставления углублённого представления ссылки и предоставления дополнительной визуальной информации

Общий процесс для воркеров типа crawler можно описать следующим образом:

  1. darc.process.process_crawler: получает URL-адреса из базы данных ссылок requests (см. darc.db.load_requests) и передаёт такие URL-адреса в darc.crawl.crawler.

    ПРИМЕЧАНИЕ:

    Если darc.const.FLAG_MP равен True, функция будет вызвана с поддержкой многопроцессности; если darc.const.FLAG_TH равен True, функция будет вызвана с поддержкой многопоточности; если ни то, ни другое, функция будет вызвана в однопоточном режиме.

  2. darc.crawl.crawler: разбирает URL с помощью darc.link.parse_link и проверяет, нужно ли краулить URL (см. darc.const.PROXY_WHITE_LIST, darc.const.PROXY_BLACK_LIST, darc.const.LINK_WHITE_LIST и darc.const.LINK_BLACK_LIST); если да, то краулит URL с помощью requests.

    Если URL принадлежит совершенно новому хосту, darc сначала попытается получить и сохранить robots.txt и карты сайта хоста (см. darc.proxy.null.save_robots и darc.proxy.null.save_sitemap), а затем извлечь и сохранить ссылки из карт сайта (см. darc.proxy.null.read_sitemap) в базу данных ссылок для последующего краулинга (см. darc.db.save_requests). Кроме того, если предоставлен API отправки, будет вызван darc.submit.submit_new_host и отправлены только что полученные документы.

    Если robots.txt присутствует и darc.const.FORCE равен False, darc проверит, разрешено ли краулить URL.

    ПРИМЕЧАНИЕ:

    Корневой путь (например, / в https://www.example.com/) всегда будет краулиться в обход robots.txt.

    На этом этапе darc вызовет настроенную функцию-хук из darc.sites для краулинга и получения итогового объекта ответа. darc сохранит cookies сессии и информацию заголовков, используя darc.save.save_headers.

    ПРИМЕЧАНИЕ:

    Если возникает requests.exceptions.InvalidSchema, ссылка будет сохранена с помощью darc.proxy.null.save_invalid. Дальнейшая обработка прекращается.

    Если тип содержимого документа ответа не игнорируется (см. darc.const.MIME_WHITE_LIST и darc.const.MIME_BLACK_LIST), будет вызван darc.submit.submit_requests и отправлен документ, только что полученный.

    Если документ ответа является HTML (text/html и application/xhtml+xml), будет вызван darc.parse.extract_links для извлечения всех возможных ссылок из HTML-документа и сохранения таких ссылок в базу данных (см. darc.db.save_requests).

    А если код состояния ответа находится между 400 и 600, URL будет сохранён обратно в базу данных ссылок (см. darc.db.save_requests). Если НЕТ, URL будет сохранён в базу данных ссылок selenium для выполнения следующих шагов (см. darc.db.save_selenium).

Общий процесс для воркеров типа loader можно описать следующим образом:

  1. darc.process.process_loader: тем временем darc будет получать URL из базы данных ссылок selenium (см. darc.db.load_selenium), и передавать такие URL в darc.crawl.loader.

    ПРИМЕЧАНИЕ:

    Если darc.const.FLAG_MP равен True, функция будет вызываться с поддержкой multiprocessing; если darc.const.FLAG_TH равен True, функция будет вызываться с поддержкой multithreading; если ни то, ни другое, функция будет вызываться в режиме однопоточности.

  2. darc.crawl.loader: разбирает URL с помощью darc.link.parse_link и начинает загрузку URL с помощью selenium с Google Chrome.

    На этом этапе darc вызовет настроенную hook-функцию из darc.sites, чтобы загрузить и вернуть исходный объект selenium.webdriver.chrome.webdriver.WebDriver.

    В случае успеха отрендеренный исходный HTML-документ будет сохранён, а полноэкранный скриншот будет сделан и сохранён.

    Если предоставлен API отправки, будет вызван darc.submit.submit_selenium, который отправит только что загруженный документ.

    Позже будет вызван darc.parse.extract_links, чтобы извлечь все возможные ссылки из HTML-документа и сохранить такие ссылки в базу данных requests (см. darc.db.save_requests).


Установка

ПРИМЕЧАНИЕ:

darc поддерживает все версии Python выше и включая 3.6. В настоящее время он поддерживается и тестируется только на Linux (Ubuntu 18.04) и macOS (Catalina).

При установке на версиях Python ниже 3.8 darc будет использовать |walrus|_ для собственной компиляции в целях обратной совместимости.

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

.. code-block:: shell

pip install python-darc

Пожалуйста, убедитесь, что в вашей системе установлены Google Chrome и соответствующая версия Chrome Driver.

Начиная с версии 0.3.0, мы внедрили Redis_ в качестве бэкенда базы данных очереди задач.

.. _Redis: https://redis.io

Начиная с версии 0.6.0, мы внедрили реляционное хранилище баз данных (например, MySQL, SQLite, PostgreSQL_ и т. д.) в качестве бэкенда базы данных очереди задач, помимо базы данных Redis_, поскольку это может быть слишком затратно по памяти, когда очередь задач становится очень большой.

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

Пожалуйста, убедитесь, что одна из бэкенд-баз данных установлена, настроена и запущена при использовании проекта darc.

Однако проект darc поставляется с поддержкой Docker и Compose. Пожалуйста, обратитесь к корню проекта для получения соответствующих файлов и дополнительной информации.

Или вы можете обратиться к репозиторию Docker Hub_ и/или установить из него:

.. code-block:: shell

docker pull jsnbzh/darc[:TAGNAME]

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

или из GitHub Container Registry, с более актуальными и полными образами:

.. code-block:: shell

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

или отладочный образ

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


Использование

Проект darc предоставляет простой CLI::

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

the darkweb crawling swiss army knife

positional arguments: link links to craw

optional arguments: -h, --help show this help message and exit -v, --version show program's version number and exit -t {crawler,loader}, --type {crawler,loader} type of worker process -f FILE, --file FILE read links from file

Его также можно вызвать через точку входа модуля::

Скачать инструмент