Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
OneForAll — 멀티 소스 서브도메인 열거 도구로, 50개 이상의 수집 모듈, DNS 무차별 대입, 패시브 DNS 분석, 인증서 투명성, 검색 엔진 스크래핑, 서브도메인 인수 탐지 기능을 제공하여 정찰 작업을 수행합니다. | Kitploit
도구/GitHubGitHub/shmilylty/oneforall
OSINT (Open Source Intelligence)ReconnaissanceInformation GatheringPenetration TestingSubdomain EnumerationDNS Analysis
GitHubshmilylty/oneforall

OneForAll

멀티 소스 서브도메인 열거 도구로, 50개 이상의 수집 모듈, DNS 무차별 대입, 패시브 DNS 분석, 인증서 투명성, 검색 엔진 스크래핑, 서브도메인 인수 탐지 기능을 제공하여 정찰 작업을 수행합니다.

저장소 보기
10.0k1.4k3개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

OneForAll

Build Status codecov Maintainability License python python

👊OneForAll은 강력한 서브도메인 수집 도구입니다 📝English Document

Example

🚀시작 가이드

📢 이 문서를 꼭 읽어 주시기 바랍니다. OneForAll을 빠르게 익히는 데 도움이 됩니다!

🐍설치 요구 사항

OneForAll은 Python 3.6.0을 기반으로 개발 및 테스트되었으며, Python 3.6.0 이상의 버전이 필요합니다. Python 환경 설치는 Python 3 설치 가이드를 참고하세요. 다음 명령어로 Python 및 pip3 버전을 확인합니다.

root@kitploit:~
python -V
pip3 -V

다음과 유사한 출력이 나타나면 Python 환경에 문제가 없는 것입니다.

root@kitploit:~
Python 3.6.0
pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python36\site-packages\pip (python 3.6)
✔설치 단계 (git 버전)
  1. 다운로드

해당 프로젝트는 개발 중이며 지속적으로 업데이트됩니다. 다운로드 시 git clone**을 사용하여 최신 코드 저장소를 클론하고, 이후 업데이트를 편리하게 진행하세요. Releases에서 다운로드하는 것은 권장하지 않습니다. Releases의 버전 업데이트가 느리고 업데이트가 불편하기 때문입니다. 본 프로젝트는 이미 Gitee에 미러링되어 있습니다. 중국 사용자는 Gitee를 통해 클론하는 것이 더 빠릅니다.

root@kitploit:~
git clone https://gitee.com/shmilylty/OneForAll.git

또는:

root@kitploit:~
git clone https://github.com/shmilylty/OneForAll.git
  1. 설치

pip3를 사용하여 OneForAll의 의존성을 설치할 수 있습니다. 다음은 Windows 시스템에서 pip3를 사용한 의존성 설치 예시입니다. 참고: Python3가 시스템 Program Files 디렉터리(예: C:\Program Files\Python36)에 설치된 경우, 관리자 권한으로 명령 프롬프트(cmd)를 실행하여 다음 명령어를 수행하세요!

root@kitploit:~
cd OneForAll/
python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python3 oneforall.py --help

다른 플랫폼은 의존성 설치를 참고하세요. 의존성 설치 중 특정 라이브러리 컴파일이 실패하는 경우 자주 묻는 질문 및 답변.md 문서의 해결 방법을 참고하세요. 그래도 해결되지 않으면 그룹에 가입하여 문제를 보고해 주세요.

  1. 업데이트

다음 명령어를 실행하여 프로젝트를 업데이트합니다 ( 및 의 수정 사항은 보존됩니다).

✔설치 단계 (docker 버전)

먼저 설정 파일을 다운로드하고 편집하여 자신의 api 및 개인 설정을 추가합니다. 원본 파일 구조를 유지하세요.

root@kitploit:~
config
├── api.py
├── default.py
├── __init__.py
├── log.py
└── setting.py

이미지를 가져와서 실행합니다. ~/.config를 자신의 설정 파일 폴더 경로로 바꾸세요.

root@kitploit:~
docker pull shmilylty/oneforall
docker run -it --rm -v ~/results:/OneForAll/results -v ~/.config:/OneForAll/config shmilylty/oneforall --target example.com run

