Zurück zu den Updates
New releaseSep 1, 2026

puncia v0.36

Panthera(P.)uncia - Offizielles CLI-Dienstprogramm für Subdomain Center & Exploit Observer.

Teilen

Panthera(P.)uncia

Offizielles CLI-Dienstprogramm für Subdomain Center & Exploit Observer

Downloads GitHub stars

Puncia ist der offizielle Kommandozeilen-Client für zwei Intelligence-APIs von A.R.P. Syndicate — richte es auf eine Domain, eine Marke oder eine Vulnerability-ID und erhalte in Sekunden strukturiertes JSON zurück, ganz ohne Browser:

  • 🕸️ Subdomain Center — Subdomain-Enumeration, Aufdeckung von Subdomain-Takeovers, Shadow-IT-Erkennung und Markenimitation / Lookalike-Domain- (Typosquat-) Erkennung im Internet-Maßstab.
  • 💥 Exploit Observer — Exploit- & Vulnerability-Intelligence über 150+ Identifier-Schemata (CVE, GHSA, EDB, MSF, ZDI, Nation-State-Feeds und mehr), mit CVE/GHSA-Anreicherung (EPSS + VEDAS-Maturity-Scoring) und SBOM-Scanning.
$ puncia subdomain arpsyndicate.io
╭──────────────────────────────────────────────────────────────────────╮
│ Panthera(P.)uncia v0.38                                              │
│ subdomain recon · brand impersonation · exploit intel · sbom analysis│
│ A.R.P. Syndicate — https://www.arpsyndicate.io                       │
╰──────────────────────────────────────────────────────────────────────╯
[
  "advisories.arpsyndicate.io",
  "asm.arpsyndicate.io",
  "blog.arpsyndicate.io",
  ...
]

$ puncia sbom bom.json ./out
puncia ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% (128/128) 0:00:41

Bitte beachte, dass diese Ergebnisse manchmal recht ungenau & unzuverlässig sein können und aufgrund ihrer Selbstverbesserungsfähigkeiten von Zeit zu Zeit stark variieren können.

Aggressive Rate-Limits lassen sich mit einem API-Schlüssel vermeiden: https://www.arpsyndicate.io/pricing.html

Praktische Anwendungsfälle

  1. Erkennung von Markenimitation & Phishing-Domains
    Decken Sie Replica-, Lookalike- und Typosquat-Domains auf, die Ihre Marke missbrauchen, bevor sie gegen Sie oder Ihre Kunden eingesetzt werden.
  2. Shadow-IT- & externe Angriffsflächen-Erkennung
    Identifizieren und überwachen Sie exponierte Subdomains und Infrastruktur, die außerhalb offizieller Kanäle aufgesetzt wurde.
  3. Subdomain-Takeover-Aufklärung
    Enumerieren Sie den vollständigen Subdomain-Fußabdruck eines Ziels — ein entscheidender erster Schritt, um verwaiste/takeover-anfällige Records zu erkennen.
  4. Fortgeschrittene Vulnerability-Research & -Überwachung
    Entdecken und verfolgen Sie bekannte und aufkommende Bedrohungen, einschließlich obskurer oder nicht gelisteter Schwachstellen.
  5. Kontextuelle Anreicherung von CVE/GHSA-Daten
    Fügen Sie bekannten Schwachstellen Tiefe und umsetzbare Intelligence hinzu (EPSS + VEDAS-Maturity-Scores) für eine bessere Priorisierung.
  6. Schwachstellenerkennung in Software Bill of Materials (SBOM)
    Analysieren Sie Softwarekomponenten mithilfe strukturierter SBOM-Daten auf bekannte Exploits und Sicherheitsprobleme.
  7. Nahtlose Integration in CI/CD- & Threat-Intel-Workflows
    Automatisieren Sie Intelligence-Sammlung und Vulnerability-Checks innerhalb von Entwicklungs- oder Sicherheits-Pipelines.
  8. Überwachung von Nation-State-Exploit-Trends
    Bleiben Sie Bedrohungen voraus, indem Sie Schwachstellen verfolgen, die von ausländischen Akteuren markiert, aber noch nicht von Mainstream-Datenbanken erfasst wurden.
  9. Keyword-basierte Subdomain-Erkennung
    Decken Sie Hosts mit einem bestimmten Keyword im gesamten Internet auf, unabhängig von einer bestimmten übergeordneten Domain.
  10. Massenverarbeitung von Threat Intelligence
    Führen Sie Batch-Abfragen (Domains, Schwachstellen usw.) für skalierbare Analysen über große Datensätze oder Unternehmens-Asset-Inventare aus.
  11. Passive Aufklärung für Red Teams
    Führen Sie stealthy Reconnaissance durch die Nutzung passiver Datenquellen durch (keine direkte Interaktion mit Zielen).
  12. Open Source Intelligence (OSINT)-Sammlung
    Kombinieren Sie Subdomain- und Exploit-Intelligence, um OSINT-Untersuchungen zu verbessern.
  13. Unterstützung bei Compliance & Risikomanagement
    Reichern Sie Schwachstellendaten an, um Compliance-Audits (z. B. ISO 27001, SOC 2) mit tieferem Kontext zu unterstützen.

