
Orbis는 전체 스펙트럼 자동화된 외부 공격 표면 인텔리전스 툴킷입니다.
Orbis는 조직의 인터넷에 노출된 전체 공격 표면, 서브도메인, 열린 포트, 웹 애플리케이션, 클라우드 인프라, TLS 인증서, 이메일 보안 상태, 노출된 비밀, 로그인 패널 등을 자동으로 매핑하고, 발견된 모든 자산을 점수화하고 순위를 매겨 정확히 어디에 먼저 집중해야 하는지 알려줍니다.
도메인 목록을 입력하면 나머지는 Orbis가 처리합니다.
도메인 목록을 입력하면 나머지는 Orbis가 처리합니다.``` google.com → Frogy 2.0 discovers: apple.com • 2,000+ subdomains (passive + active enumeration) example.com • Every open port across all live hosts • Every web application — status, tech stack, redirects • Login panels, exposed .env files, leaked JS secrets • TLS certificates, cipher strengths, expiry dates • Subdomain takeover candidates (55+ service fingerprints) • Cloud asset inventory (AWS / Azure / GCP / Cloudflare) • SPF / DKIM / DMARC / DNSSEC / BIMI / MTA-STS / DANE • Third-party vendor dependencies across all surfaces • Interactive asset relationship graph → Risk-scored, prioritised, searchable HTML report
## 파이프라인 개요
Frogy 2.0은 대상에 대해 **31단계 bash 파이프라인**을 실행합니다 — 발견부터 보고서까지 완전 자동화되며, 모든 단계가 조건 없이 실행됩니다.
| 단계 | 단계 번호 | 설명 |
|-------|-------|-------------|
| **시드 확장** | 1–3 | crt.sh 조직 필터 · ARIN RDAP ASN→CIDR · TLD 스윕 · 브랜드 변형 · SEC EDGAR · WhoisXML 등록자 피벗 (API-선택) |
| **발견** | 4–9 | Subfinder + Assetfinder + crt.sh + GAU + Wayback CDX + RapidDNS + OTX/VT (API-선택) → 병합 + 제외 필터 |
| **DNS 및 하이재킹** | 10–11 | DNSX 전체 해석 (A/AAAA/CNAME/MX/NS/SPF/DMARC/DKIM/DNSSEC/BIMI/MTA-STS/DANE) · CDN/클라우드 계층 분류 · 55+ 댕글링 DNS 핑거프린트 |
| **포트 + 웹** | 12–16 | IPv6 발견 · Naabu 포트 스캔 (~500 포트, CDN 인식) · 웹 포트 URL 확장 · HTTPX 핑거프린팅 · Shodan 배너 강화 (API-선택) |
| **크롤링 + JS** | 18–19 | Katana 심층 크롤링 (JS 인식, 깊이 3) → JS 파일 분석 (시크릿, 엔드포인트, SDK 참조) |
| **보안 분석** | 21–23 | 로그인 패널 탐지 · TLS/암호 등급 · 보안 헤더 준수 · CORS / BIMI / MTA-STS / DANE / WHOIS 구조화 필드 |
| **인텔리전스** | 24–29 | SaaS 테넌트 · 서드파티 벤더 인텔 (100+ 패턴) · API 표면 · 동료 식별 · GitHub 조직 표면 · 파비콘 해시 클러스터링 |
| **클라우드** | 30 | 클라우드 인프라 인벤토리 + WAF 차폐 상태 · 공개 스토리지 확인 · 버킷 순열 |
| **점수 + 보고서** | 31 | 세 개 버킷 위험 점수 (70+ 신호) → 11개 탭이 있는 자체 포함 HTML 보고서 |
---
## 주요 기능
<details>
<summary><b>서브도메인 발견 및 DNS 인텔리전스</b></summary>
- **Subfinder**, **Assetfinder**, **crt.sh**, **GAU**(Wayback Machine), RapidDNS, OTX, VirusTotal에서 수집
- 전체 DNS 해석: A, AAAA, CNAME, MX, NS, SPF, DMARC, DKIM, DNSSEC
- 도메인당 BIMI, MTA-STS, DANE/TLSA 레코드
- WHOIS: 도메인당 등록기관, 생성일, 만료일, RegistrantOrg, RegistrantCountry
- **프로젝트별 제외 목록** — DNS 해석 전 및 모든 후속 재스캔에서 범위 외로 표시된 자산을 필터링
</details>
<details>
<summary><b>리디렉션 인텔리전스를 갖춘 웹 핑거프린팅</b></summary>
- HTTPX `-follow-redirects`는 **최종 홉 메타데이터**를 캡처 (리디렉션 페이지가 아님)
- 보고서의 **리디렉션 중복 제거**: 동일한 호스트에 HTTPS:443이 존재하면 HTTP:80이 억제되어 이중 계산 제거
- 기술 스택, 웹 서버 + 버전, CDN/WAF, 콘텐츠 길이, 상태 코드
</details>
<details>
<summary><b>서브도메인 하이재킹 탐지</b></summary>
- 55개 이상의 서비스 핑거프린트: GitHub Pages, AWS S3, Heroku, Netlify, Vercel, Azure, Fastly, Fly.io 등
- 예상 오류 페이지 본문을 가져와 확인
- **확인됨** / **가능성 있음** / **안전함** 분류
- 하이재킹 상태는 위험 점수에 직접 반영
</details>
<details>
<summary><b>TLS / SSL 심층 분석</b></summary>
- 암호 제품군 검사: NULL, ANON, RC4, DES, 3DES, CBC 플래그 지정
- 프로토콜 버전 (TLS 1.3에서 SSL 3.0까지)
- 자체 서명 탐지, 와일드카드 SAN 탐지, 끊어진 핸드셰이크
- 색상 코드로 긴급도를 표시한 인증서 만료 (만료됨 → 7일 이내 → 30일 이내 → 정상)
- **키 알고리즘**(RSA / ECDSA) 및 **키 크기**(색상 코드: 빨강 < 2048, 노랑 = 2048, 초록 ≥ 4096 / 모든 ECDSA)
- **CA 유형** 탐지: Let's Encrypt vs. 유료 CA
- 인증서당 **인증서 점수 A–F**(0–100) — TLS 버전 + 암호 + 만료 + 키 + 자체 서명 + 와일드카드
</details>
<details>
<summary><b>메일 인프라 매핑</b></summary>
- 도메인별 **MX 레코드** 수집 + 자동 메일 제공업체 탐지 (Google Workspace, Microsoft 365, ProofPoint, Mimecast 등)
- 도메인별 **SPF / DKIM / DMARC / DNSSEC** 평가
- **BIMI** 레코드 탐지, **MTA-STS** 모드(강제/테스트/없음), **DANE/TLSA** 레코드(포트 443 및 25)
- 도메인별 **이메일 위험 점수 0–100**이 포함된 전용 **메일 인프라** 보고서 탭
</details>
<details>
<summary><b>도메인 인텔리전스 강화</b></summary>
- 도메인별 구조화된 **WHOIS 필드**: 등록기관, DomainCreated, DomainExpires, DomainAge, RegistrantOrg, RegistrantCountry
- **NS 클러스터 배지** — 동일한 네임서버를 공유하는 도메인 그룹화
- **Shodan 서비스 배너**가 IP 주소 테이블에 표시 (포트 · 프로토콜 · 서비스 알약)
</details>
<details>
<summary><b>로그인 표면 탐지</b></summary>
- 다중 신호 휴리스틱: 비밀번호/사용자 이름 필드, CSRF 토큰, HTTP 401/403/407, JS 인증 라이브러리, 다국어 로그인 키워드, CAPTCHA 표시기
- **로그인 패널 유형**(phpMyAdmin, Jenkins, Kubernetes Dashboard, Grafana, CMS 관리자, 원격 액세스 게이트웨이)을 포함한 구조화된 JSON 출력
- 점수 엔진에서 유형을 사용하여 고가치 패널에 더 높은 패널티 적용
</details>
<details>
<summary><b>클라우드 인프라 매핑</b></summary>
- AWS, Azure, GCP, Cloudflare, Vercel, Netlify, Fastly, Heroku, Fly.io, DigitalOcean, Hetzner 포함
- 리소스 유형 분류: CDN, 로드 밸런서, 객체 스토리지, 관리형 DB, API 게이트웨이, 서버리스
- 차폐 상태: WAF/CDN 보호 vs. 직접 오리진 노출
</details>
<details>
<summary><b>크롤링 기반 복잡성 점수</b></summary>
- Katana가 모든 라이브 사이트를 크롤링 (깊이 3)
- 엔드포인트당 **중복 제거된 고유 페이지 수**: 숫자 경로 세그먼트 정규화 (`/users/123` → `/users/{id}`), 쿼리 문자열 제거
- 로그 스케일 점수 기여 (+2 ~ +12) — URL 수 인플레이션이 아닌 실제 애플리케이션 복잡성 측정
</details>
<details>
<summary><b>서드파티 벤더 인텔리전스</b></summary>
- 다중 소스 수집: CSP 헤더, Katana JS 분석, MX/SPF/CNAME 레코드, HTTP 응답 헤더
- **100개 이상의 벤더 패턴**을 분석, CDN, 인증/ID, 결제, 마케팅, 클라우드, 모니터링 등으로 분류
- 카테고리별 요약 및 전체 벤더 세부 테이블이 포함된 전용 **서드파티** 보고서 탭
</details>
<details>
<summary><b>자산 토폴로지 그래프</b></summary>
- 보고서에 포함된 대화형 **D3 v7 force-directed 그래프** — 외부 종속성 없음
- **8가지 노드 유형**: 도메인 · IP · ASN · NS · MX · 클라우드 · TLS 인증서 · 벤더
- **11가지 엣지 유형**: DNS · CNAME · NS · MX · ASN · 클라우드 · TLS SAN · 벤더 · 하이재킹 · 리디렉션 · 파비콘
- 노드 클릭 시 에고 네트워크 강조 표시; 노드 유형 또는 엣지 유형별 필터링; 이름으로 검색
</details>
<details>
<summary><b>대화형 보고서 UX</b></summary>
- **엔드포인트별 클릭 가능한 점수 카드** — Attack Surface Score를 클릭하면 기여하는 모든 신호의 분석 내용 확인 가능
- **테이블별 열 가시성 토글** — 열 숨기기/표시, 상태가 localStorage에 유지됨
- **섹션 인텔리전스 서랍** — 각 섹션의 ⓘ About 버튼을 클릭하면 분석가가 작성한 설명과 주의해야 할 위험 신호가 열림
- **열 마이크로 툴팁** — 모든 열 헤더의 `?` 칩 위에 마우스를 올리면 한 문장 정의와 공격자 활용 사례 확인 가능
- **개요의 9개 차트 분석 그리드**
- **다크 / 라이트 테마** — 대시보드와 보고서 간 공유
</details>
## 위험 점수
모든 엔드포인트는 **세 개의 상한 버킷**(최대 100)을 통해 점수가 매겨집니다. 집계 보고서 점수는 **상위 5개 도메인 엔드포인트 점수의 평균**입니다.
| 버킷 | 상한 | 측정 항목 |
|--------|-----|----------|
| **민감도** | 40 | 자산 중요도, 스택 복잡성, 데이터 처리 분류 |
| **노출도** | 35 | 직접적으로 위험하거나 접근 가능한 공격 표면 |
| **위생** | 25 | 잘못된 구성, 인증서 상태, 준수 격차 |
<details>
<summary><b>민감도 신호</b></summary>
| 신호 | 점수 |
|--------|--------|
| 직원 대상 / 내부 자산 | +12 |
| 스택 내 관리자/모니터링 도구 (Kibana, Grafana, Jenkins, phpMyAdmin, k8s Dashboard) | +12 |
| 크롤링 표면 크기 — 중복 제거된 고유 페이지 (로그 스케일) | 최대 +12 |
| ID / 인증 서비스 (Keycloak, Okta, Auth0, LDAP, SAML) | +8 |
| 객체 스토리지 엔드포인트 노출 | +8 |
| 오류 / 디버그 페이지 공개 노출 | +8 |
| 제목에 비프로덕션 환경 (dev / staging / test / UAT) | +6 |
| API 표면 탐지 | +6 |
| CMS 관리자 표면 (WordPress, Drupal, Magento) | +6 |
| 관리형 데이터베이스 풋프린트 접근 가능 | +7 |
| 크롤링에서 비즈니스 중요 TLD / 금융 테마 경로 | 최대 +8 |
| 사용 중인 고위험 서드파티 벤더 | 최대 +6 |
| 클라우드 API / 서버리스 리소스 | +5 |
| SaaS 테넌트 풋프린트 탐지 | +3 |
| 클라우드 관리형 표면 | +3 |
| 풀스택 프레임워크 탐지 | +2 |
| 인증 보호 표면 (HTTP 401) | +3 |
</details>
<details>
<summary><b>노출도 신호</b></summary>
| 신호 | 점수 |
|--------|--------|
| 공개 / 공개적으로 접근 가능한 클라우드 스토리지 버킷 | +20 |
| HTTP를 통한 로그인 인터페이스 서비스 | +20 |
| 인증된 표면 (HTTPS 로그인) | +12 |
| 고가치 로그인 패널 (phpMyAdmin, Jenkins, k8s, Portainer, Grafana, 원격 액세스) | +8 – +10 보너스 |
| 확인된 서브도메인 하이재킹 | +15 – +20 |
| 잠재적 서브도메인 하이재킹 (댕글링 CNAME) | +8 – +12 |
| 페이지 제목에 관리자 도구 표시 (Kibana, Grafana, Jenkins…) | +10 |
| 디렉토리 리스팅 활성화 (`Index of /`) | +10 |
| 관리 포트 노출 | 최대 +15 |
| 데이터베이스 포트 노출 | 최대 +12 |
| 개방형 인터넷 서비스 (포트 수) | 최대 +14 |
| 크롤링 가능한 고유 페이지 (로그 스케일) | 최대 +12 |
| WAF 차폐 없는 클라우드 워크로드 / CDN | +8 – +12 |
| 기술 스택의 인프라 관리 인터페이스 | +6 |
| TLS 핸드셰이크 실패 | +6 |
| HTTP 403 (리소스 존재, 인증에 의해 차단됨) | +4 |
| 5xx 서버 오류 | +4 |
</details>
<details>
<summary><b>위생 신호</b></summary>
| 신호 | 점수 |
|--------|--------|
| TLS 인증서 만료 | +20 |
| 사용 중단된 SSL 3.0 프로토콜 | +18 |
| NULL / 익명 암호 제품군 | +18 |
| RC4 / DES / 3DES 손상된 암호 | +12 |
| 레거시 TLS 1.0 / 1.1 | +12 |
| CORS 와일드카드 `*` | +12 |
| CORS null-오리진 허용 | +10 |
| 수명 종료 서버 (Apache 2.x / nginx ≤1.17 / PHP 5–7) | +10 |
| 인증서가 7일 이내 만료 | +12 |
| 자체 서명 인증서 | +8 |
| 공개된 오류 / 디버그 / 스택 트레이스 페이지 | +8 |
| CBC 암호 사용 (BEAST / POODLE) | +6 |
| 개발 서버 노출 (Werkzeug, Flask dev) | +6 |
| 인증서가 30일 이내 만료 | +6 |
| HTTP → HTTPS 리디렉션 다운그레이드 탐지 | +6 |
| 취약한 RSA 키 < 2048 비트 | +8 |
| 누락된 보안 헤더 (HSTS, CSP, X-Frame-Options…) | 최대 +12 |
| DMARC 미게시 | +6 |
| SPF 미게시 | +4 |
| 인증서 유효성 알 수 없음 | +4 |
| 와일드카드 TLS 인증서 | +4 |
| DKIM 미게시 | +3 |
| DNSSEC 미활성화 | +2 |
| 헤더에 서버 버전 공개 | +5 |
</details>
> **중요한 이유:** 만료된 자체 서명 인증서, 와일드카드 CORS 헤더, 포트 3306이 노출된 내부 관리자 패널은 정적 마케팅 페이지보다 훨씬 높은 점수를 받습니다 — 따라서 팀은 노이즈를 건너뛰고 중요한 곳에서 시작합니다.
## 스크린샷
<img width="1236" height="747" alt="image" src="https://assets.kitploit.com/production/public/readmes/6630/ee8282f09e3b62496fcf2f8881000a92cb7e8314e8c0e64222d31601763dc64d.png" />
<img width="1217" height="755" alt="image" src="https://assets.kitploit.com/production/public/readmes/6630/a6301fc3325e2f604d2f87ad1ab436ce7bb37e1110fcb01ccc4edb8bdc06d542.png" />
<img width="1219" height="755" alt="image" src="https://assets.kitploit.com/production/public/readmes/6630/c96a4abb42a9062b07c999f15dc9ac0b8cd06be365310abfc087d1fe3460e0c7.png" />
<img width="1218" height="743" alt="image" src="https://assets.kitploit.com/production/public/readmes/6630/a372ce2eb3eb6f748f6bc8b2b9d893b6e2906765675fdf78e2ec181bc4d82146.png" />
## 빠른 시작
### 1. Docker 이미지 빌드```bash
git clone https://github.com/iamthefrogy/frogy2.0.git
cd frogy2.0
chmod 777 *
docker build -t frogy:latest .
리눅스 (네이티브 Docker — --network host 작동):```bash
docker run --rm --network host --privileged --cap-add=NET_RAW
-v "$(pwd)/output:/opt/frogy/output"
frogy:latest
**macOS / Windows** (Docker Desktop — `--network host` 없음):```bash
docker run --rm --privileged --cap-add=NET_RAW \
-p 8787:8787 \
-v "$(pwd)/output:/opt/frogy/output" \
frogy:latest
-v "$(pwd)/output:/opt/frogy/output"컨테이너 재시작 시에도 스캔 기록이 유지됩니다.
### 4. 첫 번째 스캔 시작하기
1. **+ 새 스캔**을 클릭 — 프로젝트 이름을 입력하고 도메인을 붙여넣으세요 (한 줄에 하나씩)
2. 선택적으로 **범위 외 자산**을 제외 목록 텍스트 영역에 붙여넣기 (정확히 일치 또는 접미사 일치)
3. **지금 실행** 또는 **대기열에 추가**를 클릭
4. 실시간 진행 상황 보기: `31단계 중 X단계`, 경과 시간, 실시간 로그 스트리밍
5. 완료되면 **보고서 →**를 클릭하여 독립형 HTML 보고서 열기
결과는 `output/run-<타임스탬프>/`에 기록됩니다.
## 보고서 둘러보기
생성된 보고서는 **독립형 HTML 파일**입니다 — 서버가 필요 없으며 어떤 브라우저에서든 열 수 있습니다.
| 탭 | 내용 |
|-----|----------|
| **개요** | 임원 배너 (자산 계층 + 5개 메트릭 그룹) · 9개 차트 분석 그리드 · 클릭 가능한 공격 표면 점수가 포함된 위험 리더보드 |
| **도메인 인텔리전스** | 모든 하위 도메인 · DNS 레코드 · NS 클러스터 배지 · 등록 기관 · 도메인 연령 · BIMI/MTA-STS/DANE 배지 · WHOIS 구조화된 필드 |
| **애플리케이션 엔드포인트** | 모든 활성 엔드포인트 — 상태, 제목, 기술 스택, 로그인 감지, 보안 헤더, CORS, CDN |
| **IP 주소** | 역방향 DNS · ASN · 네트워크 블록 · 지리적 위치 · Shodan 서비스 배너 (포트/프로토콜/서비스/버전 알약) |
| **메일 인프라** | 도메인별: MX 라우팅 · 자동 감지된 메일 제공업체 · SPF/DKIM/DMARC/BIMI/MTA-STS/DANE 배지 · 이메일 위험 점수 0–100 |
| **TLS 인증서** | 암호 · 프로토콜 버전 · 만료 (색상 코드) · SAN · 발급자 · 인증서 점수 A–F · 키 알고리즘 · 키 크기 · 와일드카드 플래그 · 자체 서명 플래그 · CA 유형 |
| **클라우드 인프라** | 제공업체별 자산 맵 · 리소스 유형 · 차폐 상태 |
| **인터넷 발자국** | CIDR 블록 · crt.sh 조직 하위 도메인 · TLD 스윕 결과 · WHOIS 등록자 피벗 후보 |
| **SaaS 테넌트** | SaaS 테넌트 발자국 · 공개/접근 가능한 클라우드 스토리지 버킷 |
| **서드파티** | CSP, JS 참조, MX/SPF/CNAME 및 응답 헤더에서 가져온 공급업체 분류 · 100개 이상의 공급업체 패턴 |
| **자산 토폴로지** | 대화형 D3 포스 그래프 · 8개 노드 유형 · 11개 엣지 유형 · 에고 네트워크 클릭 · 검색 · 유형 필터 |
**모든 테이블**에는 전체 텍스트 검색, **열 표시 전환** (숨겨진 열은 브라우저별로 유지), **ⓘ 정보** 버튼으로 각 섹션의 의미와 확인해야 할 사항 설명
## Orbis 대시보드
`localhost:8787`의 웹 UI는 **Orbis — 전체 스펙트럼 공격 표면 인텔리전스**로 브랜딩되어 있습니다.
- **프로젝트 카드** — 상태 배지, 실시간 진행 막대 (`31단계 중 X단계`), 경과/전체 시간
- **KPI 행** — 전체 프로젝트 · 활성 스캔 · 완료 · 대기 중
- **필터 탭** — 모두 / 실행 중 / 완료 / 대기 중
- **📋 로그 보기** — 실시간 로그 스트리밍 사이드 패널, 활성 스캔 중 1.5초마다 폴링
- **프로젝트 상세 페이지** — 개별 보고서 + 로그 접근이 포함된 전체 프로젝트별 실행 기록
- **대량 작업** — 여러 프로젝트 선택하여 일괄 삭제
- **`···` 컨텍스트 메뉴**에서 모든 프로젝트 **수정 / 재스캔 / 취소**
- **프로젝트별 제외 목록** — 새 스캔 / 수정 모달에서 범위 외 자산 편집
- **API 키 패널** — 선택적 강화 키 구성, 실시간 유효성 검사 및 개별 지우기 버튼 포함
- **어두운 / 밝은 테마** — `frogyTheme` localStorage 키로 유지 (보고서와 공유)
## 기술 스택
| 구성 요소 | 기술 |
|-----------|-----------|
| 웹 대시보드 | Python · Flask 3.x |
| 스캐너 파이프라인 | Bash 5.x · 22단계 워크플로 |
| 하위 도메인 검색 | Subfinder · Assetfinder · crt.sh · GAU |
| DNS 해석 | DNSX |
| 포트 스캐닝 | Naabu |
| 웹 핑거프린팅 | HTTPX |
| 웹 크롤링 | Katana |
| TLS 분석 | tlsx |
| 시스템 유틸리티 | jq · curl · whois · dnsutils · openssl |
| 컨테이너 베이스 | Ubuntu 24.04 · Go 1.24 (도구 컴파일) |
## 구성
사이드바에서 **API 키** 패널 (`🔑 API 키`)에 접근하여 구성:
### API 키 (선택 사항이지만 추가 소스 잠금 해제)
| 키 | 잠금 해제 |
|-----|---------|
| `github_token` | GitHub 조직 표면 검색, 비밀 감지 |
| `shodan_api_key` | Shodan 배너 강화 (비 HTTP 포트) + 파비콘 해시 클러스터링 (MMH3) |
| `censys_api_key` | Censys 파비콘 해시 클러스터링 (MD5) — 단일 키, 새 플랫폼 형식 |
| `otx_api_key` | AlienVault OTX 향상된 패시브 DNS |
| `virustotal_api_key` | VirusTotal 패시브 하위 도메인 피드 |
| `whoisxml_api_key` | 시드 확장 / 조직 ASN 매핑을 위한 WHOIS 등록자 피벗 |
| `chaos_api_key` | ProjectDiscovery PDCP — 도메인당 `chaos` CLI 실행하여 실시간 하위 도메인 결과 |
모든 키는 **선택 사항**입니다 — 파이프라인은 키 없이 완전히 실행되며, 특정 키가 필요한 강화 단계만 건너뜁니다. 각 키에는 **실시간 유효성 검사 테스트**와 **지우기** 버튼이 API 키 패널에 있습니다.
## 기술 스택
| 구성 요소 | 기술 |
|-----------|-----------|
| 웹 대시보드 | Python · Flask 3.x |
| 스캐너 파이프라인 | Bash 5.x · 31단계 워크플로 |
| 하위 도메인 검색 | Subfinder · Assetfinder · crt.sh · GAU · Wayback CDX · RapidDNS · OTX · VirusTotal |
| DNS 해석 | DNSX (A, AAAA, CNAME, MX, NS, SPF, DMARC, DKIM, DNSSEC, BIMI, MTA-STS, DANE) |
| 포트 스캐닝 | Naabu (Team Cymru ASN을 통한 CDN/클라우드 계층 분류) |
| 웹 핑거프린팅 | HTTPX (리디렉션 따르기, CORS, 리디렉션 중복 제거) |
| 웹 크롤링 | Katana (고유 페이지 중복 제거, 숫자 세그먼트 정규화) |
| TLS 분석 | tlsx (암호, 키 알고리즘, 키 크기, 와일드카드, 자체 서명, CA 유형, 인증서 점수 A–F) |
| 배너 강화 | Shodan API · Censys API (둘 다 API 선택 사항) |
| 이메일 / DNS 인텔리전스 | dig · BIMI · MTA-STS · DANE/TLSA · 구조화된 WHOIS 필드 |
| 보고서 시각화 | Chart.js (9개 차트) · D3 v7 (자산 토폴로지 포스 그래프) |
| 시스템 유틸리티 | jq · curl · whois · dnsutils · openssl |
| 컨테이너 베이스 | Ubuntu 24.04 · Go 1.24 (도구 컴파일) |
## BlackHat Arsenal
Frogy는 **BlackHat Arsenal**에서 발표되었습니다. 전체 데모 보기:
[](https://www.youtube.com/watch?v=IayqiBe21h4)
## 감사의 말
이 파이프라인을 구동하는 오픈 소스 도구(Subfinder, DNSX, Naabu, HTTPX, Katana, tlsx)를 만든 [Project Discovery](https://projectdiscovery.io) 팀과 Assetfinder를 만든 [tomnomnom](https://github.com/tomnomnom)에게 특별히 감사드립니다. 커뮤니티를 계속 빛내 주세요!
[Chintan Gurjar](https://chintangurjar.com) 제작
# 향후 로드맵
- 완료 ✅ ~~보안 및 규정 준수 관련 데이터 추가 (SSL/TLS 위생, SPF, DMARC, 헤더 등)~~
- 완료 ✅ ~~열 데이터 필터링 허용.~~
- 완료 ✅ ~~새 데이터를 기반으로 더 많은 분석 추가.~~
- 완료 ✅ ~~로그인 포털 식별.~~
- 완료 ✅ ~~가능하면 기본 대시보드/분석.~~
- 완료 ✅ ~~테이블 열 중 하나에 모든 열린 포트 표시.~~
- 완료 ✅ ~~홈페이지에서 정보에 더 빠르게 접근할 수 있도록 페이지 매김으로 지연 및 버벅임 방지.~~
- 완료 ✅ ~~다크 모드에서 글꼴 색상 변경.~~
- 완료 ✅ ~~전통적인 엔드포인트와 API 엔드포인트 구분.~~
- 완료 ✅ ~~고객 대상 애플리케이션과 동료 대상 애플리케이션 구분.~~
- 완료 ✅ ~~대상 선택을 위한 우선순위 향상. (관리 포트, 로그인 발견, 고객 vs 동료 대상 앱, 보안 헤더 미설정, SSL/TLS 사용 등에 따른 점수)~~
- 완료 ✅ ~~병렬 실행, 타임아웃 기능 구현.~~
- 완료 ✅ ~~url:port 패턴에 대한 SSL/TLS 스캔 및 도메인:443 패턴만이 아닌 경우 처리.~~
- 완료 ✅ ~~공격 표면 열의 점수에 마우스 오버 시 점수 계산 방식과 이유를 확인할 수 있도록 개선.~~
- 완료 ✅ ~~HTML 테이블과 동일한 CSV 출력 생성.~~
- 완료 ✅ ~~이제 독립형 HTML 출력이 생성됩니다. 결과 파일을 웹 서버에 호스팅할 필요가 없습니다.~~
- 완료 ✅ ~~모든 DNS 레코드 추가 (A, MX, SOA, SRV, CNAME, CAA 등)~~
- 완료 ✅ ~~두 개의 CDN 차트를 하나로 통합.~~
- 완료 ✅ ~~기본 테이블에 PTR 레코드 열 추가.~~
- 완료 ✅ ~~테이블 및 차트에 가로 및 세로 스크롤 구현, 첫 번째 제목 행 고정으로 스크롤 중에도 데이터 참조 용이.~~
- 완료 ✅ ~~스크린샷 기능 추가.~~
- 완료 ✅ ~~로깅 기능 추가. 로그는 /logs/logs.log에 저장됩니다.~~
- 완료 ✅ ~~노출된 관리 및 데이터베이스 포트에 대한 추가 점수 부여.~~
- 완료 ✅ ~~Dockerized 버전 생성.~~
- 완료 ✅ ~~GAU(waybackurls)를 사용한 새로운 하위 도메인 열거 기능 추가.~~
- 완료 ✅ ~~이제 활성 애플리케이션당 링크를 크롤링할 수 있으며, 크롤링된 총 링크 수를 주요 점수에 추가합니다.~~
- 완료 ✅ ~~check_dependencies를 추가하여 필요한 모든 도구(subfinder, assetfinder, dnsx, naabu, httpx, katana, jq, curl, whois, dig, openssl, xargs, unzip, grep, sed, awk)가 설치되었는지 확인합니다. 스크립트는 누락된 도구 목록과 함께 중단됩니다.~~
- 완료 ✅ ~~check_dependencies를 추가하여 필요한 모든 도구(subfinder, assetfinder, dnsx, naabu, httpx, katana, jq, curl, whois, dig, openssl, xargs, unzip, grep, sed, awk)가 설치되었는지 확인합니다. 스크립트는 누락된 도구 목록과 함께 중단됩니다.~~
- 완료 ✅ ~~ERR에 대한 새로운 trap (종료 코드, 명령어, 파일:라인 포함). EXIT에 연결된 새로운 script_cleanup은 성공/실패 요약을 출력하고 추적 로그를 가리킵니다.~~
- 완료 ✅ ~~CLI 검증 개선 (사용법 메시지, 파일 존재 및 가독성 확인).~~
- 완료 ✅ ~~(선택적) 도메인 라인 유효성 검사 추가.~~
- 완료 ✅ ~~실행/로그 디렉터리가 쓰기 가능한지 확인하고 xtrace는 logs.log에만 유지합니다.~~
- 완료 ✅ ~~Assetfinder: xargs -P 10으로 입력 도메인에 대해 병렬 실행으로 전환.~~
- 완료 ✅ ~~dnsx: 속도 제한 및 스레드 튜닝 추가 (-rl 50 -t 25).~~
- 완료 ✅ ~~katana: 동시성/속도 제한 및 타임아웃 추가 (-c 5 -rl 30 -timeout 15), KATANA_DEPTH/KATANA_TIMEOUT 유지.~~
- 완료 ✅ ~~httpx: 튜닝된 스레드/속도 제한/타임아웃 추가 (-t 25 -rl 80 -timeout 15).~~
- 완료 ✅ ~~naabu master_subdomains.txt가 비어 있으면 명확한 경고와 함께 스캔 건너뜁니다.~~
- 완료 ✅ ~~httpx는 먼저 JSON 패스를 실행하여 httpx.json과 라이브 카운트를 구축한 다음, 두 번째 패스에서 스크린샷을 찍습니다.~~
- 완료 ✅ ~~캡처 전에 기본 아티팩트 디렉터리가 쓰기 가능한지 확인합니다.~~
- 완료 ✅ ~~BLOCK_DETECTION_THRESHOLD 도입 (기본값 20%). naabu 라이브 대상 대비 httpx.json에서 응답하는 웹 대상이 임계값 미만이면 IP/VPN 변경 안내와 함께 실행 중단.~~
- 완료 ✅ ~~로그인 표면 감지 개선 - 요청당 mktemp 파일과 명시적 curl 타임아웃 사용.~~
- 완료 ✅ ~~휴리스틱 확장 (비밀번호/사용자 이름 필드, form 속성, 제출 레이블, CSRF 토큰, 메타 힌트, CAPTCHA, 모달 힌트, 다국어 키워드, JS 인증 라이브러리, 401/403/407, WWW-Authenticate, 세션 쿠키, 로그인 리디렉션, URL 패턴 및 쿼리 파라미터).~~
- 완료 ✅ ~~구조화된 JSON 출력 및 LOGIN_FOUND_COUNT 증가 시 표시.~~
- 완료 ✅ ~~색상화된 오류 출력; 더 명확한 진행 단계 (예: [n/15]).~~
- 완료 ✅ ~~쉬운 탐색을 위해 디자인 완전히 개편.~~
- 완료 ✅ ~~사이드 패널 추가하여 데이터를 도메인 인텔, 애플리케이션 인텔, 인증서 인텔, IP 인텔 및 클라우드 인텔로 배포.~~
- 완료 ✅ ~~레코드 저장 전에 데이터 품질 검사 (유효한 도메인 구문, 중복 감지, 강화 완료) 적용.~~
- 완료 ✅ ~~사이드 패널을 숨길 수 있는 옵션 제공.~~
- 완료 ✅ ~~보고서를 CSV + JSON 형식으로 내보내기.~~
- 완료 ✅ ~~모든 사이드 패널 보고에 동일한 검색 표시줄 추가.~~
- 완료 ✅ ~~사용자가 UI를 직접 열고 거기서만 대상을 추가할 수 있어야 함.~~
- 완료 ✅ ~~완전히 새로운 점수 로직 구현.~~
- 완료 ✅ ~~완전히 새로운 GUI, 세련된 디자인 및 더 나은 적응성 구현~~
- 완료 ✅ ~~URL 리디렉션 문제 수정 (점수와 엔드포인트 수를 부풀리는 문제).~~