매개변수는 명령어 끝에 직접 추가합니다. 결과는 로컬 디렉터리 ~/results에 출력됩니다. 다른 위치에 저장하려면 직접 수정하세요.

✨사용 데모

pip3를 통해 의존성을 설치한 경우 다음 명령어로 예제를 실행합니다.

root@kitploit:~
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./example.txt run

Example

🧐결과 설명

python3 oneforall.py --target example.com run 명령어를 예로 들면, OneForAll이 기본 매개변수로 정상 실행되면 results 디렉터리에 해당 결과가 생성됩니다.

Result

example.com.csv는 각 메인 도메인 아래 서브도메인 수집 결과입니다.

all_subdomain_result_1583034493.csv는 OneForAll 실행 시 수집된 서브도메인의 전체 결과를 모은 파일로, example.com.csv를 포함합니다. 일괄 수집 시나리오에서 전체 결과를 편리하게 얻을 수 있습니다.

result.sqlite3는 각 OneForAll 실행 시 수집된 서브도메인의 SQLite3 결과 데이터베이스입니다. 데이터베이스 구조는 아래 그림과 같습니다.

Database

example_com_origin_result와 같은 테이블은 각 모듈의 초기 서브도메인 수집 결과를 저장합니다.

example_com_resolve_result와 같은 테이블은 서브도메인을 해석한 결과를 저장합니다.

example_com_last_result와 같은 테이블은 이전 서브도메인 수집 결과를 저장합니다 (두 번 이상 수집해야 생성됨).

example_com_now_result와 같은 테이블은 현재 서브도메인 수집 결과를 저장합니다. 일반적으로 이 테이블을 참조하면 됩니다.

🤔사용 도움말

명령줄 매개변수는 자주 사용되는 몇 가지 기본 매개변수만 제공합니다. 더 자세한 매개변수 설정은 setting.py를 참조하세요. 명령줄 인터페이스에서 자주 사용해야 한다고 생각하는 매개변수나 부족한 부분이 있으면 피드백을 환영합니다. 잘 알려진 이유로 차단된 수집 인터페이스를 사용해야 하는 경우 먼저 setting.py에서 프록시를 구성하세요. 일부 수집 모듈은 API를 제공해야 합니다 (대부분 무료로 계정을 등록하여 얻을 수 있음). 사용하려면 api.py에서 API 정보를 구성하고, 사용하지 않으면 관련 오류 메시지를 무시하세요. (자세한 모듈은 수집 모듈 설명을 읽어보세요.)

OneForAll 명령줄 인터페이스는 Fire를 기반으로 구현되었습니다. Fire의 고급 사용 방법은 Fire CLI 사용을 참조하세요.

oneforall.py는 메인 프로그램 진입점입니다. oneforall.py는 brute.py, takerover.py 및 dbexport.py 등의 모듈을 호출할 수 있습니다. 서브도메인 브루트포싱을 위해 brute.py가 분리되었고, 서브도메인 인수 위험 검사를 위해 takerover.py가 분리되었으며, 데이터베이스 내보내기를 위해 dbexport.py가 분리되었습니다. 이러한 모듈은 독립적으로 실행될 수 있으며, 더 다양한 매개변수를 허용합니다. 이러한 모듈을 개별적으로 사용하려면 사용 도움말을 참조하세요.

❗참고: 사용 중 문제나 의문이 있을 경우 먼저 Issues에서 검색해 보시고, 자주 묻는 질문 및 답변도 참조하세요.

oneforall.py 사용 도움말

다음 도움말 정보는 최신이 아닐 수 있습니다. python oneforall.py --help를 사용하여 최신 정보를 확인하세요.

root@kitploit:~
python oneforall.py --help
root@kitploit:~
NAME
    oneforall.py - OneForAll 도움말 정보

SYNOPSIS
    oneforall.py COMMAND | --target=TARGET <flags>

