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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/leebaird/discover
OSINT (Open Source Intelligence)ReconnaissanceVulnerability ScannersContainer SecurityExploit FrameworksPayload GenerationScripting & AutomationAPI Security TestingInformation GatheringWeb SecurityPenetration TestingCloud Security
3.9k8701일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubleebaird/discover

discover

침투 테스트 작업(정찰, 스캐닝, 정보 수집, Metasploit을 사용한 악성 페이로드 생성 포함)을 자동화하는 데 사용되는 사용자 정의 Bash 및 Python 스크립트입니다. Kali Linux 및 Ubuntu에서 사용할 수 있습니다.

저장소 보기
root@kitploit:~
Custom bash scripts used to automate various penetration testing tasks including recon, scanning, 
enumeration, and malicious payload creation using Metasploit. For use with Kali Linux or Ubuntu.

라이선스: MIT

  • 트위터 팔로우 Lee Baird @discoverscripts
  • 트위터 팔로우 Jay "L1ghtn1ng" Townsend @jay_townsend1
  • 트위터 팔로우 Jason Ashton @ninewires

설정 및 사용법

  • 홈 디렉토리에 다운로드하세요.``` cd ~ git clone https://github.com/leebaird/discover cd discover/ ./discover.sh
root@kitploit:~
* 운영 체제를 업데이트하고 종속성(`ffuf`, `feroxbuster`, `jq` 등)을 설치하려면 **업데이트**(메인 메뉴 옵션 16)를 선택하세요.
* Dev 스캐너는 `dev/` 아래에 있으며 메인 메뉴 옵션 **15. Dev**에서도 접근할 수 있습니다.
* 일부 옵션은 실행을 위해 루트 자격 증명이 필요합니다.

### 메인 메뉴```
RECON
1.  Domain
2.  Person

SCANNING
3.  Generate target list
4.  CIDR
5.  List
6.  IP, range, or URL
7.  Rerun Nmap scripts and MSF aux

WEB
8.  Insecure direct object reference
9.  Open multiple tabs in Firefox
10. Nikto
11. SSL

MISC
12. Parse XML
13. Generate a malicious payload
14. Start a Metasploit listener
15. Dev
16. Update
17. Exit

Dev 하위 메뉴 (옵션 15)

보안 스캐너 제작: Yiğit ibrahim (ibrahimsql). 스크립트는 dev/ 디렉토리에 있으며 직접 실행할 수도 있습니다.``` Dev scripts originally by ibrahimsql

  1. API Security
  2. Cloud Security
  3. Container Security
  4. OAuth and JWT Security
  5. Open Redirect Scanner
  6. Sensitive Information
  7. WAF Detection
  8. Web and API Security
  9. Previous menu
root@kitploit:~
Please provide the Markdown content to translate.```
dev/
├── api-scanner.sh
├── cloud-scanner.sh
├── container-scanner.sh
├── oauth-jwt-scanner.sh
├── open-redirect.sh
├── sensitive-scanner.sh
├── waf-detect.sh
├── web-api-scanner.sh
├── data/
│   ├── api-paths.txt
│   ├── openredirect-payloads.txt
│   ├── sensitive-denylist.txt
│   ├── sensitive-patterns.tsv
│   ├── sensitive-skip-paths.txt
│   ├── sensitive-web-paths-quick.txt
│   ├── sensitive-web-paths-full.txt
│   ├── waf-aliases.tsv
│   ├── waf-labels.tsv
│   ├── waf-signatures.tsv
│   ├── web-api-phases.tsv
│   ├── web-api-tech-signatures.tsv
│   └── swagger-paths.txt
└── lib/
    ├── api-scanner/
    │   └── common.sh
    ├── cloud-scanner/
    │   ├── common.sh
    │   ├── aws.sh
    │   ├── azure.sh
    │   └── gcp.sh
    ├── container-scanner/
    │   ├── common.sh
    │   ├── docker.sh
    │   └── k8s.sh
    ├── oauth-jwt-scanner/
    │   ├── common.sh
    │   ├── oauth.sh
    │   └── jwt.sh
    ├── open-redirect-scanner/
    │   ├── common.sh
    │   └── engine.py
    ├── sensitive-scanner/
    │   ├── common.sh
    │   ├── files.sh
    │   ├── web.sh
    │   ├── filescan.py
    │   ├── engine.py
    │   ├── fixtures/
    │   └── run-tests.sh
    ├── waf-detect/
    │   ├── common.sh
    │   ├── probe.sh
    │   ├── fixtures/
    │   └── run-tests.sh
    └── web-api-scanner/
        ├── common.sh
        ├── phases.sh
        ├── waf.sh
        ├── targets.sh
        ├── msf.sh
        ├── msf_parse.py
        ├── probe.sh
        ├── fixtures/
        └── run-tests.sh

정찰

도메인```

RECON

  1. Passive

  2. Breaches

  3. Find registered domains

  4. Google dorks

  5. Web search

  6. Import names

  7. Import subdomains

  8. Active

  9. Previous menu

root@kitploit:~
참고: Passive 및 Active는 root로 실행할 수 없습니다.

수동 정찰 (PASSIVE RECON)

Amass, ARIN, DNSRecon, dnstwist, Metasploit, subfinder,
sublist3r, theHarvester, Whois 및 여러 웹사이트를 사용합니다.

* 모든 무료 API 키를 획득하여 theHarvester의 최대 결과를 얻으세요.
* API 키를 $HOME/.theHarvester/api-keys.yaml에 추가하세요.
* 수동은 $HOME/data/<domain>/에 HTML 보고서를 생성합니다.
* 등록된 도메인은 기존 보고서의 pages/registered-domains.htm을 업데이트합니다.
* 능동은 httpx, whatweb, gowitness를 사용합니다. 선택적 NVD API 키는 능동 보고서의 CVSS
  강화를 가속화합니다 (아래 **NVD API 키** 참조).

#### 이름 가져오기 (`import-names.sh`)

수동 스캔 후에 수동 조사(LinkedIn, 회사 사이트, 전화번호부 등)에서 연락처를 추가하거나 보강하려면 실행하세요.```
Enter the location of your previous passive scan:
/home/user/data/example.com

