Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
SeekYou — OSINT-Informationen zu jeder IP, Domain oder ASN | Kitploit
Tools/GitHubGitHub/teycir/seekyou
OSINT (Open-Source-Intelligence)AufklärungNetzwerkkartierungBedrohungsfeeds & AggregatorenSchwachstellenanalyseInformationsbeschaffungPenetrationstestsCloud-SicherheitBedrohungsanalyseIncident ResponseCrawlerDNS-Analyse
1929vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHubteycir/seekyou

SeekYou

OSINT-Informationen zu jeder IP, Domain oder ASN

Repository anzeigenWebseite

Unterstützung der Entwicklung

Wenn dieses Projekt deine Arbeit unterstützt, unterstütze die laufende Wartung und neue Funktionen.

ETH-Spenden-Wallet
0x11282eE5726B3370c8B480e321b3B2aA13686582

Ethereum-Spenden-QR-Code

Scanne den QR-Code oder kopiere die obige Wallet-Adresse.

SeekYou

Vereinheitlichte Host-Intelligence aus 15 Quellen — Rufe für jede IP, Domain oder ASN sofort Sicherheitsstatus, Infrastrukturdaten und Bedrohungskorrelationen ab. Läuft vollständig auf dem kostenlosen Cloudflare-Tarif.

