
다중 엔진 취약점 스캐너로, 내장된 Nuclei Lite, Afrog, XRay 엔진을 포함합니다. FOFA/Shodan을 통한 자산 탐색, OOB 상호작용 탐지, Python 플러그인 시스템, 레드 팀 작전을 위한 실시간 결과 관리 기능을 제공합니다.
OmniScan은 Python 기반의 경량 다중 엔진 취약점 스캐너로, 레드 팀 운영 및 보안 연구를 위해 설계되었습니다. 경량 Nuclei 엔진(Lite)과 Afrog 엔진을 통합했을 뿐만 아니라 강력한 자산 수집 및 결과 관리 기능을 제공합니다.
simpleeval로 eval을 대체하고 샌드박스 환경에서 DSL 표현식을 실행하여 악성 템플릿 코드 실행을 방지합니다.{{lang-file}} -> etc/passwd)를 자동으로 식별하고 채우며, 지능형 퍼징을 지원합니다.hmac, gzip, reverse, rand_base 등 포함).flow 및 req-condition 논리 제어 지원.cookie-reuse 세션 유지 및 redirects 리다이렉션 제어 지원.Interactsh 클라이언트, 무응답 취약점(Blind RCE, SSRF 등) 자동 처리.tqdm 진행 표시줄로 각 플러그인이 각 대상에서 스캔하는 진행 상황을 실시간으로 표시.BasePlugin 클래스를 상속하고 check(url) 메서드만 구현하면 됩니다.git_config.py: .git/config 노출 탐지spring_boot.py: Spring Boot Actuator 탐지ds_store.py: .DS_Store 노출 탐지phpinfo.py: phpinfo() 페이지 탐지backup_files.py: 일반적인 백업 파일 탐지 (.bak, .zip 등)swagger_ui.py: Swagger UI 문서 탐지country="CN").asyncio 및 aiohttp 프레임워크 사용.interactsh-client 바이너리를 자동으로 다운로드 및 관리합니다. (interactsh-client.zip을 업로드했으므로 이 디렉토리에서 직접 압축을 풀면 됩니다.)xxx.oast.pro).{{interactsh-url}}을 실시간으로 획득한 페이로드로 자동 대체.리포지토리 클론:
git clone https://github.com/d3ckx1/OmniScan.git
cd omniscan
종속성 설치:
pip3 install -r requirements.txt
도구 구성 (선택 사항):
Afrog 또는 XRay를 사용하는 경우 프로젝트 루트 디렉토리 또는 시스템 경로에 해당 실행 파일이 있는지 확인하세요.config.yml 구성 (선택 사항) API Key 및 스캔 매개변수 설정.단일 URL 스캔:
python3 omniscan.py -u http://example.com --tool lite -T ./templates/cve/
FOFA에서 자산을 검색하고 Nuclei Lite 엔진으로 스캔:
python3 omniscan.py -f 'app="SpringBoot"' --tool lite -T ./templates/spring-boot/
urls.txt에서 대상을 읽고 스캔:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/cve/
python3 omniscan.py -l urls.txt --tool lite -T ./templates/python3 omniscan.py -l urls.txt --tool afrogpython3 omniscan.py -l urls.txt --tool xray--tool 매개변수 없이 실행하면 대화형 메뉴가 나타나 도구를 선택할 수 있습니다:
python3 omniscan.py -l urls.txt
Blind RCE 취약점 스캔 (Interactsh 자동 활성화):
python3 omniscan.py -l urls.txt --tool lite -T ./templates/blind-rce.yaml
OOB 상호작용이 감지되면 콘솔에 [OOB DETECTED]가 출력되고 취약점이 기록됩니다.
Nuclei Lite 엔진을 사용하고 모든 플러그인 활성화:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/ --plugins
Git Config 및 PHPInfo 플러그인만 실행:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/ --plugin-file plugins/git_config.py,plugins/phpinfo.py
실제 스캔 없이 템플릿 호환성만 확인:
python3 omniscan.py --classify-only --tool lite -T ./templates/
config.yml)app:
lite_timeout: 10 # 요청 시간 초과 (초)
lite_threads: 10 # 동시 스레드 수
use_async: true # 비동기 모드 활성화
user_agents: # 사용자 정의 User-Agent 풀
- "Mozilla/5.0..."
fofa:
email: "your_email"
key: "your_key"
shodan:
api_key: "your_key"
output:
formats: ["json", "csv", "html"] # 보고서 형식
omniscan.py: 메인 프로그램 진입점, 매개변수 분석 및 작업 스케줄링 담당.nuclei_lite.py: Nuclei Lite 핵심 엔진, YAML 템플릿 파싱 및 스캔 구현.result_manager.py: 결과 관리 모듈, 중복 제거 및 보고서 생성 처리.database.py: SQLite 데이터베이스 관리.config.py: 구성 로드 모듈.Q: [OOB DETECTED]는 무엇을 의미하나요?
A: 스캐너가 대역외 상호작용(Out-of-Band Interaction)을 성공적으로 감지했음을 의미합니다. 일반적으로 대상이 DNS 또는 HTTP 요청 콜백을 트리거하여 Blind RCE, SSRF 또는 Blind SQLi 등의 취약점이 존재함을 증명합니다.
Q: FOFA/Shodan API를 어떻게 구성하나요?
A: config.yml 파일에 API Key를 입력하거나 환경 변수 FOFA_EMAIL, FOFA_KEY, SHODAN_API_KEY를 통해 설정할 수 있습니다.
Q: 어떤 운영 체제를 지원하나요? A: Omniscan은 크로스 플랫폼이며 Linux, macOS, Windows를 지원합니다. 외부 도구(예: afrog, interactsh-client)는 현재 시스템에서 실행 가능해야 합니다.
MIT License
| 매개변수 | 설명 | 예시 |
|---|
-u URL | 단일 URL 스캔 | -u http://example.com |
-f | FOFA로 자산 검색 | -f 'country="CN"' |
-s | Shodan으로 자산 검색 | -s 'apache' |
-l FILE | 로컬 대상 파일 지정 | -l targets.txt |
-T TEMPLATE | Nuclei 템플릿 경로 지정 (파일/디렉토리) | -T ./templates/ |
--tool NAME | 스캔 도구 지정 (nuclei/afrog/xray/lite) | --tool lite |
--severity | 취약점 심각도 지정 (기본값 critical,high) | --severity high,medium |
--plugins | Python 플러그인 스캔 활성화 (plugins/ 디렉토리 스캔) | --plugins |
--plugin-file FILE | 특정 플러그인 파일 실행 지정 (쉼표로 구분) | --plugin-file plugins/test.py |
--new | 새로 게시된 템플릿만 스캔 (Nuclei 지원 필요) | --new |
--no-resume | 중단점 재개 비활성화 | --no-resume |
--verbose | 상세 디버그 로그 표시 | --verbose |