Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
UltraViolet | Kitploit
ツール/GitHubGitHub/yakushstanislav/ultraviolet
ReconnaissanceVulnerability ScannersIoT SecurityNetwork MappingPort ScanningSCADA/ICS SecurityThreat IntelligenceIncident ResponseDNS Analysis
GitHubyakushstanislav/ultraviolet

UltraViolet

リポジトリを見る
431日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
要求された言語のコンテンツは利用できません。英語版を表示しています。

UltraViolet

Self-hosted network discovery & search — your own Shodan, on your hardware.

TCP/UDP scanning · ~100 protocol probes · TLS/JARM fingerprints · CVE matching · full-text search · delta tracking · alerts


Go React PostgreSQL Docker CI License: MIT

Quick start · Features · Architecture · Documentation · Production


Important. Scan only networks you own or have written authorization to scan. UltraViolet performs passive service reconnaissance — it does not exploit vulnerabilities.

Why UltraViolet

Use caseWhat you get

Single tenant, one Docker Compose stack, full control over your data.

✨ Features

Discovery

  • TCP connect scanner with masscan or zmap as the discovery engine
  • UDP probes on configurable ports
  • Scoped by SCAN_ALLOWED_CIDRS with host and port limits

Deep probes (~100 protocols)

  • Web: HTTP/HTTPS, HTTP/3, GraphQL, favicon hash, robots.txt, security.txt, tech stack
  • TLS: certificate chains, JARM, JA3S/JA4S, configuration grading
  • Mail & directories: SMTP, POP3/IMAP, LDAP, IPMI
  • Databases & queues: MySQL, PostgreSQL, MongoDB, Redis, Kafka, MQTT, NATS, AMQP…
  • ICS/SCADA: Modbus, BACnet, DNP3, IEC 104, S7Comm, ENIP, OPC UA…
  • IoT & media: ONVIF, RTSP, Chromecast, AirPlay, UPnP…
  • Full list in the protocol documentation

Enrichment

  • Reverse DNS, GeoIP (MMDB), ASN
  • Optional forward DNS and CT-log discovery

CVE & risk

  • Local NVD mirror with background sync and fingerprint-based matching
  • CISA KEV and FIRST EPSS

Operations

  • RBAC (viewer / operator / admin), JWT + refresh tokens
  • Scan schedules, pause/resume, orphan reclaim after worker restart
  • Prometheus /metrics, optional Grafana profile
  • Audit log, rate limiting, retention policies

🏗 Architecture

root@kitploit:~
flowchart TB
  Browser["Browser"]
  FE["service-frontend<br/>React + nginx"]
  API["uv-api<br/>REST · WS · metrics"]
  PG[("PostgreSQL 16")]
  SCAN["uv-scanner<br/>probe pipeline"]

  Browser --> FE
  FE -->|"/api"| API
  FE -->|"/realtime"| API
  API <--> PG
  SCAN <--> PG
  API -.->|LISTEN/NOTIFY| API

The release UI image proxies /api/ and /realtime to uv-api — single origin, no frontend rebuild per API URL.

Backend development rules: CLAUDE.md.

🚀 Quick start

Requirements: Go 1.25+, Docker Engine ≥ 24, ~4 GB RAM. Production images target Linux amd64.

Run from Docker Hub (no source build)

Beginner path — pull published images with service-env/docker-compose.registry.yml:

root@kitploit:~
cd service-env
cp env.registry.example .env
# set POSTGRES_PASSWORD, AUTH_JWT_SECRET, AUTH_BOOTSTRAP_PASSWORD
mkdir -p geoip catalog-seed
docker compose -f docker-compose.registry.yml pull
docker compose -f docker-compose.registry.yml up -d
# UI → http://localhost:3000

See Docker Registry in the docs site.

Develop from source

The API/scanner images copy prebuilt binaries from service-api/bin/ (they are not compiled inside Docker). make dev runs make -C service-api build-linux before docker compose … --build.

root@kitploit:~
git clone https://github.com/yakushstanislav/UltraViolet.git
cd UltraViolet/service-env

cp .env.example .env
mkdir -p secrets
openssl rand -hex 32 > secrets/postgres_password
openssl rand -hex 32 > secrets/auth_jwt_secret

cd ..
make dev
URLPurpose
http://localhost:3000UI (API via nginx /api/)
http://localhost:8080API directly

Dev bootstrap: admin / admin (only when APP_ENV≠production).

📖 Documentation

Full guide — VitePress in service-documentation-frontend/docs/:

root@kitploit:~
make docs-dev    # → http://localhost:5173

In production, enable the docs profile:

root@kitploit:~
cd service-env && docker compose --profile docs up -d
# → http://localhost:${UV_DOCUMENTATION_PORT:-3002}

Key sections: installation · scanning · API · deployment · offline install.

🛠 Development

Full Docker

root@kitploit:~
make dev    # build-linux → compose prod + dev override --build

Rebuild Go binaries after backend changes (make -C service-api build-linux), then restart or re-run make dev.

Hybrid mode (faster backend iteration)

root@kitploit:~
make dev-db   # PostgreSQL only on :5432

cd service-api && make build
export LOGGER_NAME=uv-api LOGGER_DEBUG=true
export SERVER_ADDR=0.0.0.0 SERVER_PORT=8080
export METRICS_ADDR=0.0.0.0 METRICS_PORT=9090
export REALTIME_ADDR=0.0.0.0 REALTIME_PORT=8081
export POSTGRES_ADDR=localhost POSTGRES_PORT=5432
export POSTGRES_USERNAME=ultraviolet
export POSTGRES_PASSWORD="$(cat ../service-env/secrets/postgres_password)"
export POSTGRES_DATABASE=ultraviolet
export POSTGRES_SCHEMA_PATH="$(pwd)/deploy/migrations"
export AUTH_JWT_SECRET="$(cat ../service-env/secrets/auth_jwt_secret)"
./bin/uv-api

Frontend: cd service-frontend && npm run dev (Vite proxies /api → :8080, /realtime → :8081).

GeoIP & CVE

root@kitploit:~
cd service-env && make geoip-download      # IPLocate MMDB → geoip/
make -C service-env cve-catalog-dump       # CVE dump (requires running postgres)

Build without Docker

root@kitploit:~
make build && make lint && make frontend-build && make docs-build

📦 Release & installation

Target platform: linux/amd64. On Apple Silicon, set DOCKER_PLATFORM=linux/amd64 for offline archives.

root@kitploit:~
git tag v0.1.0
make release VERSION=v0.1.0
make release-promote VERSION=v0.1.0   # :latest — required for local releases; GitHub Actions does this automatically
ArchiveContents
ultraviolet-vX.Y.Z.tar.gzcompose, scripts, .env.example (~50 KB, online)
ultraviolet-vX.Y.Z-offline.tar.gz+ amd64 Docker images
ultraviolet-vX.Y.Z-offline-full.tar.gz+ CVE seed + GeoIP MMDB

Online: extract → cp .env.example .env → ./install.sh (pull from registry).

Offline: ./install.sh (docker load, no pull). Upgrade: keep .env, secrets/, and the Postgres volume → ./upgrade.sh.

Variables: UV_REGISTRY (default docker.io/styakush), DRY_RUN=1 — local smoke build without push.

Offline installation — step by step
root@kitploit:~
# from the build machine
scp dist/ultraviolet-v0.1.0-offline.tar.gz user@host:~/

# on the server (Docker ≥ 24, amd64)
tar xzf ultraviolet-v0.1.0-offline.tar.gz && cd ultraviolet-v0.1.0
cp .env.example .env
./install.sh

Upgrade (preserve data):

root@kitploit:~
docker compose -f docker-compose.yml down
# back up .env + secrets/, extract the new archive, run ./upgrade.sh

Keep the directory name (ultraviolet-v0.1.0) stable — the postgres-data Docker volume is tied to it.

✅ Production checklist

  1. Store secrets in secrets/, never in git.
  2. Set CORS_ALLOWED_ORIGINS to real UI origins only.
  3. Configure SCAN_ALLOWED_CIDRS and host/port limits.
  4. Change the bootstrap password and AUTH_JWT_SECRET (install.sh rejects placeholders).
  5. Set APP_ENV=production — uv-api refuses admin/admin and passwords shorter than 8 characters.
  6. Terminate TLS at a reverse proxy — example: service-env/examples/nginx-tls.conf.
  7. Behind a proxy: set AUDIT_TRUST_PROXY_HEADERS=true.
  8. Back up PostgreSQL: service-env/scripts/backup.sh + cron; upgrade.sh also creates a dump.
HTTPS, sub-path deploy, backup cron

TLS termination on external nginx — bind the UI to loopback only:

root@kitploit:~
# docker-compose.override.yml
services:
  service-frontend:
    ports:
      - "127.0.0.1:3000:8080"
root@kitploit:~
CORS_ALLOWED_ORIGINS=https://ultraviolet.example.com
AUDIT_TRUST_PROXY_HEADERS=true

Sub-path (/ultraviolet/):

root@kitploit:~
VITE_BASE_PATH=/ultraviolet/ make frontend-build
# UV_BASE_PATH=/ultraviolet/ in compose — must match VITE_BASE_PATH

Backup cron (daily, 14-day retention):

root@kitploit:~
0 3 * * * cd /opt/ultraviolet/service-env && ./scripts/backup.sh && find backups -name 'uv-*.dump' -mtime +14 -delete

GeoIP refresh (1st of each month):

root@kitploit:~
0 4 1 * * cd /opt/ultraviolet/service-env && ./scripts/geoip-refresh.sh >> /var/log/uv-geoip.log 2>&1

🔐 API & RBAC

After POST /v1/auth/login you receive an access_token (Bearer) and refresh_token (/v1/auth/refresh).

RoleCapabilities
viewerRead hosts, search, CVEs, dashboard
operator+ start and manage scans
admin+ users, audit, settings

GET /v1/me · GET /v1/version · GET /readyz (health + version + commit).

🤝 Contributing

See CONTRIBUTING.md. Security reports: SECURITY.md. Community standards: CODE_OF_CONDUCT.md.

📄 License

UltraViolet is released under the MIT License.


UltraViolet — discover what you own, understand what changed, keep it on your network.

ツールをダウンロード
Perimeter & inventoryContinuous discovery of open ports and services across CIDR ranges
Infrastructure searchFull-text search over HTTP bodies, banners, TLS, DNS, and CVEs
Risk & complianceLocal NVD matching plus CISA KEV and EPSS — no cloud dependency
Air-gapped deploymentsOffline archive with Docker images, CVE seed, and GeoIP MMDB on disk
Change trackingDeltas between scans, WebSocket events, alerts on saved searches
DirectoryPurpose
service-api/Go: uv-api (HTTP API, WebSocket, workers) + uv-scanner (pipeline)
service-frontend/React 19 + Vite + RTK — scans, hosts, search, dashboard
service-documentation-frontend/VitePress — user and operator documentation
service-env/docker-compose, secrets, install.sh / upgrade.sh / backup
http://localhost:9090/metrics
Prometheus
  • Metrics at :9090/metrics; Grafana via the observability profile.
  • Refresh GeoIP: service-env/scripts/geoip-refresh.sh on a monthly cron.