DESCRIPTION
    OneForAll은 강력한 서브도메인 수집 도구입니다

    Example:
        python3 oneforall.py version
        python3 oneforall.py --target example.com run
        python3 oneforall.py --targets ./domains.txt run
        python3 oneforall.py --target example.com --valid None run
        python3 oneforall.py --target example.com --brute True run
        python3 oneforall.py --target example.com --port small run
        python3 oneforall.py --target example.com --fmt csv run
        python3 oneforall.py --target example.com --dns False run
        python3 oneforall.py --target example.com --req False run
        python3 oneforall.py --target example.com --takeover False run
        python3 oneforall.py --target example.com --show True run

    Note:
        매개변수 alive의 선택 가능한 값 True, False는 각각 활성 서브도메인과 전체 서브도메인 결과 내보내기를 의미합니다.
        매개변수 port의 선택 가능한 값은 'default', 'small', 'large'입니다. 자세한 내용은 config.py 구성을 참조하세요.
        매개변수 fmt의 선택 가능한 형식은 'csv', 'json'입니다.
        매개변수 path의 기본값은 None이며, OneForAll 결과 디렉터리 경로를 사용합니다.

ARGUMENTS
    TARGET
        단일 도메인 (둘 중 하나 필수 매개변수)
    TARGETS
        한 줄에 하나의 도메인 이름이 있는 파일 경로 (둘 중 하나 필수 매개변수)

FLAGS
    --brute=BRUTE
        s
    --dns=DNS
        DNS 서브도메인 해석 (기본값 True)
    --req=REQ
        HTTP 요청 서브도메인 (기본값 True)
    --port=PORT
        요청 검증 서브도메인의 포트 범위 (기본값 80번 포트만 검사)
    --valid=VALID
        활성 서브도메인 결과만 내보내기 (기본값 False)
    --fmt=FMT
        결과 저장 형식 (기본값 csv)
    --path=PATH
        결과 저장 경로 (기본값 None)
    --takeover=TAKEOVER
        서브도메인 인수 검사 (기본값 False)

🎉프로젝트 소개

프로젝트 주소: https://github.com/shmilylty/OneForAll

침투 테스트에서 정보 수집의 중요성은 말할 필요도 없으며, 서브도메인 수집은 정보 수집에서 필수적이고 매우 중요한 부분입니다. 현재 온라인에는 많은 서브도메인 수집 도구가 오픈소스로 제공되고 있지만, 다음과 같은 몇 가지 문제점이 있습니다.

  • 충분히 강력하지 않음: 서브도메인 수집 인터페이스가 충분하지 않아 배치 서브도메인 자동 수집이 불가능하며, 자동 서브도메인 해석, 검증, FUZZ 및 정보 확장 등의 기능이 없습니다.
  • 사용자 친화적이지 않음: 명령줄 모듈이 비교적 편리하기는 하지만, 선택할 수 있는 매개변수가 많고 복잡한 작업을 수행해야 할 경우 명령줄 모드는 다소 불편합니다. 대화형이며 조작성이 높은 프론트엔드가 있다면 사용 경험이 훨씬 좋아질 것입니다.
  • 유지 관리 부족: 많은 도구가 수년간 업데이트되지 않았습니다. issues와 PR은 무엇인지, 존재하지 않습니다.
  • 효율성 문제: 멀티프로세스, 멀티스레드 및 비동기 코루틴 기술을 활용하지 않아 속도가 느립니다.

이러한 문제점을 해결하기 위해 이 프로젝트가 탄생했습니다. 이름에서 알 수 있듯이 OneForAll은 다양한 장점을 모은 강력하고 포괄적이며 빠른 서브도메인 수집을 위한 궁극의 도구가 되기를 바랍니다. 🔨

현재 OneForAll은 개발 중이며, 분명 많은 문제와 개선할 점이 있습니다. 고수분들의 Issues 및 PR 제출을 환영합니다. 괜찮다면 작은 별표✨를 부탁드립니다. 현재 OneForAll 전용 교류 및 피드백 QQ 그룹👨‍👨‍👦‍👦이 있습니다: 824414244 (그룹 가입 확인: 정보 수집).