Enter manual contacts file (or press Enter for default):
  • $HOME/data/<domain>/tools/names-manual.tsv 파일을 편집합니다.
  • 형식: 이름, 직위, 전화번호 (탭으로 구분, 한 줄에 한 명)
  • #으로 시작하는 줄은 주석입니다.
  • 직위와 전화번호는 비워둘 수 있습니다.
  • 수동 파일에 행을 추가할 때마다 이름 가져오기를 다시 실행합니다.

이름 가져오기는 세 가지 소스를 병합한 후 pages/names.htm을 새로 고칩니다:

  1. tools/names — 수동 스캔에서 자동 발견된 이름
  2. pages/names.htm — 기존 보고서 테이블 (페이지에 이미 있는 작업 보존)
  3. tools/names-manual.tsv — 수동 항목; 직위와 전화번호가 입력된 경우 우선 적용

병합된 TSV는 tools/names에 다시 저장됩니다. 이름 페이지는 정렬 가능한 3열 테이블로 구성됩니다: 이름, 직위, 전화번호.

하위 도메인 가져오기 (import-subdomains.sh)

Pentest-Tools 또는 수동 연구에서 호스트를 추가하거나 보강하려는 경우 수동 스캔 후 실행합니다.``` Enter the location of your previous passive scan: /home/user/data/example.com

Enter import file or firefox (or press Enter for default):

root@kitploit:~
지원되는 가져오기:

* `firefox` — Firefox 프로필에서 `pinia/scans` 가져오기 (무료 Pentest-Tools 스캔)
* Firefox `pinia/scans` 내보내기 (`pinia-scans.json`)
* Pentest-Tools JSON (`pentest-tools-<domain>.json`)
* Pentest-Tools 텍스트 내보내기 (`pentest-tools.txt`)
* 탭으로 구분된 호스트/IP 행

* 수동 항목을 위해 `$HOME/data/<domain>/tools/subdomains-import.tsv` 편집
* 형식: 서브도메인, IP (탭으로 구분, IP 선택사항)
* IP가 없는 호스트는 가져오기 중 `dig`로 확인됨
* 행을 추가하거나 새로운 Pentest-Tools 스캔을 실행할 때마다 서브도메인 가져오기 재실행

서브도메인 가져오기는 기존 `tools/subdomains`와 병합하고, `old/subdomain-categories.tsv`에서 카테고리를 할당하며, 개인 IP를 `tools/private-subs`로 분리하고, `pages/subdomains.htm`을 서브도메인, 카테고리, IP 열만 포함하도록 새로고침합니다. 이후 **Active**를 실행하여 Photo, Status, Web Server, Technologies를 채웁니다.

#### Active (`active.sh`)

능동적 정찰

수동 스캔 후 (선택적으로 서브도메인 가져오기 후) 어떤 공개 호스트가 HTTP/HTTPS로 응답하는지 프로빙하고, 기술 지문을 수집하며, 스크린샷을 캡처하려면 실행합니다.```
Enter the location of your previous passive scan:
/home/user/data/example.com

httpx, whatweb, gowitness, python3, Chrome 또는 Chromium이 필요합니다 (설치는 업데이트를 통해).

  • tools/subdomains에서 공개 호스트 이름을 읽습니다 (RFC1918 IP는 건너뜁니다)
  • httpx로 호스트 이름을 프로브하고 tools/httpx.jsonl을 작성합니다
  • 상태 코드 200–399, 401, 403 또는 405인 응답을 활성(Alive)으로 간주합니다
  • whatweb으로 활성 URL의 핑거프린트를 생성하고 tools/whatweb.json을 작성합니다
  • gowitness (go-rod 드라이버)로 활성 URL의 스크린샷을 tools/gowitness/ 아래에 저장합니다
  • recon/active-tech.py로 httpx와 whatweb을 병합하고 pages/subdomains.htm을 갱신합니다
  • Active 요약을 pages/active.htm에 기록합니다 (Reports 메뉴 → Active), 가능한 경우 NVD CVSS로 보강된 소프트웨어 버전을 포함합니다
  • Active를 재실행하여 httpx/whatweb/gowitness 산출물을 교체하고, pages/subdomains.htm의 활성 열을 재구성하며 pages/active.htm을 새로 고칩니다

Reports 메뉴에는 Passive (pages/passive.htm, 이전 report.htm 통합)와 Active (pages/active.htm, httpx/whatweb 통계)가 포함됩니다.

Active 범위 메트릭

메트릭의미
공개 서브도메인비-RFC1918 IP를 가진 tools/subdomains의 호스트
비공개 서브도메인tools/private-subs의 행
응답 호스트httpx 상태(모든 코드)가 있는 고유 호스트

Active 페이지의 상태 코드는 모든 httpx 응답(404/5xx 포함)을 집계합니다. 스크린샷, whatweb 및 Alive by category는 여전히 활성 서브셋만 사용합니다 (상태 200–399, 401, 403 또는 405).

공개 서브도메인 테이블 (Active 이후):

열출처
서브도메인, 카테고리, IP패시브 스캔 / 서브도메인 가져오기
사진캡처된 경우 gowitness 스크린샷 링크
상태httpx 상태 코드
웹 서버

비공개 서브도메인 테이블은 세 개의 열(서브도메인, 카테고리, 비공개 IP 주소)로 유지됩니다.

active-tech.py는 열 간의 중복 데이터를 병합하고 중복을 제거합니다. 예를 들어, OpenSSL 및 mod_jk 버전이 Technologies에 이미 나열된 경우 Web Server에서 제거되고, Microsoft IIS/10은 IIS:10이 있을 때 Microsoft IIS로 단축되며, Apache/2.4.37은 Apache HTTP Server:2.4.37이 있을 때 Apache로 단축되고, Red Hat과 같은 OS 이름이 Web Server 배너에 이미 표시된 경우 Technologies에서 제거되며, httpx의 Nginx 레이블은 nginx로 정규화됩니다.

