
oxo v2.9.16
네트워크, 웹 앱, 모바일 앱 및 API 전반에 걸쳐 취약점 탐지, 정찰 및 핑거프린팅을 위한 특화된 에이전트를 결합한 모듈식 보안 스캐닝 오케스트레이터입니다.
OXO 스캔 오케스트레이션 엔진
OXO는 모듈성, 확장성 및 단순성을 위해 구축된 보안 스캐닝 프레임워크입니다.
OXO 엔진은 특수 도구들을 결합하여 취약점을 찾고 정찰, 열거, 핑거프린팅과 같은 작업을 수행하기 위해 협력적으로 작동합니다.

주요 기능
- 모듈형 및 확장 가능: 여러 특수 에이전트를 손쉽게 결합하여 포괄적인 스캔을 수행할 수 있습니다.
- 광범위한 자산 지원: IP 주소, 도메인부터 모바일 애플리케이션(Android, iOS, HarmonyOS) 및 API 스키마까지 모든 것을 스캔할 수 있습니다.
- 에이전트 스토어: 인기 보안 도구를 위한 커뮤니티 및 공식 에이전트의 성장하는 라이브러리에 접근할 수 있습니다.
- 확장 가능: 간단한 Python 기반 프레임워크를 사용하여 자신만의 에이전트를 생성하고 게시할 수 있는 내장 지원을 제공합니다.
- API 우선: CI/CD 파이프라인 및 기타 자동화 워크플로우에 쉽게 통합할 수 있는 GraphQL API를 특징으로 합니다.
요구 사항
로컬에서 스캔을 실행하려면 Docker가 필요합니다. Docker를 설치하려면 다음 안내를 따르세요.
설치
OXO는 PyPI에서 Python 패키지로 제공됩니다. pip가 이미 설치되어 있다면 다음 명령어를 실행하여 설치할 수 있습니다.
pip install -U ostorlab
시작하기
OXO는 Nmap, Nuclei, Tsunami와 같은 네트워크 스캐닝 에이전트, ZAP과 같은 웹 스캐너, WhatWeb 및 Wappalyzer와 같은 웹 핑거프린팅 도구, Subfinder 및 Dnsx와 같은 DNS 무차별 대입 도구, VirusTotal과 같은 악성 파일 스캐닝 등 수십 개의 에이전트를 자랑하는 스토어와 함께 제공됩니다.
이러한 도구들을 결합하여 실행하려면 다음 명령어를 실행하세요:
OXO CLI는
oxo또는ostorlab명령어를 사용하여 접근할 수 있습니다.
oxo scan run --install --agent agent/ostorlab/nmap --agent agent/ostorlab/tsunami --agent agent/ostorlab/nuclei ip 8.8.8.8
이 명령어는 다음 스캐닝 에이전트를 다운로드하여 설치합니다:
대상 IP 주소 8.8.8.8를 스캔합니다.
에이전트는 표준 Docker 이미지로 제공됩니다.
스캔 관리
스캔 상태를 확인하려면 다음을 실행하세요:
oxo scan list
스캔이 완료되면 스캔 결과에 접근하려면 다음을 실행하세요:
oxo vulnz list --scan-id <scan-id>
oxo vulnz describe --vuln-id <vuln-id>
실행 중인 스캔을 중지하려면 다음을 실행하세요:
oxo scan stop --scan-id <scan-id>
Docker 이미지
컨테이너에서 oxo를 실행하려면 공개적으로 사용 가능한 이미지를 사용하여 다음 명령어를 실행하세요:
docker run -v /var/run/docker.sock:/var/run/docker.sock ostorlab/oxo:latest scan run --install --agent agent/ostorlab/nmap ip 8.8.8.8
참고:
- 명령어는 바로
scan run으로 시작합니다. 이는ostorlab/oxo이미지가oxo를entrypoint로 가지고 있기 때문입니다. - 호스트 머신에서 OXO가 에이전트를 생성할 수 있도록 Docker 소켓을 마운트하는 것이 중요합니다.
온프레미스 스캐너 로그
OXO를 온프레미스 스캐너로 실행할 때, --persist-logs를 사용하여 스캐너 로그를 디스크에 기록하세요:
oxo scanner --scanner-id <scanner-uuid> --persist-logs
기본적으로 로그는 ~/.ostorlab/scanner.log에 기록됩니다. 다른 파일을 선택하려면:
oxo scanner --scanner-id <scanner-uuid> --persist-logs --log-file /var/log/ostorlab/scanner.log
지속 로그의 상세 수준을 변경하려면:
oxo scanner --scanner-id <scanner-uuid> --persist-logs --log-level DEBUG
자산
OXO는 여러 자산 유형의 스캔을 지원하여 다양한 플랫폼 및 프로토콜에서 포괄적인 보안 커버리지를 제공합니다.
| 카테고리 | 자산 | 설명 |
|---|---|---|
| 네트워크 | ip | IP 주소 또는 IP 범위 (v4 및 v6). |
domain-name | 도메인 이름. | |
| 웹 | link | URL, 메서드, 헤더 및 요청 본문을 허용하는 웹 링크. |
api-schema | API 스키마 (OpenAPI, GraphQL 등). | |
| 모바일 | android-apk / android-aab | Android 패키지 파일 (.APK, .AAB). |
android-store | Google Play 스토어의 Android 앱. | |
ios-ipa | iOS 패키지 파일 (.IPA). | |
ios-store | Apple App Store의 iOS 앱. | |
ios-testflight | TestFlight의 iOS 앱. | |
harmonyos-apk / harmonyos-hap | HarmonyOS 패키지 파일. | |
| 기타 | file | 일반 파일. |
phone-number | 전화번호. | |
agent | 에이전트의 메타 스캔. |
스토어
OXO는 공개 스토어에 모든 에이전트를 나열하며, 여기서 검색하고 자신의 에이전트를 게시할 수도 있습니다.