Live unter: swiy.co/seekyou``` $ curl "https://seekyou.seekyou.workers.dev/api/lookup?q=1.1.1.1"

{ "query": { "raw": "1.1.1.1", "type": "ip", "normalised": "1.1.1.1" }, "core": { "internetdb": { "status": "ok", "data": { "ports": [80,443], "vulns": [] } }, "geo": { "status": "cached", "data": { "country": "US", "org": "AS13335 Cloudflare" } }, "bgp": { "status": "ok", "data": { "name": "CLOUDFLARENET", "rir": "ARIN" } }, ... }, "meta": { "durationMs": 312, "cacheHits": 4, "sourcesQueried": 15, "sourcesFailed": 0 } }

root@kitploit:~
## Screenshots

<div align="center">

### Startseite
<img src="https://assets.kitploit.com/production/public/readmes/7467/e00ec4ba8b3e5460ae1e03360cf6540e58d92acc5522c8693445512b591fed29.png" alt="SeekYou Results Page" width="800" />


### Ergebnisseite
<img src="https://assets.kitploit.com/production/public/readmes/7467/09b165feca9927ad4cd50c3ebd28c72e09a0355d72b9ca14d795bf1d04448c92.png" alt="SeekYou Landing Page" width="800" />

### Demo
<a href="https://www.youtube.com/watch?v=b86tAUUqd34">
  <img src="https://assets.kitploit.com/production/public/readmes/7467/8762e8b464816b9a69d929514441f8c7ee9f9ee9719f95b9c5e33ac1672575f8.jpg" alt="SeekYou Demo" width="800" />
</a>

</div>

---

## Inhaltsverzeichnis

- [SeekYou](#seekyou)
  - [Screenshots](#screenshots)
    - [Startseite](#landing-page)
    - [Ergebnisseite](#results-page)
    - [Demo](#demo)
  - [Inhaltsverzeichnis](#table-of-contents)
  - [Was SeekYou macht](#what-seekyou-does)
  - [Anwendungsfälle](#use-cases)
  - [Richtlinie zur rechtmäßigen Nutzung](#lawful-use-policy)
  - [Verwandte Tools](#related-tools)
  - [Architekturübersicht](#architecture-overview)
  - [Ausführungsmodell](#execution-model)
  - [Datenquellen](#data-sources)
  - [Projektstruktur](#project-structure)
  - [Wichtige Designentscheidungen](#key-design-decisions)
    - [Edge-first, kein Node.js](#edge-first-no-nodejs)
    - [Mehrschichtige parallele Ausführung](#layered-parallel-execution)
    - [Abgestufte Funktionsweise](#graceful-degradation)
    - [Getrennte D1- und KV-Speicherung](#split-d1--kv-storage)
    - [Optimierung für den kostenlosen Tarif](#free-tier-optimization)
    - [Fire-and-forget-D1-Schreibvorgänge](#fire-and-forget-d1-writes)
  - [Caching-Strategie](#caching-strategy)
  - [Ratenbegrenzung](#rate-limiting)
  - [Circuit Breaker](#circuit-breakers)
  - [Schlüsselrotation — GrayHatWarfare](#key-rotation--grayhatwarfare)
  - [D1-Persistenz](#d1-persistence)
    - [Schema (`schema.sql`)](#schema-schemasql)
    - [Schema anwenden](#apply-schema)
    - [Hilfsfunktionen](#helper-functions)
  - [Cron-Worker](#cron-worker)
    - [Typisierter Diff (`lib/diff.ts`)](#typed-diff-libdiffts)
    - [Webhook-Payload](#webhook-payload)
  - [Entwicklungseinrichtung](#development-setup)
    - [Voraussetzungen](#prerequisites)
    - [Lokale Entwicklung](#local-development)
    - [Cloudflare-Ressourcen erstellen (erstmalig)](#create-cloudflare-resources-first-time)
  - [Bereitstellung](#deployment)
    - [Build und Bereitstellung](#build-and-deploy)
    - [Wrangler-Konfiguration (`wrangler.toml`)](#wrangler-configuration-wranglertoml)
  - [Secrets und Umgebungsvariablen](#secrets-and-environment-variables)
    - [Erforderliche Secrets](#required-secrets)
    - [`.env.example` (nur lokale Entwicklung)](#envexample-local-dev-only)
  - [Lizenz](#license)
  - [Autor](#author)
  - [Danksagungen](#acknowledgments)

---

## Was SeekYou macht

SeekYou ist ein **Host-Intelligence-Tool** — fügen Sie eine IP-Adresse, einen Domainnamen oder eine ASN ein und erhalten Sie einen einheitlichen Bericht mit:

| Kategorie | Was Sie erhalten |
|---|---|
| Netzwerk | Offene Ports, CPEs, BGP-Präfixe, Upstreams, Peers, RIR |
| Identität | RDAP-Registrierung, Kontakte, Registrar, Nameserver |
| Geo | Land, Stadt, ISP, Proxy-/Hosting-/Mobil-Flags |
| Zertifikate | crt.sh-Verlauf, SANs, Ausstellerkette |
| DNS | Passive-DNS-Einträge, Robtex-Reverse/Forward-DNS |
| Bedrohungen | URLhaus, ThreatFox, MalwareBazaar, Feodo, SSLBL |
| CVEs | NVD- + CIRCL-Anreicherung für jede CVE-ID, über die InternetDB berichtet |
| Recon | GrayHatWarfare exponierte Buckets, Wayback-CDX-Snapshots |

Jede Quelle wird parallel abgefragt. Eine fehlschlagende Quelle wird auf einen „nicht verfügbar"-Badge heruntergestuft — sie bringt die Seite nie zu Fall.

---

## Anwendungsfälle

**Security Operations** — Verdächtige IPs aus Logs schnell profilieren, IOCs korrelieren, exponierte Dienste und CVEs identifizieren, bösartige Domains nachverfolgen.

**Network Operations** — BGP-Routing, RDAP/WHOIS-Zuteilungsdaten, historische DNS-Einträge und SSL-Zertifikatsänderungen prüfen.

**Penetrationstests** — Ports/Dienste/CPEs aufzählen, exponierte Buckets, archivierte Seiten, Subdomains und ASN-Beziehungen entdecken.

**Threat Intelligence** — C2-Infrastruktur in einer einzigen Abfrage gegen fünf Bedrohungsfeeds prüfen.

**Compliance & Risiko** — Lieferanteninfrastruktur profilieren, exponierte Cloud-Speicher erkennen, Shadow IT identifizieren.

---

## Richtlinie zur rechtmäßigen Nutzung

SeekYou ist für **rechtmäßige Sicherheitsforschung, Netzwerkbetrieb und Threat Intelligence** konzipiert. Mit der Nutzung dieses Tools erklären Sie sich damit einverstanden:

**Zulässige Verwendungen:**
- Sicherheitsbetrieb und Incident-Response in Netzwerken, die Sie besitzen oder zu deren Überwachung Sie autorisiert sind
- Threat-Intelligence-Forschung und IOC-Korrelation
- Netzwerk-Fehlerbehebung und Infrastruktur-Audits innerhalb Ihrer Organisation
- Penetrationstests mit ausdrücklicher schriftlicher Genehmigung der Zielorganisation
- Akademische Forschung und Ausbildung im Bereich Cybersicherheit
- Compliance-Audits und Lieferantenrisikobewertungen mit entsprechender Autorisierung

**Verbotene Verwendungen:**
- Unbefugter Zugriff, Aufklärung oder Angriffe gegen Systeme, die Sie nicht besitzen oder für deren Test Sie keine ausdrückliche Erlaubnis haben
- Belästigung, Stalking oder Datenschutzverletzungen gegenüber Einzelpersonen oder Organisationen
- Unterstützung illegaler Aktivitäten, einschließlich Betrug, Identitätsdiebstahl oder Cyberkriminalität
- Umgehung von Sicherheitskontrollen oder Zugriffsbeschränkungen ohne Autorisierung
- Verstoß gegen geltende Gesetze, einschließlich CFAA (USA), Computer Misuse Act (UK), GDPR (EU) oder gleichwertige Gesetze in Ihrer Rechtsordnung

**Ihre Verantwortlichkeiten:**
- Stellen Sie sicher, dass Sie ordnungsgemäß autorisiert sind, bevor Sie Infrastruktur abfragen, die Ihnen nicht gehört
- Respektieren Sie Ratenbegrenzungen und missbrauchen Sie weder den Dienst noch vorgelagerte Datenquellen
- Halten Sie alle geltenden Gesetze und Vorschriften in Ihrer Rechtsordnung ein
- Nutzen Sie die Daten verantwortungsvoll und verwenden Sie Ergebnisse nicht ohne koordinierte Offenlegung als Waffe
- Verstehen Sie, dass das Abfragen eines Hosts keine Berechtigung zum Zugriff oder zur Ausnutzung erteilt

**Haftungsausschluss:**
Der Autor und die Mitwirkenden übernehmen keine Haftung für den Missbrauch dieses Tools. Die Nutzer sind allein dafür verantwortlich, dass ihre Aktivitäten mit den geltenden Gesetzen übereinstimmen. Daten aus öffentlichen Quellen können unvollständig, veraltet oder ungenau sein — überprüfen Sie Ergebnisse stets über maßgebliche Kanäle, bevor Sie Maßnahmen ergreifen.

Wenn Sie über SeekYou eine Schwachstelle entdecken, befolgen Sie die Praxis verantwortungsvoller Offenlegung und benachrichtigen Sie die betroffene Partei, bevor Sie sie öffentlich bekannt geben.

---

## Verwandte Tools

SeekYou ist Teil eines datenschutzorientierten Sicherheits-Toolkits. Entdecken Sie die gesamte Suite:

| Tool | Beschreibung | Live-URL |
|---|---|---|
| **TimeSeal** | Kryptografischer Zeitstempeldienst — Existenz eines Dokuments zu einem bestimmten Zeitpunkt nachweisen, ohne den Inhalt preiszugeben | [timeseal.online](https://timeseal.online) |
| **SanctumVault** | Zero-Knowledge-verschlüsselter Tresor — clientseitige Verschlüsselung für die Speicherung sensibler Daten | [sanctumvault.online](https://sanctumvault.online) |
| **GhostChat** | Ephemere verschlüsselte Nachrichten — selbstzerstörende Konversationen ohne Server-Logs | [ghost-chat.pages.dev](https://ghost-chat.pages.dev) |
| **XMRProof** | Monero-Zahlungsverifizierung — kryptografische Nachweise für XMR-Transaktionen erzeugen | [xmrproof.pages.dev](https://xmrproof.pages.dev) |
| **GhostReceipt** | Anonyme Belegerstellung — verifizierbare Transaktionsdatensätze ohne Preisgabe der Identität erstellen | [ghostreceipt.pages.dev](https://ghostreceipt.pages.dev) |
| **SeekYou** | Host-Intelligence-Aggregator — vereinheitlichte OSINT-Daten aus 15 Quellen für IPs, Domains und ASNs | [seekyou.seekyou.workers.dev](https://seekyou.seekyou.workers.dev) |
| **HoneypotScan** | Honeypot-Erkennungsdienst — Täuschsysteme identifizieren und Fehlalarme in der Sicherheitsforschung vermeiden | [honeypotscan.pages.dev](https://honeypotscan.pages.dev) |

Alle Tools laufen im Edge-Netzwerk von Cloudflare mit Datenschutz als oberstem Designprinzip.

---

## Architekturübersicht```
Browser / curl
     │
     ▼
┌─────────────────────────────────────┐
│  Cloudflare Pages                   │
│  Next.js App Router (SSR)           │
│                                     │
│  app/page.tsx          search form  │
│  app/host/[query]/page.tsx          │
│    └─ streams /api/stream?q=…       │
│  app/api/recent/route.ts            │
│    └─ recent searches for homepage  │
│  app/targets/page.tsx               │
│    └─ monitoring dashboard          │
│  app/api/targets/route.ts           │
│    └─ saved targets CRUD            │
│        returns riskScore + lastDiff │
└──────────────┬──────────────────────┘
               │
               ▼
┌─────────────────────────────────────┐
│  app/api/lookup/route.ts            │
│  (Workers runtime via opennextjs)   │
│  • input validation                 │
│  • per-IP rate limiting (KV)        │
│  • ctx.waitUntil(recordSearch())    │
└──────────────┬──────────────────────┘
               │ runLookup()
               ▼
┌─────────────────────────────────────┐
│  worker/lookup.ts  — orchestrator   │
│  4-layer Promise.allSettled         │
└──┬──────────────────────────────────┘
   │
   ├─► Layer 1+2 (parallel, 12 sources):
   │     InternetDB · IPinfo · RIPE stat · RDAP · crt.sh · HackerTarget · Robtex
   │     URLhaus · ThreatFox · MalwareBazaar · Feodo · SSLBL
   ├─► Layer 3 (after L1): NVD CVE enrichment (only if vulns found, batched 10-at-a-time)
   └─► Layer 4 (parallel): GrayHatWarfare · Wayback (domain queries only)
               │
               ▼
┌──────────────────────┐   ┌──────────────────────┐
│ D1                   │   │ KV                   │
│ source response cache│   │ rate limiting        │
│ (TTL per source)     │   │ circuit breakers     │
│ searches             │   │ concurrency counters │
│ saved_targets        │   │                      │
└──────────────────────┘   └──────────────────────┘
               │
               ▼
┌─────────────────────────────────────┐
│  seekyou-cron (Worker)            │
│  wrangler.cron.toml                 │
│  • hourly blocklist refresh         │
│  • hourly saved-target re-query     │
│    + typed diff (lib/diff.ts)       │
│    + webhook on hasChanges          │
└─────────────────────────────────────┘

Ausführungsmodell

Schichten 1 und 2 werden gleichzeitig ausgelöst (12 Quellen in einem Promise.allSettled). Schicht 3 beginnt, nachdem Schicht 1 abgeschlossen ist – CVE-IDs aus InternetDB steuern die NVD-Anreicherung, die in Stapeln von 10 verarbeitet wird, um die API nicht zu überlasten. Schicht 4 läuft parallel zu Schicht 3, jedoch nur für Domain-Abfragen; IP/ASN überspringen sie vollständig. Die gesamte Wanduhrzeit beträgt ≈ max(Schicht 1+2) + max(Schicht 3+4).

Erzwinge mit ?refresh=1 eine Aktualisierung jeder Abfrage, um den D1-Cache zu umgehen und Live-Daten von jedem Upstream abzurufen.