tools/ 아래에 생성되는 산출물:

  • active-targets.txt — httpx에 보낸 공개 호스트 이름
  • httpx.jsonl — httpx JSON 출력
  • active-alive.tsv — 활성 응답의 호스트, URL 및 상태
  • active.txt — whatweb 및 gowitness에 보낸 활성 URL
  • whatweb.json — whatweb JSON 출력
  • gowitness/screenshots/ — JPEG 스크린샷
  • gowitness/gowitness.jsonl 및 gowitness/gowitness.db — gowitness 메타데이터
  • software-cves-cache.json — Active 보고서용 캐시된 NVD CVSS/CVE 조회

NVD API 키 (선택 사항, Active CVSS)

Active 정찰은 National Vulnerability Database의 CVSS 점수 및 CVE ID로 pages/active.htm의 소프트웨어 버전 테이블을 보강할 수 있습니다. 조회는 recon/software-cve.py에 구현되어 있습니다.

키 없음: 보강은 여전히 실행되지만 NVD의 익명 속도 제한이 적용됩니다 (더 느림; 요청 간 약 몇 초).

키 있음: 인증된 속도 제한 (훨씬 빠름).

보강을 완전히 건너뛰기:``` export DISCOVER_SKIP_CVE=1

root@kitploit:~
**무료 API 키 받기**

1. 키 요청: https://nvd.nist.gov/developers/request-an-api-key
2. NIST가 보낸 이메일 확인
3. Discover에 키 제공(쉘 export 및/또는 개인 `.env` — 아래 참조)

**Discover가 키를 찾는 방법**

우선 순위 (목록에서 위에 있는 비어 있지 않은 값이 항상 우선):

1. 쉘 환경 — `export NVD_API_KEY=...`
2. Discover 설치 디렉토리의 개인 `.env` — `$DISCOVER/.env`
3. 홈 설정의 개인 `.env` — `~/.discover/.env`

예시 `.env` 줄 (따옴표 불필요):```
NVD_API_KEY=your-key-here
  • 템플릿을 복사합니다 (위에서 문서화된 대로 Discover가 ~/discover에 있다고 가정): cp ~/discover/.env.example ~/discover/.env 또는 mkdir -p ~/.discover && cp ~/discover/.env.example ~/.discover/.env
  • 다른 곳에 클론했다면, ~/discover 대신 해당 경로(또는 $DISCOVER/.env.example)를 사용하세요.
  • .env는 gitignored되어 있습니다; 실제 키를 커밋하지 마세요.
  • .env.example는 문서용으로만 추적됩니다.

기타 유용한 변수

변수목적
NVD_API_KEY더 빠른 CVSS 조회를 위한 선택적 NVD API 키
DISCOVER_SKIP_CVE=1NVD 쿼리 건너뛰기; 소프트웨어 테이블에는 여전히 버전이 표시됨
DISCOVER_CVE_PROGRESS=1Active 구축 중 각 제품 조회 출력

캐시 파일: <report>/tools/software-cves-cache.json (엔게이지먼트별; 재실행 시 캐시된 제품:버전 결과를 재사용합니다). CVSS 값은 NVD CPE 일치 항목의 트라이어지 리드이며, 확인된 결과가 아닙니다 — 클라이언트에 보고하기 전에 검증하세요.

CISA 알려진 악용 취약점 (KEV)

Discover Update(메인 메뉴 옵션 16 / misc/update.sh)는 CISA KEV JSON 카탈로그를 Discover의 resource/ 폴더에 다운로드합니다:``` $DISCOVER/resource/known_exploited_vulnerabilities.json

root@kitploit:~
(e.g. `~/discover/resource/known_exploited_vulnerabilities.json`)

Source: https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json  
Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog

다운로드가 실패하면 이전 로컬 카탈로그가 그대로 유지됩니다. 이 파일은 gitignored 처리됩니다(Update 명령으로 갱신되며 커밋되지 않음).

Active **Software versions** 테이블에서 **Top CVE**는 해당 제품의 NVD CVE 중 CISA KEV 카탈로그에 있는 것이 있을 경우 이를 우선 선택합니다(KEV 중 가장 높은 CVSS 점수를 가진 것이 선택됨). 그렇지 않으면 Top CVE는 가장 높은 CVSS 점수의 NVD 결과입니다. KEV 선택 항목은 연결된 CVE ID 옆에 주황색 **KEV** 배지를 표시합니다.

#### SEC 리더십 (Names 페이지)

미국 상장 기업의 경우, Discover는 이름 병합 단계 전에 SEC EDGAR에서 임원 및 이사 정보를 가져옵니다:

1. **DEF 14A** — 위임장 서술 및 이사회 테이블에서 전체 직함 추출
2. **Form 4** — 최근 내부자 신고서를 통해 임원 및 이사 정보 보충

* 결과는 zsec-people에 기록되며 기존의 Name, Title, Phone 열과 함께 tools/names에 병합됩니다(Phone은 비워둠).
* SEC 신고서는 업무 이메일이나 개인별 전화번호를 제공하지 않습니다.
* Names 페이지 레이아웃은 변경되지 않습니다 — 이메일 열이 추가되지 않습니다.
* 수동 재정의: tools/sec-people-manual.tsv (탭으로 구분: Name, Title, Phone).

#### 회사 본사 (Summary 페이지)

수동 정찰 중 Discover는 pages/summary.htm의 회사명과 도메인 사이에 있는 주소 및 전화번호 블록을 채우려고 시도합니다.

1. **SEC EDGAR 10-K** — 미국 상장 기업의 경우, 최신 10-K에서 주요 집행 사무실 필드를 읽습니다(인라인 XBRL `dei:` 태그).
2. **웹사이트 푸터** — SEC 결과가 없으면 캐시된 홈페이지 푸터(및 연락처 페이지)에서 주소/전화번호 패턴을 스캔합니다.
3. **수동 재정의** — 발견 결과가 틀리거나 차단된 경우 tools/company-manual.tsv에 항목을 추가합니다.

결과는 tools/company.json에 기록되고 pages/summary.htm에 주입됩니다.

#### 소셜 미디어 (Summary 페이지)

수동 정찰 중 Discover는 회사 홈페이지를 가져와 공식 소셜 프로필 링크(facebook, Instagram, LinkedIn, X, YouTube)를 추출합니다. 그런 다음 각 프로필에서 팔로워 수를 가져오려고 시도합니다.

* 결과는 tools/social.tsv에 기록되고 pages/summary.htm에 주입됩니다.
* 플랫폼이 스크래핑을 차단하면 팔로워 수에 **Blocked**라고 표시됩니다.
* 홈페이지가 봇에 의해 차단된 경우 스캔 전후에 tools/social-manual.tsv(탭으로 구분: Platform, URL)에 URL을 추가하세요.

### 개인```
RECON