👍기능 특성

  • 강력한 수집 능력: 자세한 모듈은 수집 모듈 설명을 읽어보세요.
    1. 인증서 투명성 활용 서브도메인 수집 (현재 6개 모듈: censys_api, certspotter, crtsh, entrust, google, spyse_api)
    2. 일반 검사 활용 서브도메인 수집 (현재 4개 모듈: 도메인 전송 취약점 이용 axfr, 교차 도메인 정책 파일 검사 cdx, HTTPS 인증서 검사 cert, 콘텐츠 보안 정책 검사 csp, robots 파일 검사 robots, sitemap 파일 검사 sitemap, NSEC 레코드 활용 DNS 도메인 순회 dnssec, 추후 NSEC3 레코드 등 모듈 추가 예정)
    3. 웹 크롤러 아카이브 활용 서브도메인 수집 (현재 2개 모듈: archivecrawl, , 해당 모듈은 아직 디버깅 중이며 추가 및 개선 예정)

다른 훌륭한 아이디어가 있다면 꼭 알려주세요! 😎

🌲디렉터리 구조

자세한 내용은 디렉터리 구조 설명을 참조하세요.

본 프로젝트의 docs 디렉터리에는 추가 도움말과 설명이 제공됩니다. 예: 서브도메인 사전 출처 설명, 와일드카드 해석 판단 흐름.

👏사용된 프레임워크

  • aiohttp - 비동기 http 클라이언트/서버 프레임워크
  • beautifulsoup4 - HTML 또는 XML 파일에서 데이터를 쉽게 추출할 수 있는 Python 라이브러리
  • fire - Python Fire는 모든 Python 객체에서 자동으로 명령줄 인터페이스(CLI)를 생성하는 라이브러리
  • loguru - 즐거운 로깅을 목표로 하는 Python 라이브러리
  • massdns - 고성능 DNS 해석기
  • records - Records는 대부분의 관계형 데이터베이스에 대해 SQL 쿼리를 수행하는 매우 간단하면서도 강력한 라이브러리
  • requests - Requests는 유일한 비유전자 변형 Python HTTP 라이브러리로, 인간이 안전하게 사용할 수 있습니다.
  • tqdm - Python 및 CLI용 빠르고 확장 가능한 진행률 표시줄 라이브러리

이 훌륭한 Python 라이브러리들에 감사드립니다!

🔖버전 관리

이 프로젝트는 SemVer 언어화 버전 형식을 사용하여 버전을 관리합니다. 변경 기록을 참조하여 변경 사항을 확인할 수 있습니다.

⌛추후 계획

  • 각 모듈 지속적 최적화 및 개선
  • 강력한 조작과 사용자 친화적인 프론트엔드 인터페이스 구현

자세한 내용은 추후 개발 계획을 참조하세요.

🙏기여

고수분들의 프로젝트 개선에 대한 기여를 진심으로 환영합니다!

👨‍💻기여자

  • Jing Ling
    • 핵심 개발

기여자 문서에서 모든 기여자와 그들의 기여 내용을 확인할 수 있습니다. OneForAll을 더욱 강력하고 편리하게 만들어 주신 그분들께 감사드립니다.

☕후원

이 프로젝트가 도움이 되셨다면 커피 한 잔을 후원해 주시면 감사하겠습니다 :)

📄저작권

이 프로젝트는 GPL-3.0 라이선스에 따라 배포됩니다. 자세한 내용은 LICENSE를 참조하세요.

😘감사의 말

오픈소스로 제공된 각 서브도메인 수집 프로젝트에 감사드립니다!

A-Team의 열정적이고 이타적인 문제 해결에 감사드립니다!

📜면책 조항

본 도구는 정당한 법적 권한을 얻은 기업 보안 구축에만 사용해야 합니다. 본 도구를 사용하는 동안 모든 행동이 해당 지역의 법률 및 규정을 준수하는지 확인해야 합니다. 본 도구를 사용하는 과정에서 불법 행위가 발생할 경우 모든 책임은 사용자 본인에게 있으며, 본 도구의 모든 개발자 및 기여자는 어떠한 법적 책임 및 연대 책임도 지지 않습니다. 본 계약의 모든 조항을 완전히 읽고 이해하고 동의하지 않는 경우 본 도구를 설치하거나 사용하지 마십시오. 본 도구를 사용하거나 다른 명시적 또는 묵시적 방식으로 본 계약을 수락하는 경우 본 계약을 읽고 이에 구속되는 것에 동의하는 것으로 간주됩니다.

