Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
strelka-ui — Strelka Web UI 用于文件提交与分析 | Kitploit
工具/GitHubGitHub/target/strelka-ui
防御工具恶意软件分析威胁情报身份验证日志分析
GitHubtarget/strelka-ui

strelka-ui

Strelka Web UI 用于文件提交与分析

查看仓库
769161个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Strelka Banner

[Releases][release]   |   [Pull Requests][pr]   |   [Issues][issues]

[![GitHub release][img-version-badge]][repo] [![Build Status][img-actions-badge]][actions-ci] [![Pull Requests][img-pr-badge]][pr] [![Slack][img-slack-badge]][slack] [![License][img-license-badge]][license]

Strelka Web UI 是一个基于浏览器和 API 的文件提交前端,用于 Strelka Enterprise File Scanner。它允许用户将文件提交到 Strelka 集群,并轻松查看历史响应结果。Strelka Web UI 支持 LDAP 身份验证和 API 访问,提供了一种安全且灵活的方式来与 Strelka 扫描器交互。本文档详细介绍了如何设置和使用 Strelka Web UI,以及其功能和相关项目。

Strelka UI Results Page
Strelka UI 结果页面

功能

文件提交 UI 提供以下功能:

  • 将文件提交到 Strelka 集群,并在浏览器中查看响应。
  • 在本地或远程数据库中存储和查看之前的提交结果和活动。
  • 支持 LDAP 身份验证
  • 支持 API

先决条件

  • 可访问的 Strelka 实例(参见:Strelka 快速入门)
  • Docker
  • Docker-compose
  • Python 3.10+

快速开始

默认情况下,Strelka UI 配置为使用一个最小的“快速入门”部署,允许用户测试系统。此部署将指向本地 Strelka 实例并启动本地数据库。用户可以使用任意用户名/密码访问此系统。有关指向远程 Strelka 实例、数据库或使用 LDAP 进行身份验证的更多信息,请参阅附加设置部分:

步骤 1:确保 Strelka 集群已就绪

Start or ensure Strelka cluster is ready and accessible.
See https://github.com/target/strelka for more information.

步骤 2:构建并启动 Strelka UI(Docker)

# Terminal 1
# From the ./strelka-ui directory
$ docker-compose -f docker-compose.yml up

步骤 3:访问 Strelka UI

1) Open A Browser
2) Navigate to 0.0.0.0:8080
3) Login with:
    - Username: strelka
    - Password: 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 中的配置项。

字段名称值是否必需
STRELKA_HOSTStrelka 主机名(例如 0.0.0.0)是
STRELKA_PORTStrelka 端口号(例如 57314)是
STRELKA_CERTStrelka 证书路径(如需要)(例如 /path/to/cert.pem)否
CA_CERT_PATHLDAP 的 CA 证书路径(如需要)(例如 /path/to/ca_certs)否
VIRUSTOTAL_API_KEYVirusTotal 哈希查询的 API 密钥是
VIRUSTOTAL_API_LIMIT限制 VirusTotal 扫描的文件数量(默认: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)是
外部热链接支持

您还可以在 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=
SEARCH_NAME外部应用程序的搜索名称例如:Splunk
DEFAULT_EXCLUDED_SUBMITTERS默认从提交表视图中排除的用户。用于默认隐藏自动化。例如:SearchBot

提供 CA 证书

如果您的网络环境需要自定义 CA 捆绑包(例如,企业 TLS 检查代理),您可以在构建时和运行时提供它,而无需将任何证书文件提交到仓库。

构建时 — 在运行 docker compose build 之前,通过 CUSTOM_CA_CERT 传递 CA 捆绑包的路径。证书使用 BuildKit secret 临时挂载,并且永远不会写入任何镜像层:

CUSTOM_CA_CERT=/path/to/your/ca-bundle.crt docker compose build
# or, combined with up:
CUSTOM_CA_CERT=/path/to/your/ca-bundle.crt docker compose up --build

在不需要自定义 CA 的开放网络上,完全省略该变量 — 构建会优雅降级:

docker compose up --build

运行时 — 项目根目录下的 certs 目录会挂载到运行容器内的 /certs。将您的 CA 捆绑包放在那里,并在 ./app/strelka_ui/.env 中或作为 Docker 环境变量设置 REQUESTS_CA_BUNDLE(以及可选的 SSL_CERT_FILE):

# ./app/strelka_ui/.env
REQUESTS_CA_BUNDLE=/certs/ca-bundle.crt
SSL_CERT_FILE=/certs/ca-bundle.crt

API

Strelka UI 还提供 API 路由,供用户脚本访问。请参考以下路由了解详情:

身份验证路由

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

Strelka 路由

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

示例

有关如何使用 Python requests 对 Strelka UI API 进行身份验证、收集扫描统计信息以及提交文件的示例,请参见 ./misc/examples/api_examples.py

数据库

数据库使用 https://www.sqlalchemy.org/ 作为 ORM。Flask-Migrate 用于通过 Alembic 提供数据库迁移。提供了一个辅助脚本文件 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 是一个使用 React 创建的 React JS 应用程序,由 Flask 提供服务。UI 使用 Antd 库和 Antd ProComponents,路由由 React Router 处理。

  • create-react-app
  • Ant Financial UI
  • Antd ProComponents
  • React Router
下载工具