First name:
Last name:
  • 여러 웹사이트의 정보를 결합합니다.

스캔

대상 목록 생성```

SCANNING

  1. ARP scan
  2. Ping sweep
  3. Previous menu
root@kitploit:~
* 다양한 도구(Angry IP Scanner, arp-scan, netdiscover, Nmap pingsweep 포함)를 사용하여 대상 목록을 생성하세요.

### CIDR, List, IP, Range, 또는 URL```
Type of scan:

1.  External
2.  Internal
3.  Previous menu
  • 외부 스캔은 Nmap 소스 포트를 53으로 설정하고 max-rrt-timeout을 1500ms로 설정합니다.
  • 내부 스캔은 Nmap 소스 포트를 88로 설정하고 max-rrt-timeout을 500ms로 설정합니다.
  • Nmap은 호스트 발견, 포트 스캐닝, 서비스 식별, OS 식별에 사용됩니다.
  • Nmap 스크립트 및 Metasploit 보조 모듈은 추가 열거에 사용됩니다.
  • 추가 도구: enum4linux, smbclient, ike-scan.

웹

안전하지 않은 직접 객체 참조````

Using Burp, authenticate to a site, map & Spider, then log out. Target > Site map > select the URL > right click > Copy URLs in this host. Paste the results into a new file.

Enter the location of your file:

root@kitploit:~
### Firefox에서 여러 탭 열기```
Open multiple tabs in Firefox with:

1.  List
2.  Files in a directory
3.  Directories in robots.txt
4.  Previous menu
```
예시:
* 여러 IP 및/또는 URL을 포함하는 목록.
* Nikto로 여러 웹 사이트 스캔을 완료했으며 디렉토리에 있는 모든 htm 보고서를 열고 싶습니다.
* wget을 사용하여 도메인의 robot.txt 파일을 다운로드한 후 모든 디렉토리를 엽니다.

### Nikto```
This option cannot be ran as root.

Run multiple instances of Nikto in parallel.

1.  List of IPs
2.  List of IP:port
3.  Previous menu
```
### SSL```
Check for SSL certificate issues.

List of IP:port.


Enter the location of your file:
```
sslscan, sslyze 및 Nmap을 사용하여 SSL/TLS 인증서 문제를 확인합니다.

## MISC
### Parse XML```
Parse XML to CSV.

1.  Burp (Base64)
2.  Nessus (.nessus)
3.  Nexpose (XML 2.0)
4.  Nmap
5.  Qualys
6.  Previous menu
```
### 악성 페이로드 생성```
Malicious Payloads

1.   android/meterpreter/reverse_tcp         (.apk)
2.   cmd/windows/reverse_powershell          (.bat)
3.   java/jsp_shell_reverse_tcp (Linux)      (.jsp)
4.   java/jsp_shell_reverse_tcp (Windows)    (.jsp)
5.   java/shell_reverse_tcp                  (.war)
6.   linux/x64/meterpreter_reverse_https     (.elf)
7.   linux/x64/meterpreter_reverse_tcp       (.elf)
8.   linux/x64/shell/reverse_tcp             (.elf)
9.   osx/x64/meterpreter_reverse_https       (.macho)
10.  osx/x64/meterpreter_reverse_tcp         (.macho)
11.  php/meterpreter_reverse_tcp             (.php)
12.  python/meterpreter_reverse_https        (.py)
13.  python/meterpreter_reverse_tcp          (.py)
14.  windows/x64/meterpreter_reverse_https   (multi)
15.  windows/x64/meterpreter_reverse_tcp     (multi)
16.  Previous menu
```
### Metasploit 리스너 시작```
Metasploit Listeners

