Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
darc — requests와 Selenium 워커를 사용해 페이지를 가져오고, 헤더와 쿠키를 캡처하며, 링크를 추출하고, OSINT 수집을 위한 렌더링된 스크린샷을 저장하는 다크웹 크롤러입니다. | Kitploit
도구/GitHubGitHub/jarryshaw/darc
OSINT (Open Source Intelligence)ReconnaissanceScripting & AutomationInformation GatheringWeb SecurityPrivacyCrawler
GitHubjarryshaw/darc

darc

requests와 Selenium 워커를 사용해 페이지를 가져오고, 헤더와 쿠키를 캡처하며, 링크를 추출하고, OSINT 수집을 위한 렌더링된 스크린샷을 저장하는 다크웹 크롤러입니다.

저장소 보기
239392918일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

darc - 다크웹 크롤러 프로젝트

기술 및/또는 유지보수 정보는 |docs|_ 를 참고해 주시기 바랍니다.

.. |docs| replace:: 공식 문서 .. _docs: https://darc.jarryshaw.me

참고: 버전 1.0.0부터 프로젝트의 새로운 기능은 이 공개 저장소에서 개발되지 않습니다. 버그 수정과 보안 패치만 업데이트 및 새 릴리스에 적용됩니다.

darc는 다크웹 크롤링을 위한 스위스 군용 칼로 설계되었습니다. requests를 통합하여 쿠키, 헤더 필드 등과 같은 HTTP 요청 및 응답 정보를 수집합니다. 또한 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: requests 링크 데이터베이스(참조: darc.db.load_requests)에서 URL을 가져와 해당 URL을 darc.crawl.crawler에 전달합니다.

    참고:

    darc.const.FLAG_MP가 True이면, 함수는 멀티프로세싱 지원으로 호출됩니다; darc.const.FLAG_TH가 True이면, 함수는 멀티스레딩 지원으로 호출됩니다; 둘 다 아니면, 함수는 단일 스레딩으로 호출됩니다.

  2. darc.crawl.crawler: darc.link.parse_link를 사용하여 URL을 파싱하고, 해당 URL을 크롤링해야 하는지 확인합니다 (참조: darc.const.PROXY_WHITE_LIST, darc.const.PROXY_BLACK_LIST, darc.const.LINK_WHITE_LIST 및 darc.const.LINK_BLACK_LIST); 필요하다면 requests로 URL을 크롤링합니다.

    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는 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는 selenium 링크 데이터베이스(참조: darc.db.load_selenium)에서 URL을 가져와, 해당 URL을 darc.crawl.loader에 전달합니다.

    참고:

    darc.const.FLAG_MP가 True이면, 해당 함수는 멀티프로세싱 지원과 함께 호출됩니다; darc.const.FLAG_TH가 True이면, 해당 함수는 멀티스레딩 지원과 함께 호출됩니다; 둘 다 아니면, 해당 함수는 단일 스레딩으로 호출됩니다.

  2. darc.crawl.loader: darc.link.parse_link를 사용하여 URL을 파싱하고, Google Chrome과 함께 selenium을 사용하여 URL 로딩을 시작합니다.

    이 시점에서, darc는 darc.sites의 사용자 정의 훅 함수를 호출하여 원본 selenium.webdriver.chrome.webdriver.WebDriver 객체를 로드하고 반환합니다.

    성공하면, 렌더링된 소스 HTML 문서가 저장되고, 전체 페이지 스크린샷이 촬영되어 저장됩니다.

    제출 API가 제공되면, darc.submit.submit_selenium이 호출되어 방금 로드된 문서를 제출합니다.

    이후, darc.parse.extract_links가 호출되어 HTML 문서에서 가능한 모든 링크를 추출하고, 해당 링크를 requests 데이터베이스에 저장합니다(참조: darc.db.save_requests).


설치

참고:

darc는 3.6을 포함한 모든 Python 버전 이상을 지원합니다. 현재는 Linux(Ubuntu 18.04)와 macOS(Catalina)에서만 지원 및 테스트됩니다.

3.8 미만의 Python 버전에서 설치할 때, 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부터, 작업 큐가 매우 커질 때 메모리 비용이 너무 많이 들 수 있기 때문에, Redis_ 데이터베이스 외에도 관계형 데이터베이스 저장소(예: MySQL, SQLite, PostgreSQL_ 등)를 작업 큐 데이터베이스 백엔드로 도입했습니다.

.. _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]

or the debug image

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

모듈 진입점을 통해서도 호출할 수 있습니다::

python -m darc ...

참고:

링크 파일에는 #으로 시작하는 주석 줄이 포함될 수 있습니다. 빈 줄과 주석 줄은 로딩 시 무시됩니다.

도구 다운로드