Installation

  1. Von PyPi - pip3 install puncia
  2. Aus dem Quellcode - pip3 install .

30-Sekunden-Quickstart

pip3 install puncia

# subdomain footprint of a target (shadow IT / attack surface / takeover recon)
puncia subdomain example.com

# lookalike / typosquat / brand-impersonation domains
puncia replica example.com

# what's known about a CVE
puncia exploit CVE-2021-44228

Verwendung

puncia <mode> <query> [output] [--match M] [--domain D] [--limit N] [--offset N]
                               [--crawl] [--api-key K] [--concurrency N]
                               [--timeout S] [--retries N] [--quiet]

Führen Sie puncia --help für die vollständige Referenz aus. Ergebnisse werden auf stdout ausgegeben; Banner, Fortschrittsbalken, Warnungen und Fehler gehen alle auf stderr, sodass puncia subdomain example.com > out.json immer sauberes, gültiges JSON liefert.

Exit-Codes: 0 Erfolg · 1 Anfrage- oder Eingabefehler · 2 Nutzungsfehler.

  1. (KOSTENPFLICHTIG) API-Schlüssel speichern (storekey) - puncia storekey <api-key>

    • Gespeichert unter ~/.puncia mit 0600-Berechtigungen. $PUNCIA_API_KEY überschreibt ihn, was in CI normalerweise gewünscht ist.
  2. (FREEMIUM) Domains abfragen, geclustert nach Domain (subdomain / cuttlefish-Engine) - puncia subdomain <domain> <output-file>

    • Paginierung (nur authentifiziert): Ein authentifiziertes Ergebnis hat keine Obergrenze. Standardmäßig durchlaufen subdomain/replica/keyword jede Seite und führen sie für Sie zusammen. Übergeben Sie --offset (mit oder ohne --limit), um stattdessen genau eine Rohseite selbst abzurufen, z. B. für einen fortsetzbaren oder streamenden Durchlauf:
      puncia subdomain bigco.com --limit 50000 --offset 0
      # stderr prints: note: more results available — continue with --offset 50000
      puncia subdomain bigco.com --limit 50000 --offset 50000
      
      Anonyme Anfragen ignorieren --limit/--offset serverseitig (immer eine zufällig gemischte Stichprobe von bis zu 500 Zeilen); puncia warnt, anstatt vorzutäuschen, dass sie etwas bewirkt hätten.
    • Live-Crawl (nur authentifiziert): --crawl ergänzt gespeicherte Ergebnisse um einen Live-Discovery-Durchlauf. Eine bestimmte Domain wird nur etwa alle ~6h tatsächlich neu gecrawlt — Anfragen innerhalb dieses Fensters erhalten sofort das gecachte Crawl-Ergebnis. Puncia meldet das Ergebnis auf stderr: crawl: fresh, 12 newly discovered name(s) (auch partial / cooldown / disabled).
      puncia subdomain bigco.com --crawl
      
  3. (FREEMIUM) Replica-Domains abfragen, geclustert nach Marke (replica / octopus-Engine) - puncia replica <domain> --match <prefix|exact|substring> <output-file>

  4. (FREEMIUM) Nach Keyword abfragen, geclustert nach Keyword (keyword / ammonites-Engine) - puncia keyword <keyword> --match <exact|prefix> <output-file>

    • Optional das Keyword auf eine einzelne Domain beschränken mit --domain: puncia keyword blog --domain bandcamp.com
  5. Exploit- & Vulnerability-Identifier abfragen (exploit)

    • (KOSTENLOS) Vulnerability- & Exploit-Identifier-Watchlist (^WATCHLIST_IDES) - puncia exploit ^WATCHLIST_IDES <output-file>
    • (KOSTENLOS) Vulnerability- & Exploit-Identifier-Watchlist mit Beschreibungen (^WATCHLIST_INFO) - puncia exploit ^WATCHLIST_INFO <output-file>
    • (KOSTENLOS) Watchlist verwundbarer Technologien (^WATCHLIST_TECH) - puncia exploit ^WATCHLIST_TECH <output-file>
    • (KOSTENLOS) Aggregierte Vulnerability-/Exploit-Statistiken (^STATS) - puncia exploit ^STATS <output-file>
    • (KOSTENLOS) Service-Health (^HEALTH) - puncia exploit ^HEALTH <output-file>
    • (FREEMIUM) Unterstützte Vulnerability-Identifier - puncia exploit <eoidentifier> --match <substring|prefix|exact> <output-file>
  6. (FREEMIUM) CVE/GHSA-Identifier anreichern (enrich) - puncia enrich <cve-id/ghsa-id> <output-file>

    • enrich=true wirkt nur bei CVE-/GHSA--Identifiern; es führt den vollständigen Upstream-Advisory-Record mit EPSS- + VEDAS-Scoring zusammen.
  7. (KOSTENPFLICHTIG) Nicht-CVE-Identifier nach VEDAS-Gruppe (noncve) - puncia noncve <browser/china/russia/europe/exploitable> <output-file>

  8. (KOSTENLOS) Subdomain-Center-Service-Health (^HEALTH) - puncia subdomain ^HEALTH <output-file>

  9. Mehrere Abfragen (bulk/sbom)

    • (FREEMIUM) Bulk-Input-JSON-Dateiformat - puncia bulk <json-file> <output-directory>
      {
          "subdomain": [
              "domainA.com",
              "domainB.com"
          ],
          "replica": [
              "domainA.com",
              "domainB.com"
          ],
          "keyword": [
              "keywordA",
              "keywordB"
          ],
          "exploit": [
              "eoidentifierA",
              "eoidentifierB"
          ],
          "enrich": [
              "eoidentifierA",
              "eoidentifierB"
          ]
      }
      
    • (FREEMIUM) SBOM-Input-JSON-Dateiformat - puncia sbom <json-file> <output-directory>

    Bulk- und SBOM-Läufe deduplizieren Abfragen, begrenzen die Parallelität auf --concurrency (Standard 10) und — wenn kein API-Schlüssel vorhanden ist — takten Anfragen automatisch so, dass sie innerhalb des Free-Tier-Budgets bleiben.

  10. (FREEMIUM) Externer Import