Datenquellen

Feodo und SSLBL werden als Bulk-Blocklisten abgerufen und stündlich vom Cron-Worker aktualisiert — kein Upstream-Aufruf pro Abfrage.


Projektstruktur```

SeekYou/ ├── app/ │ ├── page.tsx # Homepage — search form + recent searches │ ├── layout.tsx # Root layout │ ├── globals.css │ ├── about/ # About page │ ├── faq/ # FAQ page │ ├── targets/ │ │ └── page.tsx # /targets — monitoring dashboard (risk + diffs) │ ├── host/[query]/ │ │ └── page.tsx # SSR host report page (streams via /api/stream) │ ├── api/ │ │ ├── lookup/route.ts # GET /api/lookup?q=&refresh=1 │ │ ├── stream/route.ts # GET /api/stream?q= (SSE streaming) │ │ ├── recent/route.ts # GET /api/recent?limit=5 │ │ ├── batch/route.ts # POST /api/batch (multi-query) │ │ ├── targets/route.ts # GET /api/targets (+ riskScore, lastDiff) · POST │ │ ├── targets/[id]/route.ts # DELETE /api/targets/:id │ │ └── admin/reset-breaker/ # POST — manual circuit-breaker reset │ └── components/ │ ├── AnimatedTagline.tsx │ ├── Card.tsx │ ├── CopyButton.tsx │ ├── CveDrawer.tsx │ ├── DecryptedText.tsx │ ├── ExportButton.tsx # JSON export (client, zero backend) │ ├── Footer.tsx │ ├── RecentSearches.tsx # Recent queries from D1 (client) │ ├── RiskBadge.tsx # Risk score pill with breakdown tooltip │ ├── SaveButton.tsx # Save/unsave target │ ├── ScrollProgress.tsx │ ├── ShareButton.tsx │ ├── VulnsStream.tsx # Streaming CVE results │ └── ui/ # Shared UI primitives ├── worker/ │ ├── lookup.ts # 4-layer orchestrator │ ├── cron.ts # Hourly blocklist refresh + target sweep w/ typed diff │ ├── index.ts │ └── sources/ │ ├── internetdb.ts │ ├── ipapi.ts │ ├── bgpview.ts │ ├── rdap.ts │ ├── crtsh.ts │ ├── passivedns.ts │ ├── robtex.ts │ ├── abusech.ts # URLhaus + ThreatFox + MalwareBazaar │ ├── nvd.ts # NVD + CIRCL CVE enrichment │ ├── osv.ts # OSV.dev re-export (via nvd.ts) │ ├── grayhatwarfare.ts │ └── wayback.ts ├── lib/ │ ├── types.ts # All TypeScript interfaces │ ├── cache.ts # D1 cache wrapper (cacheGet/cachePut, bypass on forceRefresh) │ ├── config.ts # All magic numbers: TTLs, timeouts, limits │ ├── diff.ts # TargetDiff — typed change detection between snapshots │ ├── errors.ts # Unified error format + ErrorCode enum │ ├── hooks.ts # Shared React hooks │ ├── keyring.ts # GHW 18-key rotation │ ├── logger.ts # Structured logging │ ├── merge.ts # Result merging │ ├── normalize.ts # Threat indicator normalization │ ├── ratelimit.ts # KV-based per-IP rate limiter + circuit breakers │ ├── results.ts # SourceResult helpers │ ├── risk.ts # computeRiskScore — scored 0–100 with breakdown │ ├── searches.ts # D1 helpers: recordSearch, getRecentSearches │ ├── targets.ts # D1 helpers: saveTarget, listTargets, removeTarget │ ├── textAnimation.ts # Text animation utility │ ├── useHostStream.ts # SSE streaming hook for host results │ ├── validate.ts # Query parsing (IPv4/v6/domain/ASN) │ └── utils.ts ├── test/ │ ├── cache.test.ts │ ├── diff.test.ts # Tests for diffHostResults + summariseDiff │ ├── keyring.test.ts │ ├── logger.test.ts │ ├── merge.test.ts │ ├── normalize.test.ts │ ├── results.test.ts │ ├── risk.test.ts │ ├── validate.test.ts │ └── sources/ ├── docs/ │ ├── ROADMAP.md │ ├── Spec.md │ └── LICENSE.md ├── public/ │ └── publiceth.svg # Donation QR code ├── schema.sql # D1 schema (apply with wrangler d1 execute) ├── wrangler.toml # Pages build config (KV + D1 bindings) ├── wrangler.cron.toml # Cron worker config (separate deploy) ├── next.config.ts ├── open-next.config.ts └── vitest.config.ts

root@kitploit:~
---

## Zentrale Designentscheidungen

### Edge-first, ohne Node.js
Workers-Runtime über `@opennextjs/cloudflare` — kein `runtime = 'edge'`-Export erforderlich. Durchgängig reine Web-APIs. Kalte Starts unter 50 ms weltweit.

### Mehrschichtige parallele Ausführung
Ebene 1+2 feuern gemeinsam (12 Quellen). Ebene 3 (CVE-Anreicherung) läuft nur, wenn InternetDB Schwachstellen findet, in Batches von 10. Ebene 4 (GHW + Wayback) läuft parallel zu Ebene 3, wird aber bei IP/ASN-Abfragen vollständig übersprungen. Gesamtzeit ≈ langsamste Quelle pro Welle, nicht die Summe aller Quellen.

### Sanfte Degradierung
Jede Quelle ist in einen Circuit Breaker + try/catch eingebettet. Eine fehlgeschlagene Quelle wird zu einem `{ status: 'error' }`-Badge. Die Seite wird immer gerendert.

### Aufgeteilte D1- + KV-Speicherung
Die Antwort-Caches der Quellen liegen in **D1** (nicht KV) — Werte werden einmal geschrieben, gelegentlich gelesen und sind groß genug, dass sich die Kosten des KV-Schreibkontingents schnell summieren. **KV** ist ausschließlich für Hot-Path-Zähler reserviert: Rate Limiting, Circuit Breaker und die Verfolgung gleichzeitiger In-Flight-Anfragen. Jede Quelle hat ihre eigene TTL (30 Tage für CVEs, 24h für BGP/RDAP, 1h für Kern-Geo-/Portdaten, 30m für abuse.ch). `?refresh=1` leitet `forceRefresh: true` durch jeden Fetcher, um den D1-Cache bei Bedarf zu umgehen.

### Free-Tier-Optimierung
GrayHatWarfare verfügt über eine 18-Key-Rotation (1.800 Anfragen/Tag). NVD nutzt Request-Batching (max. 10 gleichzeitig). Feodo/SSLBL werden vom Cron-Worker als Sammellisten abgerufen und in KV zwischengespeichert — null Upstream-Kosten pro Abfrage.

### Fire-and-forget-D1-Schreibvorgänge
`recordSearch()` wird innerhalb von `ctx.waitUntil()` aufgerufen — es fügt der API-Antwort keinerlei Latenz hinzu. Die D1-Schreibvorgänge erfolgen, nachdem die Antwort gesendet wurde.

---

## Caching-Strategie

Quellantworten werden in **D1** zwischengespeichert, wobei eine manuelle TTL über eine `expires_at`-Spalte erzwungen wird. KV wird nicht für das Zwischenspeichern von Antworten verwendet — es ist für Rate Limiting, Circuit Breaker und In-Flight-Concurrency-Zähler reserviert, bei denen es auf atomare Inkremente mit geringer Latenz ankommt.```typescript
// lib/cache.ts
export async function cacheGet<T>(
  db: D1Database,
  key: string,
  bypass?: boolean,        // true when ?refresh=1
): Promise<T | null>

export async function cachePut<T>(
  db: D1Database,
  key: string,
  value: T,
  ttl: number,             // seconds
): Promise<void>

Cache-Schlüssel folgen dem Muster source:normalised_query — z. B. internetdb:1.1.1.1, crtsh:example.com.

TTLs nach Quelle (aus lib/cache.ts):

Fehler werden nie gecacht — ein fehlgeschlagener Abruf wird bei der nächsten Anfrage immer erneut versucht. Abgelaufene Zeilen werden als Miss zurückgegeben und lazy überschrieben; eine Hintergrundbereinigung ist nicht erforderlich.


Rate-Limiting

KV-basiertes gleitendes Fenster: 100 Anfragen pro IP pro Stunde. Implementiert in lib/ratelimit.ts, durchgesetzt in app/api/lookup/route.ts, bevor eine Suche ausgeführt wird.

Rate-Limit-Header werden bei jeder Antwort zurückgegeben:``` X-RateLimit-Limit: 100 X-RateLimit-Remaining: 87 X-RateLimit-Reset: 1716912000

root@kitploit:~
Bei Erschöpfung gibt die API `429` mit `Retry-After` zurück.

---

## Circuit Breaker

Jede Quelle besitzt einen Circuit Breaker, der in KV nachverfolgt wird. Überschreitet eine Quelle **50 % Fehlerquote** in einem 5-Minuten-Fenster (mindestens 4 Anfragen), öffnet der Breaker und die Quelle wird für **15 Minuten** übersprungen (gibt `{ status: 'skipped' }` zurück) und erholt sich dann automatisch.

Der aktuelle Zustand jedes Breakers ist in `meta.circuitBreakers` auf jeder API-Antwort enthalten.

Um einen Breaker in der Produktion manuell zurückzusetzen:```bash
curl -X POST https://seekyou.seekyou.workers.dev/api/admin/reset-breaker \
  -H "Authorization: Bearer $ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"source": "nvd"}'

Schlüsselrotation — GrayHatWarfare

GrayHatWarfare erlaubt 100 Anfragen/Tag pro API-Schlüssel. SeekYou rotiert über bis zu 18 Schlüssel für effektiv 1.800 Anfragen/Tag:```typescript // lib/keyring.ts — round-robin across keys with remaining quota const key = await keyRing.next(env, 'GRAYHATWARFARE_API_KEY')

root@kitploit:~
Die Schlüssel tragen die Namen `GRAYHATWARFARE_API_KEY_1` bis `GRAYHATWARFARE_API_KEY_18` und werden als Wrangler-Secrets gespeichert.

---

## D1-Persistenz

### Schema (`schema.sql`)```sql
CREATE TABLE IF NOT EXISTS searches (
  id          TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(8)))),
  query       TEXT NOT NULL,
  query_type  TEXT NOT NULL CHECK (query_type IN ('ip','domain','asn')),
  result_json TEXT NOT NULL,
  duration_ms INTEGER,
  created_at  INTEGER NOT NULL DEFAULT (unixepoch())
);

CREATE INDEX IF NOT EXISTS idx_searches_query
  ON searches (query, created_at DESC);

CREATE TABLE IF NOT EXISTS saved_targets (
  id          TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(8)))),
  query       TEXT NOT NULL UNIQUE,
  label       TEXT,
  notes       TEXT,
  result_json TEXT,       -- snapshot of last cron lookup
  checked_at  INTEGER,    -- unix seconds — when cron last re-queried
  created_at  INTEGER NOT NULL DEFAULT (unixepoch())
);

CREATE INDEX IF NOT EXISTS idx_saved_targets_created
  ON saved_targets (created_at DESC);

Schema anwenden```bash

wrangler d1 execute seekyou --file=schema.sql

root@kitploit:~
### Hilfsfunktionen

**`lib/searches.ts`** — Suchverlauf:```typescript
// Write a search row (fire-and-forget safe)
await recordSearch(db, query, queryType, resultJson, durationMs)

// Read last N distinct queries for the homepage (default 5)
const recent = await getRecentSearches(db, 5)
// → [{ query: '1.1.1.1', query_type: 'ip', created_at: 1716912000 }, ...]

lib/targets.ts — gespeicherte Ziele:```typescript // Upsert a target (idempotent on query) const id = await saveTarget(db, query, label, notes)

// List all saved targets const targets = await listTargets(db)

// Remove by id await removeTarget(db, id)

// Fetch one (used by cron before re-querying) const target = await getTarget(db, id)

// Write latest snapshot after cron re-query await updateTargetSnapshot(db, id, resultJson)

root@kitploit:~
---

## Cron-Worker

Ein eigenständiger Worker (`worker/cron.ts`) wird separat über `wrangler.cron.toml` bereitgestellt. Er läuft über einen **stündlichen Trigger** und führt zwei Aufgaben aus:

1. **Blocklisten-Aktualisierung** — prüft, ob die Feodo/SSLBL-Bulk-Listen veraltet sind, und lädt sie bei Bedarf erneut herunter.
2. **Sweep gespeicherter Ziele** — fragt jedes gespeicherte Ziel erneut ab, berechnet eine typisierte `TargetDiff`, persistiert den aktuellen Snapshot in D1 und sendet bei erkannten Änderungen eine Webhook-Payload per POST.

### Typisierter Diff (`lib/diff.ts`)

Nach jeder erneuten Abfrage erzeugt `diffHostResults(prev, next)` eine strukturierte `TargetDiff`, die Folgendes abdeckt:

| Signal | Was er erkennt |
|---|---|
| `ports` | Geöffnete / geschlossene Ports (Richtung pro Port) |
| `cves` | Erschienene / behobene CVEs, mit CVSS-Schweregrad und -Score |
| `threats` | Änderungen bei URLhaus-, Feodo-, SSLBL- und ThreatFox-Feeds |
| `geo` | Änderungen bei Land, ASN oder primärem Hostnamen |
| `certExpiry` | Zertifikate, die innerhalb von 30 Tagen ablaufen oder neu abgelaufen sind (wird pro Zertifikat einmal ausgelöst) |
| `risk` | Delta des Risiko-Scores — erscheint in `hasChanges` nur bei Δ ≥ 5 Punkten |

`summariseDiff(diff, query)` wandelt die Struktur in einen für Menschen lesbaren String für Logs und Webhook-Relay um.

### Webhook-Payload

Wenn `diff.hasChanges` wahr ist und `WEBHOOK_URL` gesetzt ist, sendet der Cron per POST:```json
{
  "sentAt": 1716912000,
  "events": [
    {
      "targetId": "abc123",
      "query": "1.2.3.4",
      "checkedAt": 1716912000,
      "summary": "1.2.3.4:\n  port 3389 opened\n  CVE-2021-44228 appeared [CRITICAL 10]",
      "diff": {
        "diffedAt": 1716912000,
        "hasChanges": true,
        "ports": [{ "port": 3389, "direction": "opened" }],
        "cves": [{ "id": "CVE-2021-44228", "direction": "appeared", "severity": "CRITICAL", "score": 10 }],
        "threats": [],
        "geo": [],
        "certExpiry": [],
        "risk": { "prev": 20, "next": 55, "delta": 35 }
      }
    }
  ]
}

Das diff-Feld ist vollständig strukturiert — Konsumenten können auf bestimmte Änderungstypen verzweigen, ohne Zeichenfolgen zu parsen. Das summary-Feld ist für Slack/Discord-Relays vorformatiert.

Stelle den Cron-Worker bereit:```bash wrangler deploy --config wrangler.cron.toml

root@kitploit:~
Geheimnisse für den Cron-Worker werden separat festgelegt:```bash
wrangler secret put NVD_KEY     --config wrangler.cron.toml
wrangler secret put ABUSECH_KEY --config wrangler.cron.toml
wrangler secret put WEBHOOK_URL --config wrangler.cron.toml  # optional — fires on any hasChanges

Entwicklungs-Setup

Voraussetzungen

  • Node.js 18+
  • Wrangler CLI (npm i -g wrangler)
  • Cloudflare-Konto (kostenloser Tarif ist ausreichend)

