
puncia v0.36
Panthera(P.)uncia - أداة CLI الرسمية لـ Subdomain Center و Exploit Observer.
Panthera(P.)uncia
أداة CLI الرسمية لـ Subdomain Center و Exploit Observer
Puncia هو عميل سطر الأوامر الرسمي لواجهتي برمجة استخبارات A.R.P. Syndicate — وجّهه نحو نطاق أو علامة تجارية أو معرّف ثغرة واحصل على JSON منظّم في ثوانٍ، دون الحاجة إلى متصفح:
- 🕸️ Subdomain Center — تعداد النطاقات الفرعية، وكشف الاستيلاء على النطاقات الفرعية، واكتشاف الظل الرقمي (Shadow IT)، وكشف انتحال العلامة التجارية / النطاقات المشابهة (typosquat) على نطاق الإنترنت.
- 💥 Exploit Observer — استخبارات الاستغلال والثغرات عبر أكثر من 150 مخطط معرّف (CVE، GHSA، EDB، MSF، ZDI، تغذيات الدول القومية وغيرها)، مع إثراء CVE/GHSA (تقييم نضج EPSS + VEDAS) وفحص SBOM.
$ 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
يرجى ملاحظة أنه على الرغم من أن هذه النتائج قد تكون غير دقيقة وغير موثوقة في بعض الأحيان، إلا أنها قد تختلف كثيرًا من وقت لآخر نظرًا لقدراتها على التحسين الذاتي.
يمكن تجنّب حدود المعدّل الصارمة باستخدام مفتاح API: https://www.arpsyndicate.io/pricing.html
التطبيقات العملية
- كشف انتحال العلامة التجارية ونطاقات التصيّد
اكشف النطاقات المقلّدة والمشابهة والـ typosquat التي تستغل علامتك التجارية قبل استخدامها ضدك أو ضد عملائك. - اكتشاف الظل الرقمي وسطح الهجوم الخارجي
حدّد وراقب النطاقات الفرعية والبنية التحتية المكشوفة التي أُنشئت خارج القنوات الرسمية. - استطلاع الاستيلاء على النطاقات الفرعية
عدّد البصمة الكاملة للنطاقات الفرعية لهدف ما، وهي خطوة أولى أساسية في رصد السجلات المعلّقة أو المعرّضة للاستيلاء. - البحث المتقدّم عن الثغرات ومراقبتها
اكتشف وتتبّع التهديدات المعروفة والناشئة، بما في ذلك الثغرات الغامضة أو غير المدرجة. - الإثراء السياقي لبيانات CVE/GHSA
أضف عمقًا واستخبارات قابلة للتنفيذ (تقييم نضج EPSS + VEDAS) إلى الثغرات المعروفة لتحسين ترتيب الأولويات. - كشف الثغرات في قائمة مكوّنات البرمجيات (SBOM)
حلّل مكوّنات البرمجيات بحثًا عن استغلالات ومشكلات أمنية معروفة باستخدام بيانات SBOM المنظّمة. - التكامل السلس مع CI/CD وسير عمل استخبارات التهديدات
أتمتة جمع الاستخبارات وفحوصات الثغرات داخل خطوط تطوير أو أمن البرمجيات. - مراقبة اتجاهات استغلال الدول القومية
ابقَ متقدّمًا على التهديدات من خلال تتبّع الثغرات التي ترصدها جهات أجنبية ولكن لم تعترف بها قواعد البيانات الرئيسية بعد. - اكتشاف النطاقات الفرعية بالكلمات المفتاحية
اكشف المضيفات التي تحمل كلمة مفتاحية معيّنة عبر الإنترنت، بمعزل عن نطاق أب محدّد. - معالجة استخبارات التهديدات بالجملة
نفّذ استعلامات دفعية (نطاقات، ثغرات، إلخ) لتحليل قابل للتوسّع عبر مجموعات بيانات كبيرة أو جرد أصول المؤسسة. - الاستطلاع السلبي للفرق الحمراء
أجرِ استطلاعًا خفيًا باستخدام مصادر بيانات سلبية (دون تفاعل مباشر مع الأهداف). - جمع استخبارات المصادر المفتوحة (OSINT)
اجمع استخبارات النطاقات الفرعية والاستغلال لتعزيز تحقيقات OSINT. - دعم الامتثال وإدارة المخاطر
أثرِ بيانات الثغرات لدعم تدقيق الامتثال (مثل ISO 27001، SOC 2) بسياق أعمق.
التثبيت
- من PyPi -
pip3 install puncia - من المصدر -
pip3 install .
البدء السريع في 30 ثانية
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
الاستخدام
puncia <mode> <query> [output] [--match M] [--domain D] [--limit N] [--offset N]
[--crawl] [--api-key K] [--concurrency N]
[--timeout S] [--retries N] [--quiet]
شغّل puncia --help للحصول على المرجع الكامل. تُطبَع النتائج إلى stdout؛ أما
اللافتة وأشرطة التقدّم والتحذيرات والأخطاء فتُوجَّه جميعها إلى stderr، لذا فإن
puncia subdomain example.com > out.json يُنتج دائمًا JSON نظيفًا وصالحًا.
رموز الخروج: 0 نجاح · 1 خطأ في الطلب أو الإدخال · 2 خطأ في الاستخدام.
-
(مدفوع) خزّن مفتاح API (storekey) -
puncia storekey <api-key>- يُخزَّن في
~/.punciaبأذونات0600. ويتجاوزه$PUNCIA_API_KEY، وهو ما تريده عادةً في CI.
- يُخزَّن في
-
(مجاني جزئيًا) استعلام النطاقات، مجمّعة حسب النطاق (محرّك subdomain /
cuttlefish) -puncia subdomain <domain> <output-file>- ترقيم الصفحات (للمصادَق عليهم فقط): لا يوجد حدّ إجمالي لنتيجة
مصادَق عليها. افتراضيًا يتنقّل
subdomain/replica/keywordكل صفحة ويدمجها نيابةً عنك. مرّر--offset(مع أو بدون--limit) لجلب صفحة خام واحدة بنفسك بدلاً من ذلك، مثلاً لتنقّل قابل للاستئناف أو متدفّق:تتجاهل الطلبات المجهولة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--limit/--offsetمن جهة الخادم (دائمًا عيّنة مبعثرة تصل إلى 500 صف)؛ ويحذّر puncia بدلاً من التظاهر بأنها فعلت شيئًا. - الزحف المباشر (للمصادَق عليهم فقط): يكمّل
--crawlالنتائج المخزّنة بجولة اكتشاف مباشرة. لا يُعاد زحف نطاق معيّن فعليًا إلا مرة كل ~6 ساعات — وتحصل الطلبات داخل تلك النافذة على نتيجة الزحف المخزّنة مؤقتًا فورًا. ويُبلّغ Puncia عن النتيجة على stderr:crawl: fresh, 12 newly discovered name(s)(وكذلكpartial/cooldown/disabled).puncia subdomain bigco.com --crawl
- ترقيم الصفحات (للمصادَق عليهم فقط): لا يوجد حدّ إجمالي لنتيجة
مصادَق عليها. افتراضيًا يتنقّل
-
(مجاني جزئيًا) استعلام النطاقات المقلّدة، مجمّعة حسب العلامة التجارية (محرّك replica /
octopus) -puncia replica <domain> --match <prefix|exact|substring> <output-file> -
(مجاني جزئيًا) الاستعلام بالكلمة المفتاحية، مجمّعة حسب الكلمة المفتاحية (محرّك keyword /
ammonites) -puncia keyword <keyword> --match <exact|prefix> <output-file>- يمكنك اختياريًا حصر الكلمة المفتاحية بنطاق واحد باستخدام
--domain:puncia keyword blog --domain bandcamp.com
- يمكنك اختياريًا حصر الكلمة المفتاحية بنطاق واحد باستخدام
-
استعلام معرّفات الاستغلال والثغرات (exploit)
- (مجاني) قائمة مراقبة معرّفات الثغرات والاستغلال (^WATCHLIST_IDES) -
puncia exploit ^WATCHLIST_IDES <output-file> - (مجاني) قائمة مراقبة معرّفات الثغرات والاستغلال مع الأوصاف (^WATCHLIST_INFO) -
puncia exploit ^WATCHLIST_INFO <output-file> - (مجاني) قائمة مراقبة التقنيات المعرّضة للثغرات (^WATCHLIST_TECH) -
puncia exploit ^WATCHLIST_TECH <output-file> - (مجاني) إحصاءات الثغرات/الاستغلال المجمّعة (^STATS) -
puncia exploit ^STATS <output-file> - (مجاني) صحة الخدمة (^HEALTH) -
puncia exploit ^HEALTH <output-file> - (مجاني جزئيًا) معرّفات الثغرات المدعومة -
puncia exploit <eoidentifier> --match <substring|prefix|exact> <output-file>
- (مجاني) قائمة مراقبة معرّفات الثغرات والاستغلال (^WATCHLIST_IDES) -
-
(مجاني جزئيًا) إثراء معرّفات CVE/GHSA (enrich) -
puncia enrich <cve-id/ghsa-id> <output-file>- لا يسري
enrich=trueإلا على معرّفاتCVE-/GHSA-؛ فهو يدمج سجل الإرشاد الكامل من المصدر مع تقييم EPSS + VEDAS.
- لا يسري
-
(مدفوع) المعرّفات غير الخاصة بـ CVE حسب مجموعة VEDAS (noncve) -
puncia noncve <browser/china/russia/europe/exploitable> <output-file> -
(مجاني) صحة خدمة Subdomain Center (^HEALTH) -
puncia subdomain ^HEALTH <output-file> -
استعلامات متعددة (bulk/sbom)
- (مجاني جزئيًا) تنسيق ملف JSON للإدخال الدفعي -
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" ] } - (مجاني جزئيًا) تنسيق ملف JSON لإدخال SBOM -
puncia sbom <json-file> <output-directory>
تُزيل عمليات bulk و SBOM تكرار الاستعلامات، وتحدّ التوازي عند
--concurrency(الافتراضي 10)، وعند غياب مفتاح API — تُنظّم وتيرة الطلبات لتبقى داخل ميزانية الطبقة المجانية تلقائيًا. - (مجاني جزئيًا) تنسيق ملف JSON للإدخال الدفعي -
-
(مجاني جزئيًا) الاستيراد الخارجي
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())
ترفع حالات الفشل puncia.PunciaError؛ وتُعاد النتيجة الفارغة ({} / [])
كما هي بدلاً من معاملتها كخطأ. أعد استخدام جلسة واحدة عبر استعلامات عديدة
بتمرير session= و limiter= مشترك، تمامًا كما
يفعل process_bulk().
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}")
التطوير
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
مجموعة الاختبارات غير متصلة بالشبكة بالكامل — فهي تغطّي بناء URL، واحتواء مسار الإخراج، وتحليل SBOM، وتخطيط bulk، وتوقيت محدّد المعدّل دون لمس الشبكة، لذا من الآمن تشغيلها في أي بيئة.
إثراء CVE
إثراء GHSA
إشارات جديرة بالذكر
- 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