1.   android/meterpreter/reverse_tcp
2.   cmd/windows/reverse_powershell
3.   java/jsp_shell_reverse_tcp
4.   linux/x64/meterpreter_reverse_https
5.   linux/x64/meterpreter_reverse_tcp
6.   linux/x64/shell/reverse_tcp
7.   osx/x64/meterpreter_reverse_https
8.   osx/x64/meterpreter_reverse_tcp
9.   php/meterpreter/reverse_tcp
10.  python/meterpreter_reverse_https
11.  python/meterpreter_reverse_tcp
12.  windows/x64/meterpreter_reverse_https
13.  windows/x64/meterpreter_reverse_tcp
14.  Previous menu
```
### Update (메인 메뉴 옵션 16)

*   운영 체제를 업데이트하고, 여러 리포지토리에서 git pull을 수행하며, locate 데이터베이스를 업데이트합니다.
*   개발 스캐너에서 사용하는 도구(예: `ffuf`, `feroxbuster`, `jq`, `trivy`)를 설치합니다.

## DEV

별도 명시가 없는 한 스캔 결과는 `$HOME/data/` 아래에 기록됩니다. 개발 스캐너는 자체 출력 디렉터리(`api-scan_*`, `cloud-scan_*` 등)에 **독립형 보고서**를 생성합니다. 필요한 경우 메뉴 도우미와 색상을 위해 `discover.sh`를 소스로 사용하지만, Discover의 정찰 HTML 보고서(`report.sh`, `$NAME`, `pages/*.htm`)에 기록하거나 업데이트하지 **않습니다**.

### API 보안 스캐너 (`dev/api-scanner.sh`)

단계적 API 발견 및 보안 테스트. 공유 도우미와 워드리스트는 `dev/lib/api-scanner/` 및 `dev/data/`에 있습니다.

**대화형 메뉴**```
1. API Discovery and Testing (full)
2. API Quick Scan (discovery + docs)
3. JWT Token Analysis
4. Full API Assessment (orchestrated)
5. Previous menu
```
**CLI** (메뉴를 건너뜁니다 (`-u`가 설정된 경우)):```
./dev/api-scanner.sh -u https://target.example --quick --authorized
./dev/api-scanner.sh -u https://target.example --full --token 'eyJ…' --authorized
./dev/api-scanner.sh --resume ~/data/api-scan_20260703-1200 -u https://target.example
./dev/api-scanner.sh -u https://target.example --orchestrate --authorized
./dev/api-scanner.sh --help
```
| 플래그 | 목적 |
|------|---------|
| `--quick` | 탐색 및 문서화만 수행 |
| `--full` | 모든 단계 수행 (기본값) |
| `--orchestrate` | 전체 스캔 후 관련 스캐너를 묻는 프롬프트 실행 |
| `--token` | 인증된 요청을 위한 Bearer 토큰 |
| `--cookie-file` | Netscape 쿠키 저장소 |
| `--max-parallel N` | 동시 작업자 수 (기본값: 3) |
| `--max-endpoints N` | 병합 후 테스트할 엔드포인트 상한 설정 |
| `--skip PHASE` | 단계 건너뛰기 (반복 가능) |
| `--resume DIR` | 기존 출력 디렉터리를 사용하여 재개 |
| `--authorized` | 권한 확인 프롬프트 건너뛰기 |
| `--aggressive-http` | TRACE/CONNECT 메서드 테스트 포함 |

**단계 (전체 스캔):** HTML/JS 링크 추출, ffuf/feroxbuster 퍼징, 경로 탐색, OpenAPI/Swagger 검색, GraphQL 테스트 (인트로스펙션, 깊이, 배칭), CORS (GET + 사전 요청), HTTP 메서드 점검, 속도 제한 버스트, JWT 분석.

**출력:** `$HOME/data/api-scan_<타임스탬프>/api_scanner/`

* `report.txt` 및 `report.md` — 스캐너 로컬 발견사항 (Discover recon 보고서에 병합되지 않음)
* `findings.json` — 모든 발견사항의 통합 JSON 내보내기
* `findings_registry.tsv` — 탭으로 구분된 발견사항 로그 (JSON 내보내기의 소스)
* `scan.log` — 요청 감사 추적
* `.checkpoint/` — 단계별 재개 마커

`curl` 및 `jq` 필요. `ffuf` 또는 `feroxbuster`가 설치된 경우 사용 (Discover **업데이트**를 통해 설치 가능). 직접 실행 시 `f_banner`/메뉴 헬퍼를 위해 `discover.sh`를 소스로 사용.

### Cloud Security Scanner (`dev/cloud-scanner.sh`)

AWS, Azure 및 GCP에 대한 단계별 클라우드 보안 설정 오류 감사. 공유 헬퍼는 `dev/lib/cloud-scanner/`에 위치.

**대화형 메뉴**```
1. AWS (Amazon Web Services)
2. Azure (Microsoft Azure)
3. GCP (Google Cloud Platform)
4. All providers
5. Previous menu
```
**CLI** (공급자 플래그가 설정되면 메뉴를 건너뜁니다):```
./dev/cloud-scanner.sh --aws --quick
./dev/cloud-scanner.sh --azure --gcp --full
./dev/cloud-scanner.sh --aws --output-dir ~/data/cloud-scan_custom
./dev/cloud-scanner.sh --resume ~/data/cloud-scan_20260704-1200 --aws
./dev/cloud-scanner.sh --help
```
| 플래그 | 목적 |
|------|---------|
| `--aws` / `--azure` / `--gcp` | 하나의 제공자 실행 (여러 개 조합 가능) |
| `--quick` | 노출 중심 점검 (퍼블릭 액세스, MFA, 열린 인그레스) |
| `--full` | 포괄적 감사: IAM 심층 분석, 다중 리전 EC2/SG, 추가 사항 포함 |
| `--output-dir DIR` | 사용자 지정 출력 디렉터리 |
| `--resume DIR` | 기존 스캔 디렉터리를 사용하여 재개 (완료된 단계 건너뜀) |
| `-h`, `--help` | 사용법 표시 |

결과는 `$HOME/data/cloud-scan_YYYYMMDD-HHMM/` (또는 `--output-dir`)에 기록됩니다:

* `findings_registry.tsv` — 심각도, 제공자, 서비스, 리소스, 점검 항목, 세부 정보, 증거
* `findings.json` — 모든 발견 사항의 통합 JSON 내보내기
* `report.txt` / `report.md` — 스캐너 로컬 요약 (Discover 정찰 보고서에 병합되지 않음)
* `scan.log` — API 활동 및 발견 사항 로그
* `.checkpoint/` — 재개를 위한 단계 마커

스캔 전에 자격 증명이 구성된 `jq` 및 관련 클라우드 CLI(`aws`, `az`, `gcloud`/`gsutil`)가 필요합니다. 스캐너는 CLI를 자동 설치하거나 대화형 `aws configure` / `gcloud init`을 실행하지 않습니다. 직접 실행 시 `f_banner`/메뉴 도우미를 위해 `discover.sh`를 소싱합니다.

### 컨테이너 보안 스캐너 (`dev/container-scanner.sh`)

Trivy, Docker, kubectl을 사용한 포괄적인 Docker 및 Kubernetes 보안 평가. `$HOME/data/container-scan_*` 아래에 독립형 출력 (Discover 정찰 HTML 보고서를 업데이트하지 않음).

* **Docker 이미지** — Trivy 취약점/비밀/구성 스캔, SBOM (전체 모드), Dockerfile 분석
* **Docker 컨테이너** — 권한 모드, 마운트, 기능, 런타임 점검 (전체 모드)
* **Kubernetes** — RBAC, NetworkPolicy, PSS 레이블, 사용 중단된 API, 파드 보안

**스캔 유형:** `docker-images`, `docker-containers`, `kubernetes` 또는 `all` (Discover 메뉴에서 실행 시 기본값).

**CLI 옵션:** `--quick`, `--full`, `--output-dir`, `--resume`, `--dockerfile-root`, `--include-ns`, `--exclude-ns`, `--trivy-jobs`, `--menu`, `-h`

**출력 아티팩트:** `findings_registry.tsv`, `findings.json`, `report.txt`, `report.md`, `scan.log`, `container_security_report.txt`

**의존성:** `docker`, `kubectl` (쿠버네티스 스캔), `trivy`, `jq`, `numfmt` — Discover 업데이트를 통해 설치; 자동 설치 없음.

**환경 변수:** `CONTAINER_OUTPUT_DIR`, `CONTAINER_DOCKERFILE_ROOT`, `CONTAINER_SCAN_MODE`, `CONTAINER_EXCLUDE_NS`

### OAuth 및 JWT 보안 스캐너 (`dev/oauth-jwt-scanner.sh`)

OAuth/OIDC 탐색, 실시간 인가 프로브, 오프라인 JWT 분석, 선택적 실시간 토큰 검증. `api-scanner.sh` JWT 점검을 보완합니다. `$HOME/data/oauth-jwt-scan_*` 아래에 독립형 출력.

* **OAuth/OIDC** — 메타데이터 탐색, JWKS, redirect_uri/state/PKCE/implicit 프로브
* **JWT 오프라인** — alg=none, RS256→HS256 혼동, jku/x5u/kid 공격, 클레임 위생, 권한 상승 페이로드
* **JWT 실시간** — `--jwt-endpoint`에 대한 선택적 Bearer 테스트 (탐색 시 userinfo에서 자동 채움)

**스캔 유형:** `oauth`, `jwt` 또는 `all` (결합).

**메뉴:** OAuth 테스트, JWT 테스트, 결합 스캔 또는 이전 메뉴.

**CLI 예시:**```bash
./dev/oauth-jwt-scanner.sh --target https://app.example.com --full
./dev/oauth-jwt-scanner.sh --jwt 'eyJhbG...' --jwt-endpoint https://app.example.com/api/me
./dev/oauth-jwt-scanner.sh --target https://app.example.com --api-scan-dir ~/data/api-scan_20260101-1200 --all
```
**옵션:** `--target`, `--jwt`, `--jwt-file`, `--api-scan-dir`, `--jwt-endpoint`, `--client-id`, `--redirect-uri`, `--quick`, `--full`, `--oauth`, `--jwt-only`, `--all`, `--output-dir`, `--resume`, `--menu`, `-h`

**출력:** `findings_registry.tsv`, `findings.json`, `report.txt`, `report.md`, `scan.log`

**의존성:** `curl`, `jq`

### 오픈 리다이렉트 스캐너 (`dev/open-redirect.sh`)

설정 가능한 카나리 호스트를 사용하여 리다이렉트 파라미터를 퍼징합니다(기존 쿼리 파라미터에 주입 및 변형). 3xx `Location`(한 번의 리다이렉트 추적), 메타 리프레시, JavaScript/본문 리디렉션을 탐지합니다. 전체 모드는 POST 및 헤더 프로브를 추가합니다. 확인 단계에서 두 번째 카나리 호스트를 사용하여 오탐을 줄입니다. Python 엔진: `dev/lib/open-redirect-scanner/engine.py`; 페이로드: `dev/data/openredirect-payloads.txt`. 독립 실행형 출력은 `$HOME/data/openredirect-scan_*`에 저장됩니다.

**메뉴:** 단일 URL, 도메인, URL 파일, 고급 옵션, 이전 스캔 디렉토리, 또는 이전 메뉴.

**CLI 예시:**```bash
./dev/open-redirect.sh --url https://app.example.com/login?next=/home --full
./dev/open-redirect.sh --domain example.com --quick
./dev/open-redirect.sh --scan-dir ~/data/api-scan_20260101-1200 --crawl --quick
./dev/open-redirect.sh --file ~/targets.txt --max-requests 500 --rps 5
```
**옵션:** `--url`, `--domain`, `--file`, `--scan-dir`, `--wordlist`, `--canary-host`, `--quick`, `--full`, `--crawl`, `--workers`, `--delay`, `--rps`, `--max-requests`, `--no-confirm`, `--quiet`, `--output-dir`, `--resume`, `--menu`, `-h`

**출력:** `findings_registry.tsv`, `findings.json`, `report.txt`, `report.md`, `scan.log`, `openredirect_engine/results.json`, `openredirect_engine/checkpoint.json`

**의존성:** `python3`, `requests` (Discover Update는 `python3-requests`를 설치함), `jq`

### 민감 정보 스캐너 (`dev/sensitive-scanner.sh`)

로컬 파일/디렉토리 및 노출된 웹 경로에서 비밀, 자격 증명 및 PII를 찾습니다. Bash 오케스트레이션 및 Python 엔진: `filescan.py` (단일 패스 파일 스캔) 및 `engine.py` (병렬 웹 프로빙). 패턴 데이터: `dev/data/sensitive-patterns.tsv`, `sensitive-denylist.txt`, `sensitive-skip-paths.txt`. `$HOME/data/sensitive-scan_*` 아래의 독립형 출력.

* **파일 스캔** — `filescan.py`를 통해 파일당 한 번의 패스; denylist, 스킵 globs, 엔트로피 필터, Luhn/SSN/TC 검증; 선택적 `gitleaks` / `trufflehog` (`--external auto`)
* **웹 스캔** — 병렬 작업자/RPS, 경로별 체크포인트 재개, robots disallow + sitemap 경로, api-scanner 엔드포인트 가져오기, soft-404 가드, 디렉토리 목록 탐지, HTTP 200 본문에 대한 심층 `filescan.py`
* **api-scanner 훅** — 인라인 응답 검사는 `filescan.py` 사용; 오케스트레이터는 bearer 토큰으로 `--all`을 자동 실행 가능
* **보고서** — 중복 제거된 `findings_registry.tsv`, `findings.json`, `report.txt`, `report.md`; `--no-store-content` / `--shred-content`로 더 안전한 아티팩트

**메뉴:** 파일 또는 폴더, URL, 파일/폴더 + 이전 스캔 디렉토리, URL + api-scan 출력, 또는 이전 메뉴.

**예시:**```
./dev/sensitive-scanner.sh --path ./myapp --files --full
./dev/sensitive-scanner.sh --url https://app.example.com --web --quick --workers 8 --rps 5
./dev/sensitive-scanner.sh --url https://app.example.com --scan-dir ~/data/api-scan_20260101-1200 --all --quick --bearer-token "$TOKEN"
./dev/sensitive-scanner.sh --path /var/www/html/config.php --files --external gitleaks
./dev/lib/sensitive-scanner/run-tests.sh
```
**옵션:** `--path`, `--url`, `--scan-dir`, `--wordlist`, `--quick`, `--full`, `--workers`, `--delay`, `--rps`, `--max-paths`, `--bearer-token`, `--insecure`, `--no-store-content`, `--shred-content`, `--redact-emails`, `--entropy-min`, `--external`, `--files`, `--web`, `--all`, `--output-dir`, `--resume`, `--quiet`, `--menu`, `-h`

**출력:** `findings_registry.tsv`, `findings.json`, `report.txt`, `report.md`, `scan.log`, `sensitive_info/`, `web_sensitive/engine/{results,checkpoint}.json`

**종속성:** `python3`, `jq`, `find`; 웹 스캔에는 `python3-requests` 필요; 선택 사항으로 `gitleaks`, `trufflehog`, `rg`

### WAF 탐지 (`dev/waf-detect.sh`)

대상 앞에 있는 웹 애플리케이션 방화벽 및 CDN 에지 계층을 식별합니다. 모듈형 라이브러리: `dev/lib/waf-detect/{common,probe}.sh`, `wafw00f_run.py`; 데이터: `dev/data/waf-signatures.tsv`, `waf-aliases.tsv`, `waf-labels.tsv`. 독립 실행형 출력은 `$HOME/data/waf-detection_*` 아래에 생성됩니다.

* **진정한 수동 모드 (api-scanner 훅의 기본값)** — `--passive`는 일반 HTTP GET만 전송하며; 응답 헤더/본문을 `waf-signatures.tsv`와 비교합니다. wafw00f, SQLi 트리거, `X-Forwarded-For` 주입이 없습니다.
* **활성 모드** — wafw00f를 `wafw00f_run.py`를 통해 (주요, 높은 신뢰도) 그리고 보조 서명/동작 프로브를 사용합니다. 비대화형 활성 스캔에는 `--i-understand`가 필요합니다.
* **보조** — `--supplemental auto`는 신뢰할 수 있는 wafw00f 적중 후 중복 프로브를 건너뜁니다; 동작 기반 발견에는 WAF 헤더 확인이 필요합니다.
* **통합 발견** — 공급업체당 한 행으로 신뢰도(`high`/`medium`/`low`), 출처, 유형(`waf`/`cdn`/`both`) 포함
* **구조화된 적중** — 다운스트림 도구를 위한 `waf_engine/hits.jsonl` 및 `findings.json`의 `hits[]`
* **재개** — `--resume DIR`은 `waf_engine/checkpoint.json`에서 계속됩니다.
* **보고서** — `findings_registry.tsv`, `findings.json`, `report.txt`, `report.md`, `waf_results.tsv`

**메뉴:** 단일 대상, 대상 파일, 또는 이전 메뉴 (활성/수동 선택 포함).

**예시:**```
./dev/waf-detect.sh --url https://app.example.com --passive
./dev/waf-detect.sh --file ~/targets.txt --passive --delay 2
./dev/waf-detect.sh --url example.com --i-understand --output-dir ~/data/waf-test
./dev/waf-detect.sh --resume ~/data/waf-detection_20260704-1200 --workers 4
./dev/lib/waf-detect/run-tests.sh
```
**옵션:** `--url`, `--file`, `--output-dir`, `--resume`, `--passive`, `--i-understand`, `--waf-only`, `--insecure`, `--no-redirect`, `--proxy`, `--delay`, `--max-targets`, `--workers`, `--wafw00f`, `--supplemental`, `--input-format`, `--quiet`, `--menu`, `-h`

**출력:** `findings_registry.tsv`, `findings.json`, `report.txt`, `report.md`, `waf_results.tsv`, `scan.log`, `waf_engine/{hits.jsonl,checkpoint.json,*.json}`

**의존성:** `curl`, `jq`, `grep`, `python3`; 선택 사항 `wafw00f` (활성 모드, 권장)

**api-scanner 통합:** `api-scanner.sh --orchestrate`는 메인 스캔 후 waf-detect 실행을 안내합니다 (기본적으로 수동 모드).

### 웹 및 API 보안 (`dev/web-api-scanner.sh`)

Metasploit 기반 웹/API 평가. 모듈형 라이브러리: `dev/lib/web-api-scanner/{common,phases,msf,probe,waf,targets}.sh`, `msf_parse.py`; 데이터: `dev/data/web-api-{phases,tech-signatures}.tsv`. 독립 실행형 출력은 `$HOME/data/web-api-scan_*` 아래에 저장됩니다.

* **계층(Tiers)** — `passive` (정찰) | `standard`/`--quick` (정찰 + 기술 스캐너) | `intrusive` (+ SQLi/무차별 대입) | `exploit` (+ 익스플로잇 검사)
* **단계 제어(Phase control)** — `--phases`, `--skip-phases`; 각 단계별 `msfconsole` 및 `--phase-timeout`
* **기술 핑거프린트(Technology fingerprint)** — 가중치 적용 `web-api-tech-signatures.tsv` (Laravel, Spring, Swagger, nginx, …)
* **WAF 인식(WAF-aware)** — WAF/CDN 감지 시 brute 단계를 건너뜀 (`--scan-dir` 또는 헤더 시그니처)
* **인증(Auth)** — `--bearer-token`, `--cookie-file` (curl + MSF 용)
* **api-scanner 통합** — `--scan-dir`이 `brute_dirs` 경로에 대해 `api_scanner/all_endpoints.txt`를 로드함
* **구조화된 적중(Structured hits)** — `msf_parse.py` → `msf_engine/hits.jsonl` + `findings.json`의 `hits[]`
* **다중 대상(Multi-target)** — `--file`, `--workers`, `--max-targets`
* **스텔스(Stealth)** — `--delay`, `--jitter`, `--proxy`, 계층 기반 `THREADS`
* **MSF DB** — 기본적으로 검사만 수행; `--msf-db-bootstrap`으로 옵트인 설정 가능

**메뉴:** URL 스캔 (기본값 수동) 또는 이전 메뉴.

**예시:**```
./dev/web-api-scanner.sh --url https://app.example.com --passive
./dev/web-api-scanner.sh --url example.com --quick --scan-dir ~/data/api-scan_*/ 
./dev/web-api-scanner.sh --url example.com --tier exploit --i-understand --bearer-token "$TOKEN"
./dev/web-api-scanner.sh --file ~/targets.txt --quick --workers 2 --max-targets 10
WEBAPI_RUN_LIVE_MSF=1 ./dev/lib/web-api-scanner/run-tests.sh
```
**옵션:** `--url`, `--file`, `--tier`, `--quick`, `--phases`, `--skip-phases`, `--scan-dir`, `--bearer-token`, `--cookie-file`, `--proxy`, `--phase-timeout`, `--workers`, `--threads`, `--jitter`, `--target-ip`, `--output-dir`, `--resume`, `--passive`, `--i-understand`, `--dry-run`, `--skip-msf-db`, `--msf-db-bootstrap`, `--keep-resources`, `--no-waf-aware`, `--insecure`, `--delay`, `--quiet`, `--menu`, `-h`

**출력:** `findings_registry.tsv`, `findings.json`, `report.txt`, `report.md`, `scan.log`, `msf_engine/`

**의존성:** `curl`, `jq`, `grep`, `msfconsole`; MSF DB에는 PostgreSQL 권장 (`--skip-msf-db`로 선택 가능)

**api-scanner 통합:** `api-scanner.sh --orchestrate`는 web-api-scanner를 실행하라는 메시지를 표시합니다 (기본적으로 수동).

# 문제 해결

일부 사용자는 3, 4, 5 옵션을 제외한 다른 옵션을 사용할 수 없다고 보고했습니다. 다른 옵션(1, 2, 6 등)을 선택하면 아무 일도 일어나지 않습니다.

## 다운로드 해시 확인

해시 기반 검증은 파일의 해시 값을 미리 계산된 값과 비교하여 파일이 손상되지 않았음을 확인합니다. 이 값들이 일치하면 파일이 수정되지 않은 것으로 간주됩니다.

### macOS

1. 터미널을 엽니다.
2. shasum -a 256 /path/to/file
3. 값을 웹사이트의 체크섬과 비교합니다.

### Windows

1. PowerShell을 엽니다.
2. Get-FileHash C:\path\to\file
3. 값을 웹사이트의 체크섬과 비교합니다.

## VirtualBox 또는 Linux용 Windows 하위 시스템(WSL)에서 Kali 실행

일부 사용자는 WSL 대신 VMware 이미지를 사용하는 것이 해결책이라고 보고했습니다.

다른 사용자는 VirtualBox를 통해 베어 메탈 Kali ISO를 실행하는 대신 미리 만들어진 VirtualBox Kali 이미지를 실행할 때 문제가 발생했다고 언급했습니다. (https://www.kali.org/get-kali/#kali-bare-metal)

VMware Workstation을 사용하여 Kali를 실행할 의향이 없거나 실행할 수 없는 경우, VirtualBox에서 Kali ISO를 게스트 VM으로 실행하는 것이 좋습니다.

1. Kali에서 제공하는 베어 메탈 ISO를 다운로드합니다.
2. ISO 해시를 확인합니다(위 참조).
3. VirtualBox 내에서 베어 메탈 Kali ISO로 새 Kali VM을 시작합니다.

설치 중에 작성해야 할 [기본 설치 지침](https://www.kali.org/docs/installation/hard-disk-install/)이 있습니다.

참고: 베어 메탈 ISO 설정 후 root에 접근하는 데 문제가 있으면 다음을 참조하십시오: https://linuxconfig.org/how-to-reset-kali-linux-root-password
도구 다운로드
httpx/whatweb Server 헤더
제목 / 기술httpx 페이지 제목 (필터링됨) + httpx 기술 / whatweb 플러그인
discover — 침투 테스트 작업(정찰, 스캐닝, 정보 수집, Metasploit을 사용한 악성 페이로드 생성 포함)을 자동화하는 데 사용되는 사용자 정의 Bash 및 Python 스크립트입니다. Kali Linux 및 Ubuntu에서 사용할 수 있습니다. | Kitploit