Lokale Entwicklung```bash

git clone https://github.com/Teycir/SeekYou cd SeekYou npm install

Copy example env — fill in your keys

cp .env.example .env

Run Next.js dev server (KV/D1 stubbed via Wrangler local)

npm run dev

root@kitploit:~
Die App ist unter `http://localhost:3000` verfügbar. In der lokalen Entwicklung nutzen KV und D1 Wranglers lokale SQLite-basierte Emulation — für grundlegende Tests ist kein Zugriff auf ein Cloudflare-Konto erforderlich.

### Cloudflare-Ressourcen erstellen (zum ersten Mal)```bash
# Create KV namespace — copy the ID into wrangler.toml
wrangler kv namespace create KV

# Create D1 database — copy the ID into wrangler.toml
wrangler d1 create seekyou

# Apply schema
wrangler d1 execute seekyou --file=schema.sql

Deployment

Build und Deployment```bash

Build + deploy to Cloudflare Pages

bash scripts/deploy.sh

root@kitploit:~
Das Skript führt `opennextjs-cloudflare build` aus, bereitet das Pages-Ausgabeverzeichnis vor und ruft `wrangler pages deploy .open-next` auf. Verwende **nicht** `npm run deploy` oder das bloße `wrangler deploy` — diese zielen auf die Workers-Laufzeit (nicht Pages) ab und werden fehlschlagen.

Um den Cron-Worker separat bereitzustellen:```bash
wrangler deploy --config wrangler.cron.toml

Wrangler-Konfiguration (wrangler.toml)```toml

name = "seekyou" pages_build_output_dir = ".open-next" compatibility_date = "2025-05-01" compatibility_flags = ["nodejs_compat"]

[[kv_namespaces]] binding = "KV" id = ""

[[d1_databases]] binding = "DB" database_name = "seekyou" database_id = ""

root@kitploit:~
---

## Secrets und Umgebungsvariablen

Alle Secrets werden als Wrangler-Secrets gespeichert — niemals im Quellcode oder in `.env`.

### Erforderliche Secrets```bash
wrangler secret put NVD_KEY             # NVD API key (optional — higher rate limits)
wrangler secret put ABUSECH_KEY         # abuse.ch API key (URLhaus/ThreatFox/MalwareBazaar)
wrangler secret put ADMIN_TOKEN         # Bearer token for /api/admin/* endpoints

# GrayHatWarfare — repeat for each key you have (1–18)
wrangler secret put GRAYHATWARFARE_API_KEY_1
wrangler secret put GRAYHATWARFARE_API_KEY_2
# ... up to GRAYHATWARFARE_API_KEY_18

.env.example (nur für lokale Entwicklung)```bash

NVD_KEY=your_nvd_key_here ABUSECH_KEY=your_abusech_key_here ADMIN_TOKEN=change_me GRAYHATWARFARE_API_KEY_1=your_ghw_key_here

root@kitploit:~
> **Sicherheitshinweis:** Committen Sie niemals `.env`. Es steht in `.gitignore`. Falls Geheimnisse jemals committet wurden, rotieren Sie alle Schlüssel und bereinigen Sie den Git-Verlauf mit BFG (`bfg --delete-files .env`).

---

## License

**Business Source License 1.1 (BSL)**

Copyright © 2026 Teycir Ben Soltane <[email protected]>

Erlaubt: persönliche Nutzung, Forschung, Bildung, nicht-kommerzielle Projekte, interne Geschäftswerkzeuge.  
Eingeschränkt: kommerzielle SaaS-Angebote, Weiterverkauf als Dienstleistung, konkurrierende Produkte.

Nach 4 Jahren ab dem Veröffentlichungsdatum wird diese Software unter Apache 2.0 lizenziert.

Vollständige Bedingungen finden Sie unter [docs/LICENSE.md](https://github.com/teycir/seekyou/blob/master/docs/LICENSE.md).

---

## Autor

**Teycir Ben Soltane**  
E-Mail: [email protected]  
GitHub: [@Teycir](https://github.com/Teycir)

---

## Danksagungen

- [InternetDB](https://internetdb.shodan.io) (Shodan)
- [IPinfo](https://ipinfo.io)
- [RIPE stat](https://stat.ripe.net)
- [RDAP](https://rdap.org)
- [crt.sh](https://crt.sh)
- [HackerTarget](https://hackertarget.com)
- [Robtex](https://www.robtex.com)
- [abuse.ch](https://abuse.ch) — URLhaus, ThreatFox, MalwareBazaar, Feodo, SSLBL
- [NVD](https://nvd.nist.gov) (NIST)
- [CIRCL](https://www.circl.lu/services/cve-search/)
- [OSV.dev](https://osv.dev)
- [GrayHatWarfare](https://grayhatwarfare.com)
- [Internet Archive](https://web.archive.org) (Wayback Machine)

---

## 🌐 Verwandte Projekte

Entdecken Sie weitere datenschutzorientierte und Sicherheitswerkzeuge:

### Datenschutz & Verschlüsselung
- **[Timeseal](https://github.com/Teycir/Timeseal)** - Zeitgesteuerter Verschlüsselungstresor mit Dead-Man-Switch. AES-256-Split-Key-Kryptografie, ephemere Siegel.
- **[Sanctum](https://github.com/Teycir/Sanctum)** - Zero-Trust-Verschlüsselungstresor mit kryptografischer glaubhafter Abstreitbarkeit. XChaCha20-Poly1305, Argon2id.
- **[GhostChat](https://github.com/Teycir/GhostChat)** - Echter P2P-verschlüsselter Chat über WebRTC. Keine Server, keine Speicherung, selbstzerstörende Nachrichten.
- **[xmrproof](https://github.com/Teycir/xmrproof)** - Monero-Zahlungsverifizierung, 100 % clientseitig.
- **[GhostReceipt](https://github.com/Teycir/GhostReceipt)** - Anonyme Belegerstellung mit Zero-Knowledge-Beweisen.

### Sicherheitswerkzeuge
- **[BurpAPISecuritySuite](https://github.com/Teycir/BurpAPISecuritySuite)** - Burp-Suite-Erweiterung für API-Sicherheitstests. 15 Angriffstypen, 108+ Payloads, BOLA/IDOR-Erkennung.
- **[Mcpwn](https://github.com/Teycir/Mcpwn)** - Automatisierter Sicherheitsscanner für Model-Context-Protocol-Server. Erkennt RCE, Path Traversal, Prompt Injection.
- **[DiffCatcher](https://github.com/Teycir/DiffCatcher)** - Git-Repository-Erkennung, Diff-Erfassung, Extraktion von Code-Elementen.
- **[HoneypotScan](https://github.com/Teycir/HoneypotScan)** - Honeypot-Erkennungsdienst für die Sicherheitsforschung.
- **[CheckAPI](https://github.com/Teycir/CheckAPI)** - LLM-API-Schlüsselvalidator für mehrere Anbieter. Datenschutzorientierte, clientseitige Validierung.

### MCP-Sicherheitsserver
- **[burp-mcp-server](https://github.com/Teycir/burp-mcp-server)** - MCP-Server für Burp Suite Professional. Schwachstellenscanning über KI-Assistenten.
- **[nuclei-mcp](https://github.com/Teycir/nuclei-mcp)** - MCP-Server für Nuclei. Multi-Ziel-Scanning, Schweregradfilterung.
- **[nmap-mcp](https://github.com/Teycir/nmap-mcp)** - MCP-Server für Nmap. Stealth-Aufklärung, Schwachstellen-/NSE-Scanning.
- **[frida-mcp](https://github.com/Teycir/frida-mcp)** - MCP-Server für Frida. Dynamische Instrumentierung, SSL-Pinning-Bypass.

---

## 💼 Angebotene Dienstleistungen

- 🔒 **Datenschutzorientierte Entwicklung** - P2P-Anwendungen, verschlüsselte Kommunikation, Zero-Knowledge-Systeme
- 🚀 **Webanwendungsentwicklung** - Full-Stack-Entwicklung mit Next.js, React, TypeScript
- 🔧 **Edge-Computing-Lösungen** - Cloudflare Workers, Pages, D1, KV, Durable Objects
- 🛡️ **Entwicklung von Sicherheitswerkzeugen** - Burp-Erweiterungen, Penetrationstest-Werkzeuge, Automatisierungs-Frameworks
- 🤖 **KI-Integration** - LLM-gestützte Anwendungen, intelligente Automatisierung, individuelle KI-Lösungen
- 🔍 **OSINT & Threat Intelligence** - Maßgeschneiderte Aufklärungswerkzeuge, Aggregation von Threat-Feeds, IOC-Korrelation

**Kontakt aufnehmen**: [teycirbensoltane.tn](https://teycirbensoltane.tn) | Verfügbar für Freelance-Projekte und Beratung

---

<div align="center">

**Mit 💚 erstellt von [Teycir Ben Soltane](https://teycirbensoltane.tn)**

</div>
Tool herunterladen
SchichtQuelleWas geliefert wirdAuth erforderlich
1InternetDBOffene Ports, CPEs, CVE-IDsNein
1IPinfoGeo, ISP, ASN, Anycast-FlagNein
1RIPE statBGP-Präfixe, ASN-Inhaber, RIRNein
1RDAPRegistrierung, Kontakte, Nameserver, CIDRNein
2crt.shZertifikatsverlauf, SANs, AusstellerketteNein
2HackerTargetPassives DNS — Reverse-IP- und HostsucheNein
2RobtexReverse-/Forward-DNS, AS-InformationenNein
2URLhausMalware-Verteilungs-URLsABUSECH_KEY
2ThreatFoxIOC-DatenbankABUSECH_KEY
2MalwareBazaarMetadaten von Malware-BeispielenABUSECH_KEY
2Feodo TrackerBotnet-C2-IPsNein (Bulk-Download)
2SSLBLSchädliche SSL-ZertifikateNein (Bulk-Download)
3NVD + CIRCLCVE-Details, CVSS-v2/v3-ScoresNVD_KEY (optional)
4GrayHatWarfareOffengelegte S3/Azure/GCS-BucketsGRAYHATWARFARE_API_KEY_1..18
4WaybackHistorische CDX-SnapshotsNein
Quelle(n)TTL
CVE (NVD/CIRCL)30 Tage
Wayback7 Tage
BGP, RDAP, Robtex24 Stunden
crt.sh, HackerTarget passive DNS12 Stunden
GrayHatWarfare6 Stunden
InternetDB, IPinfo1 Stunde
Feodo, SSLBL (bulk)1 Stunde
URLhaus, ThreatFox, MalwareBazaar30 Minuten