첫 번째 에이전트 게시하기
첫 번째 에이전트를 작성하려면 전체 튜토리얼을 여기에서 확인하세요.
단계는 기본적으로 다음과 같습니다:
- 모든 파일이 이미 설정된 템플릿 에이전트를 복제합니다.
template_agent.py파일을 변경하여 로직을 추가합니다.- 추가 빌드 단계를 추가하여
Dockerfile을 변경합니다. - 선택기, 문서, 이미지 및 라이선스를 추가하여
ostorlab.yaml을 변경합니다. - 스토어에 게시합니다.
에이전트를 작성한 후에는 다른 사람들이 사용하고 발견할 수 있도록 스토어에 게시할 수 있습니다. 스토어는 에이전트 빌드를 처리하고 Git 저장소의 새 릴리스를 자동으로 가져옵니다.

구축할 에이전트 아이디어
인기 도구의 구현 예:
semgrep: 소스 코드 스캐닝.- nbtscan: 대상 네트워크에서 열린 NetBIOS 이름 서버를 스캔합니다.
- onesixtyone: 공개적으로 노출된 SNMP 서비스를 찾는 빠른 스캐너.
- Retire.js: 알려진 취약점이 있는 JavaScript 라이브러리 사용을 감지하는 스캐너.
snallygaster: HTTP 서버에서 파일 유출 및 기타 보안 문제를 찾습니다.- testssl.sh: Heartbleed, CRIME, ROBOT을 포함한 다양한 TLS/SSL 취약점을 식별합니다.
TruffleHog: Git 저장소에서 높은 엔트로피문자열과 비밀을 검색하여 커밋 기록을 깊이 파고듭니다.- cve-bin-tool: 바이너리에서 취약한 구성 요소를 스캔합니다.
- XSStrike: 생성적 페이로드를 갖춘 XSS 웹 취약점 스캐너.
Subjack: 서브도메인 탈취 스캐닝 도구.- DnsReaper: 서브도메인 탈취 스캐닝 도구.
- Gitleaks: 하드코딩된 비밀을 탐지하고 방지하기 위한 SAST 도구.
- ffuf: Go로 작성된 빠른 웹 퍼저.
- Gobuster: URI, DNS 서브도메인 등을 무차별 대입하는 도구.
크레딧
빠르게 발전하는 분야의 오픈소스 프로젝트로서, 우리는 새로운 기능, 개선된 인프라, 또는 더 나은 문서화 형태의 기여를 항상 환영합니다.
OXO를 더 나은 도구로 만드는 데 도움을 주신 다음 기여자분들께 감사드립니다: