
discover — Updated!
정찰, 스캐닝, 열거 및 Metasploit을 사용한 악성 페이로드 생성 등 다양한 침투 테스트 작업을 자동화하는 데 사용되는 사용자 정의 Bash 및 Python 스크립트. Ubuntu용. Kali Linux에 대한 제한적 지원.
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.
설정 및 사용법
- 홈 디렉토리에 다운로드하세요.``` cd ~ git clone https://github.com/leebaird/discover cd discover/ ./discover.sh
* 운영 체제를 업데이트하고 종속성(`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
- API Security
- Cloud Security
- Container Security
- OAuth and JWT Security
- Open Redirect Scanner
- Sensitive Information
- WAF Detection
- Web and API Security
- Previous menu
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
-
Passive
-
Breaches
-
Find registered domains
-
Google dorks
-
Web search
-
Import names
-
Import subdomains
-
Active
-
Previous menu
참고: 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을 새로 고칩니다:
tools/names— 수동 스캔에서 자동 발견된 이름pages/names.htm— 기존 보고서 테이블 (페이지에 이미 있는 작업 보존)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):
지원되는 가져오기:
* `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 상태 코드 |
| 웹 서버 | httpx/whatweb Server 헤더 |
| 제목 / 기술 | httpx 페이지 제목 (필터링됨) + httpx 기술 / whatweb 플러그인 |
비공개 서브도메인 테이블은 세 개의 열(서브도메인, 카테고리, 비공개 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/ 아래에 생성되는 산출물: