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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
strelka-ui — 파일 제출 및 분석을 위한 Strelka 웹 UI | Kitploit
도구/GitHubGitHub/target/strelka-ui
Defensive ToolsMalware AnalysisThreat IntelligenceAuthenticationLog Analysis
GitHubtarget/strelka-ui

strelka-ui

파일 제출 및 분석을 위한 Strelka 웹 UI

저장소 보기
76925일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Strelka Banner

릴리스   |   풀 리퀘스트   |   이슈

GitHub release Build Status Pull Requests Slack License

Strelka Web UI는 Strelka Enterprise File Scanner용 브라우저 및 API 기반 파일 제출 프론트엔드입니다. 사용자는 파일을 Strelka 클러스터에 제출하고 과거 응답 결과를 쉽게 검토할 수 있습니다. Strelka Web UI는 LDAP 인증 및 API 접근을 지원하여 Strelka 스캐너와 상호 작용할 수 있는 안전하고 유연한 방법을 제공합니다. 이 문서는 Strelka Web UI 설정 및 사용 방법과 기능, 관련 프로젝트에 대한 세부 정보를 제공합니다.

Strelka UI Results Page
Strelka UI 결과 페이지

기능

파일 제출 UI는 다음 기능을 제공합니다:

  • 파일을 Strelka 클러스터에 제출하고 브라우저에서 응답을 검사합니다.
  • 이전 제출 결과와 활동을 로컬 또는 원격 데이터베이스에 저장하고 검토합니다.
  • LDAP 인증 지원
  • API 지원

사전 요구 사항

  • 접근 가능한 Strelka 인스턴스 (참조: Strelka Quickstart)
  • Docker
  • Docker-compose
  • Python 3.9+

빠른 시작

기본적으로 Strelka UI는 사용자가 시스템을 테스트할 수 있는 최소한의 "quickstart" 배포를 사용하도록 구성되어 있습니다. 이 배포는 로컬 Strelka 인스턴스를 대상으로 하고 로컬 데이터베이스를 시작합니다. 사용자는 원하는 사용자 이름/비밀번호로 이 시스템에 접근할 수 있습니다. 원격 Strelka 인스턴스, 데이터베이스 대상 지정 또는 LDAP 인증 사용에 대한 추가 정보는 추가 설정 섹션을 참조하세요:

1단계: Strelka 클러스터가 준비되었는지 확인

root@kitploit:~
Strelka 클러스터가 준비되고 접근 가능한지 시작 또는 확인하세요.
자세한 내용은 https://github.com/target/strelka 를 참조하세요.

2단계: Strelka UI 빌드 및 시작 (Docker)

root@kitploit:~
# 터미널 1
# ./strelka-ui 디렉토리에서
$ docker-compose -f docker-compose.yml up

3단계: Strelka UI 접근

root@kitploit:~
1) 브라우저를 엽니다.
2) 0.0.0.0:8080 으로 이동합니다.
3) 다음으로 로그인합니다:
    - 사용자 이름: strelka
    - 비밀번호: strelka

추가 단계

이 섹션에서는 원격 Strelka 인스턴스, 스토리지용 원격 데이터베이스, 더 안전한 사용을 위한 LDAP 인증 서버를 대상으로 지정하는 방법에 대한 세부 정보를 제공합니다. 이를 활성화하려면 환경 변수를 사용하여 기본값을 재정의할 수 있습니다.

환경 변수 구성

백엔드 구성은 환경 변수를 통해 제공되며 ./app/config/config.py에 정적으로 설정할 수 있습니다.

로컬 실행 시 구성 우선 순위는 다음과 같습니다: 시스템 환경 -> .env -> ./app/config/config.py. Docker 실행 시 구성 우선 순위는 다음과 같습니다: Docker 환경 -> 시스템 환경 -> ./app/config/config.py.

환경 변수 설정은 ./app/example.env를 참조하세요.

환경 변수 옵션

다음은 ./app/config/config.py의 구성 항목을 자세히 설명합니다.

외부 핫링크 지원

UI 제출 테이블에 참조를 설정하여 사용자가 request.id를 기반으로 외부 사이트로 빠르게 이동할 수 있게 할 수도 있습니다. ./ui/src/config.js를 수정하고 다음 표의 SEARCH_URL 예제를 따르면 사용자에게 외부 사이트(예: SIEM / 로거) 링크를 제공할 수 있습니다. 링크에 <REPLACE> 문자열이 포함되어 있는지 확인하세요. UI는 해당 문자열을 관련 파일의 요청 ID로 대체합니다.

./ui/src/config.js에서 지원되는 수정 필드:

필드 이름값예
SEARCH_URL외부 애플리케이션의 검색 URL예: https://search.com/?q=request.id=

CA 인증서 제공

네트워크 환경에 사용자 지정 CA 번들이 필요한 경우(예: 기업 TLS 검사 프록시), 리포지토리에 인증서 파일을 커밋하지 않고 빌드 시와 런타임에 모두 제공할 수 있습니다.

빌드 시 — docker compose build를 실행하기 전에 CUSTOM_CA_CERT를 통해 CA 번들 경로를 전달하세요. 인증서는 BuildKit 시크릿을 사용하여 임시로 마운트되며 이미지 레이어에 기록되지 않습니다:

root@kitploit:~
CUSTOM_CA_CERT=/path/to/your/ca-bundle.crt docker compose build
# 또는 up과 함께 사용:
CUSTOM_CA_CERT=/path/to/your/ca-bundle.crt docker compose up --build

사용자 지정 CA가 필요 없는 개방형 네트워크에서는 변수를 생략하면 됩니다. 빌드는 정상적으로 처리됩니다:

root@kitploit:~
docker compose up --build

런타임 — 프로젝트 루트의 certs 디렉터리가 실행 중인 컨테이너 내부의 /certs에 마운트됩니다. CA 번들을 해당 디렉터리에 배치하고 ./app/strelka_ui/.env 또는 Docker 환경 변수로 REQUESTS_CA_BUNDLE(선택적으로 SSL_CERT_FILE)을 설정하세요:

root@kitploit:~
# ./app/strelka_ui/.env
REQUESTS_CA_BUNDLE=/certs/ca-bundle.crt
SSL_CERT_FILE=/certs/ca-bundle.crt

API

Strelka UI는 사용자 스크립트 기반 접근을 위한 API 경로도 제공합니다. 자세한 내용은 아래 경로를 참조하세요:

인증 경로

  • [기본 url]/api/auth/login (POST)
  • [기본 url]/api/auth/logout (GET)

Strelka 경로

  • [기본 url]/api/strelka/scans/stats (GET)
  • [기본 url]/api/strelka/scans/upload (POST, form-encoded)
  • [기본 url]/api/strelka/scans?page=?&per_page=? (GET)
  • [기본 url]/api/strelka/scans/scan id

예제

Python requests를 사용하여 Strelka UI API에 인증하고, 스캔 통계를 수집하고, 파일을 제출하는 예제는 ./misc/examples/api_examples.py에서 찾을 수 있습니다.

데이터베이스

데이터베이스는 ORM으로 https://www.sqlalchemy.org/를 사용합니다. Flask-Migrate는 Alembic을 통한 DB 마이그레이션을 제공하는 데 사용됩니다. 일반적인 데이터베이스 작업을 돕기 위해 헬퍼 스크립트 파일인 manage.py가 제공됩니다.

새 데이터베이스를 만들거나 현재 데이터베이스를 수정하는 경우 다음 단계를 수행해야 합니다. 다만 클러스터를 시작하면 다음 명령이 자동으로 실행됩니다:

모델 변경 사항에서 새 마이그레이션 생성:

  • python manage.py db migrate

현재 데이터베이스 구성을 사용하여 데이터베이스 업데이트:

  • python manage.py db upgrade

애플리케이션 세부 정보

백엔드 애플리케이션은 주로 다음 기술로 구성됩니다:

  • https://flask.palletsprojects.com/en/1.1.x/
  • https://www.sqlalchemy.org/
  • https://www.postgresql.org/

프론트엔드 UI는 Flask에서 제공되는 React로 생성된 React JS 애플리케이션입니다. UI는 Antd 라이브러리와 Antd ProComponents를 사용하며, 라우팅은 React Router로 처리됩니다.

  • create-react-app
  • Ant Financial UI
  • Antd ProComponents
  • React Router
Strelka UI Dashboard Page
Strelka UI 대시보드 페이지

관련 프로젝트

  • Strelka

라이선스

Strelka UI 및 관련 코드는 Apache 2.0 라이선스 조건에 따라 출시됩니다.

Target Banner
도구 다운로드
필드 이름값필수
STRELKA_HOSTStrelka 호스트 이름 (예: 0.0.0.0)예
STRELKA_PORTStrelka 포트 번호 (예: 57314)예
STRELKA_CERT필요한 경우 Strelka용 인증서 경로 (예: /path/to/cert.pem)아니요
CA_CERT_PATH필요한 경우 LDAP용 CA 인증서 경로 (예: /path/to/ca_certs)아니요
VIRUSTOTAL_API_KEYVirusTotal 해시 조회용 API 키예
VIRUSTOTAL_API_LIMITVirusTotal로 스캔할 파일 수 제한 (기본값: 30)예
LDAP_URLLDAP 서버 URL (예: ldaps://ldap.example.com:636)아니요
LDAP_SEARCH_BASELDAP 쿼리의 검색 기준 (예: DC=example,DC=com)아니요
LDAP_USERNAME_ORGANIZATIONLDAP 쿼리의 사용자 이름 조직 (예: org//)아니요
LDAP_ATTRIBUTE_ACCOUNT_NAME_FIELD계정 이름의 LDAP 속성 (예: sAMAccountName)아니요
LDAP_ATTRIBUTE_FIRST_NAME_FIELD이름의 LDAP 속성 (예: givenName)아니요
LDAP_ATTRIBUTE_LAST_NAME_FIELD성의 LDAP 속성 (예: sn)아니요
LDAP_ATTRIBUTE_MEMBER_OF_FIELD구성원 자격의 LDAP 속성 (예: memberOf)아니요
LDAP_ATTRIBUTE_MEMBER_REQUIREMENT_FIELD구성원 자격 요구 사항의 LDAP 속성 (예: AD Attribute)아니요
STATIC_ASSET_FOLDERUI용 빌드 폴더 (예: build)예
MIGRATION_DIRECTORYSQLAlchemy 마이그레이션 디렉터리 (예: ./migrations)예
DATABASE_USERNAME데이터베이스 사용자 이름 (예: admin)예
DATABASE_PASSWORD데이터베이스 비밀번호 (예: password123)예
DATABASE_HOST데이터베이스 호스트 이름 (예: db.example.com)예
DATABASE_PORT데이터베이스 포트 번호 (예: 5432)예
DATABASE_DBNAME데이터베이스 이름 (예: mydb)예
API_KEY_EXPIRATIONAPI 키 만료 일수 (예: 30)예
SEARCH_NAME외부 애플리케이션의 검색 이름예: Splunk
DEFAULT_EXCLUDED_SUBMITTERS제출 테이블 보기에서 기본적으로 제외할 사용자. 기본적으로 자동화를 숨기는 데 유용합니다.예: SearchBot