
puncia v0.36
Panthera(P.)uncia - Offizielles CLI-Dienstprogramm für Subdomain Center & Exploit Observer.
Panthera(P.)uncia
Offizielles CLI-Dienstprogramm für Subdomain Center & Exploit Observer
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
- 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. - Shadow-IT- & externe Angriffsflächen-Erkennung
Identifizieren und überwachen Sie exponierte Subdomains und Infrastruktur, die außerhalb offizieller Kanäle aufgesetzt wurde. - 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. - Fortgeschrittene Vulnerability-Research & -Überwachung
Entdecken und verfolgen Sie bekannte und aufkommende Bedrohungen, einschließlich obskurer oder nicht gelisteter Schwachstellen. - 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. - Schwachstellenerkennung in Software Bill of Materials (SBOM)
Analysieren Sie Softwarekomponenten mithilfe strukturierter SBOM-Daten auf bekannte Exploits und Sicherheitsprobleme. - Nahtlose Integration in CI/CD- & Threat-Intel-Workflows
Automatisieren Sie Intelligence-Sammlung und Vulnerability-Checks innerhalb von Entwicklungs- oder Sicherheits-Pipelines. - Ü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. - Keyword-basierte Subdomain-Erkennung
Decken Sie Hosts mit einem bestimmten Keyword im gesamten Internet auf, unabhängig von einer bestimmten übergeordneten Domain. - 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. - Passive Aufklärung für Red Teams
Führen Sie stealthy Reconnaissance durch die Nutzung passiver Datenquellen durch (keine direkte Interaktion mit Zielen). - Open Source Intelligence (OSINT)-Sammlung
Kombinieren Sie Subdomain- und Exploit-Intelligence, um OSINT-Untersuchungen zu verbessern. - 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
- Von PyPi -
pip3 install puncia - 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.
-
(KOSTENPFLICHTIG) API-Schlüssel speichern (storekey) -
puncia storekey <api-key>- Gespeichert unter
~/.punciamit0600-Berechtigungen.$PUNCIA_API_KEYüberschreibt ihn, was in CI normalerweise gewünscht ist.
- Gespeichert unter
-
(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/keywordjede 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:Anonyme Anfragen ignorierenpuncia 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--limit/--offsetserverseitig (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):
--crawlergä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)(auchpartial/cooldown/disabled).puncia subdomain bigco.com --crawl
- Paginierung (nur authentifiziert): Ein authentifiziertes Ergebnis hat keine Obergrenze. Standardmäßig durchlaufen
-
(FREEMIUM) Replica-Domains abfragen, geclustert nach Marke (replica /
octopus-Engine) -puncia replica <domain> --match <prefix|exact|substring> <output-file> -
(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
- Optional das Keyword auf eine einzelne Domain beschränken mit
-
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>
- (KOSTENLOS) Vulnerability- & Exploit-Identifier-Watchlist (^WATCHLIST_IDES) -
-
(FREEMIUM) CVE/GHSA-Identifier anreichern (enrich) -
puncia enrich <cve-id/ghsa-id> <output-file>enrich=truewirkt nur beiCVE-/GHSA--Identifiern; es führt den vollständigen Upstream-Advisory-Record mit EPSS- + VEDAS-Scoring zusammen.
-
(KOSTENPFLICHTIG) Nicht-CVE-Identifier nach VEDAS-Gruppe (noncve) -
puncia noncve <browser/china/russia/europe/exploitable> <output-file> -
(KOSTENLOS) Subdomain-Center-Service-Health (^HEALTH) -
puncia subdomain ^HEALTH <output-file> -
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. - (FREEMIUM) Bulk-Input-JSON-Dateiformat -
-
(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
- Passive Subdomain Enumeration: Uncovering More Subdomains than Subfinder & Amass
- Around 1000 exploitable cybersecurity vulnerabilities that MITRE & NIST ‘might’ have missed but China or Russia didn’t.
- Utilizing GitHub Actions for gathering Subdomain & Exploit Intelligence
- Introducing Exploit Observer — More than Shodan Exploits, Less than Vulners
- PUNCIA — The Panthera(P.)uncia of Cybersecurity
- Subdomain Enumeration Tool Face-off - 2023 Edition