💖Star 추세

Stargazers over time

도구 다운로드
/config/setting.py
/config/api.py
root@kitploit:~
git stash        # 로컬 변경사항 임시 저장
git fetch --all  # 프로젝트 업데이트 가져오기
git pull         # 다운로드 및 덮어쓰기
git stash pop    # 로컬 변경사항 복원

자세한 내용은 필드 설명을 참조하세요.

commoncrawl
  • DNS 데이터 집합 활용 서브도메인 수집 (현재 24개 모듈: bevigil_api, binaryedge_api, bufferover, cebaidu, chinaz, chinaz_api, circl_api, cloudflare, dnsdb_api, dnsdumpster, hackertarget, ip138, ipv4info_api, netcraft, passivedns_api, ptrarchive, qianxun, rapiddns, riddler, robtex, securitytrails_api, sitedossier, threatcrowd, wzpc, ximcx)
  • DNS 쿼리 활용 서브도메인 수집 (현재 5개 모듈: 일반적인 SRV 레코드 열거 및 쿼리를 통한 서브도메인 수집 srv, 도메인의 DNS 레코드 중 MX, NS, SOA, TXT 레코드 쿼리를 통한 서브도메인 수집)
  • 위협 인텔리전스 플랫폼 데이터 활용 서브도메인 수집 (현재 6개 모듈: alienvault, riskiq_api, threatbook_api, threatminer, virustotal, virustotal_api, 해당 모듈은 아직 추가 및 개선 예정)
  • 검색 엔진 활용 서브도메인 발견 (현재 18개 모듈: ask, baidu, bing, bing_api, duckduckgo, exalead, fofa_api, gitee, github, github_api, google, google_api, shodan_api, so, sogou, yahoo, yandex, zoomeye_api). 검색 모듈에서 특수 검색 엔진을 제외한 일반 검색 엔진은 자동 제외 검색, 전체 검색, 재귀 검색을 지원합니다.
  • 서브도메인 브루트포싱 지원: 해당 모듈은 일반적인 사전 브루트포싱과 사용자 정의 fuzz 모드를 지원하며, 배치 및 재귀 브루트포싱을 지원하고 와일드카드 해석을 자동으로 판단하여 처리합니다.
  • 서브도메인 검증 지원: 기본적으로 서브도메인 검증이 활성화되어 있으며, 자동으로 서브도메인 DNS를 해석하고 서브도메인에 요청하여 title과 banner를 가져오고 종합적으로 서브도메인의 활성 여부를 판단합니다.
  • 서브도메인 크롤링 지원: 기존 서브도메인을 기반으로 서브도메인의 응답 본문 및 응답 본문 내 JS를 요청하여 새로운 서브도메인을 추가로 발견합니다.
  • 서브도메인 대체 지원: 기존 서브도메인을 기반으로 서브도메인 대체 기술을 사용하여 새로운 서브도메인을 추가로 발견합니다.
  • 서브도메인 인수 지원: 기본적으로 서브도메인 인수 위험 검사가 활성화되어 있으며, 자동 서브도메인 인수를 지원합니다 (현재는 Github만 지원, 개선 예정). 배치 검사를 지원합니다.
  • 강력한 처리 기능: 발견된 서브도메인 결과에 대해 자동 중복 제거, 자동 DNS 해석, HTTP 요청 탐지, 유효 서브도메인 자동 필터링, 서브도메인 Banner 정보 확장을 지원하며, 최종 내보내기 형식으로 txt, csv, json을 지원합니다.
  • 매우 빠른 속도: 수집 모듈은 멀티스레드를 사용하고, 브루트포스 모듈은 massdns를 사용하여 DNS 해석 속도가 초당 350,000개 이상의 도메인 이름을 처리할 수 있습니다. 서브도메인 검증의 DNS 해석 및 HTTP 요청은 비동기 멀티 코루틴을 사용하며, 멀티스레드를 사용하여 서브도메인 인수 위험을 검사합니다.
  • 좋은 사용 경험: 각 모듈에 진행률 표시줄이 있으며, 각 모듈의 결과를 비동기적으로 저장합니다.