import asyncio
import puncia

async def main():
   # Without an API key (ratelimited)
   print(await puncia.query_api("exploit", "CVE-2021-3450"))
   print(await puncia.query_api("subdomain", "arpsyndicate.io"))

   # With an API key
   await puncia.store_key("ARPS-xxxxxxxxxx")
   api_key = await puncia.read_key()
   print(await puncia.query_api("subdomain", "arpsyndicate.io", apikey=api_key))
   print(await puncia.query_api("replica", "arpsyndicate.io", match="exact", apikey=api_key))
   print(await puncia.query_api("enrich", "CVE-2021-3450", apikey=api_key))
   print(await puncia.query_api("noncve", "exploitable", apikey=api_key))

   # Static endpoints (unauthenticated, unlimited)
   print(await puncia.query_api("subdomain", "^HEALTH"))
   print(await puncia.query_api("exploit", "^STATS"))

   # Live crawl, with the outcome surfaced via a callback
   await puncia.query_api(
       "subdomain", "bigco.com", apikey=api_key, crawl=True,
       on_crawl=lambda h: print("crawl status:", h.get("X-Crawl-Status")),
   )

   # Write straight to disk
   await puncia.query_api("subdomain", "arpsyndicate.io", "out.json", apikey=api_key)

asyncio.run(main())

Fehler lösen puncia.PunciaError aus; ein leeres Ergebnis ({} / []) wird unverändert zurückgegeben, anstatt als Fehler behandelt zu werden. Verwenden Sie eine Sitzung über viele Abfragen hinweg wieder, indem Sie session= und einen gemeinsamen limiter= übergeben, genau wie es process_bulk() tut.

from puncia import PunciaError, query_api

try:
    data = await query_api("exploit", "CVE-2021-3450", apikey=api_key)
except PunciaError as exc:
    print(f"lookup failed: {exc}")

Entwicklung

git clone https://github.com/ARPSyndicate/puncia && cd puncia
pip install --upgrade pip     # editable installs need pip >= 21.3
pip install -e ".[dev]"
pytest                        # 42 offline tests, no API calls or network access

Die Testsuite ist vollständig offline — sie deckt URL-Konstruktion, Output-Path-Containment, SBOM-Parsing, Bulk-Planung und Ratelimiter-Timing ab, ohne das Netzwerk zu berühren, sodass sie in jeder Umgebung sicher ausgeführt werden kann.

CVE-Anreicherung


GHSA-Anreicherung


Erwähnenswerte Nennungen

Kategorien