
أداة استطلاع OSINT لاكتشاف الشبكات، وتعداد النطاقات الفرعية، وإثراء عناوين IP، وكشف الأسرار عبر سجلات الشهادات، وShodan، والبحث في أكواد GitHub—كل ذلك دون الحاجة إلى مفاتيح API.
Metabigor - قوة OSINT دون عناء مفاتيح API
يرسم Metabigor البنية التحتية لهدف ما دون أن يطلب منك التسجيل للحصول على مفتاح API واحد. النطاقات الشبكية، الشهادات، النطاقات ذات الصلة، المنافذ المكشوفة، موفرو CDN، وتسريبات الأكواد - كلها من مصادر مجانية، وكلها يمكن تمرير نتائجها إلى بعضها البعض.
npm install -g @j3ssie/metabigor # macOS, Linux, Windows
brew install j3ssie/tap/metabigor # macOS, Linux
كلاهما يوفّر نفس الملف الثنائي المُجهّز مسبقًا لمنصتك - دون الحاجة إلى سلسلة أدوات Go.
أو ابنِه من المصدر:
git clone https://github.com/j3ssie/metabigor.git
cd metabigor
make build # binary at ./bin/metabigor
أو حمّل ملفًا ثنائيًا من صفحة الإصدارات.
metabigor net AS13335 # network ranges behind an ASN
metabigor cert hackerone.com # subdomains from certificate logs
metabigor ip 1.1.1.1 # open ports and CVEs for an IP
metabigor related tesla.com # other domains the target owns
metabigor cdn --exclude -I ips.txt # candidate origin servers
تنطبق الاصطلاحات نفسها في كل مكان، فبمجرد أن تتعلّم أمرًا واحدًا ستعرفها كلها.
metabigor cert example.com # as an argument
metabigor cert example.com tesla.com # several arguments
metabigor cert -i example.com # with -i
metabigor cert -I domains.txt # from a file, one per line (# comments are ignored)
cat domains.txt | metabigor cert # on stdin
يمكن دمجها معًا، وتتم إزالة التكرارات من القائمة المدمجة:
metabigor cluster 1.1.1.1 -i 8.8.8.8 -I more-ips.txt
الوسائط هي أقصر طريق وتعمل على كل أمر. استخدم -i عندما قد يبدو الهدف بخلاف ذلك كخيار (flag)، أو عندما يبني سكربت الأمر نيابة عنك:
metabigor github -i "--endpoint-url"
metabigor net --input "$TARGET" -f json
تتم قراءة stdin فقط عندما لا يتم توفير هدف بأي طريقة أخرى، لذا فإن metabigor net AS13335 لا يعلق أبدًا في انتظار الإدخال داخل سكربت أو وظيفة CI.
يعمل -f/--format على كل أمر:
metabigor ip 1.1.1.0/28 # 1.1.1.1 | 80,443 | one.one.one.one
metabigor ip 1.1.1.0/28 -f flat # 1.1.1.1:80
metabigor ip 1.1.1.0/28 -f json # {"ip":"1.1.1.1","ports":[80,443],...}
metabigor ip 1.1.1.0/28 -f csv -o ports.csv
تذهب النتائج دائمًا إلى stdout والسجلات إلى stderr، لذا تبقى الأنابيب نظيفة في أي مستوى تسجيل.
يكتب -o النتائج إلى ملف أيضًا، ويستبدله ما لم تمرر --append. لا يُعاد كتابة الملف إلا عندما يكون هناك نتيجة للكتابة، لذا فإن أي تشغيل يفشل أو لا يعثر على شيء يُبقي النتائج السابقة سليمة.
metabigor net AS13335 -f flat | metabigor ip -f flat
metabigor related tesla.com -f flat | metabigor cert
cat domains.txt | dnsx -silent -resp-only | metabigor cdn --exclude
net - اكتشاف الشبكةاعثر على نطاقات CIDR الخاصة بـ ASN أو IP أو نطاق أو مؤسسة. يستخدم قاعدة البيانات غير المتصلة المرفقة.
metabigor net AS13335 # every CIDR announced by an ASN
metabigor net 1.1.1.1 --detail # which ASN owns this IP
metabigor net --org Cloudflare # search by company name
metabigor net --live tesla.com # query live sources instead of the local DB
metabigor net -I asn-list.txt -f csv -o ranges.csv
يُكتشف نوع الهدف تلقائيًا. يمكنك تجاوزه باستخدام --asn أو --ip أو --domain أو --org (خيارات متعارضة). يضيف --detail أعمدة ASN والمؤسسة والدولة.
cert - شفافية الشهاداتmetabigor cert hackerone.com # one domain per line
metabigor cert "HackerOne Inc" # search by organization
metabigor cert example.com --clean # strip the *. from wildcards
metabigor cert example.com --wildcard # only wildcard entries
metabigor cert example.com --detail # cert IDs, issuers, validity dates
metabigor cert tesla.com | dnsx -silent
ip - إثراء IP (Shodan InternetDB)metabigor ip 1.1.1.1 # ports, hostnames, CVEs
metabigor ip 1.1.1.0/28 # CIDRs expand to hosts
metabigor ip 1.1.1.0/28 -f flat # IP:PORT pairs
metabigor ip -I ips.txt -c 30 -f csv -o ports.csv
يتم تخطي عناوين IP التي لا تعرف عنها InternetDB شيئًا؛ مرر --all للاحتفاظ بها.
github - البحث في الأكواد (grep.app)metabigor github hackerone.com # repo and path per match
metabigor github tesla.com --subs # only subdomains found in matches
metabigor github "api_key=" --detail # show the matching code
metabigor github AKIA --pages 3 --detail
يتطلب Chrome أو Chromium - إذ يرد grep.app على عملاء HTTP العاديين بتحدي بوت.
تُنفَّذ عمليات البحث واحدة تلو الأخرى بغض النظر عن -c، احترامًا لحد معدل grep.app.
cluster - تجميع IPجمّع عناوين IP حسب ASN الذي يملكها، مع ترتيب أكبر التجميعات أولًا. يقبل عناوين IP أو CIDRs. يعمل دون اتصال.
cat ips.txt | metabigor cluster
metabigor cluster -I ips.txt -f csv -o clusters.csv
cat domains.txt | dnsx -silent -resp-only | metabigor cluster
related - اكتشاف النطاقات ذات الصلةmetabigor related hackerone.com # all sources
metabigor related tesla.com --sources crt
metabigor related tesla.com --sources crt,whois
المصادر: crt (crt.sh)، whois (WHOIS العكسي من viewdns.info)، analytics (معرفات Google Analytics / Tag Manager المشتركة)، أو all. تتم إزالة التكرارات من النتائج عبر المصادر، ويُوسم كل نتيجة بالمصدر الذي عثر عليها أولًا.
url - جمع URLs من أرشيفات الويبmetabigor url hackerone.com # every keyless source, subdomains included
metabigor url blog.hackerone.com --no-subs # one hostname only
metabigor url hackerone.com/reports # scope to a path prefix
metabigor url tesla.com --sources wayback,urlscan
metabigor url tesla.com --keywords '\.js(\?|$)' # JavaScript only
metabigor url tesla.com --blacklist default --no-params
metabigor url tesla.com -f flat | httpx
المصادر: wayback وcommoncrawl وotx وurlscan وghostarchive، إضافةً إلى virustotal وintelx عند ضبط مفاتيحهما. تعمل المصادر الخمسة التي لا تتطلب مفاتيح افتراضيًا؛ وينضم المصدران اللذان يتطلبان مفاتيح تلقائيًا عندما يكون VT_API_KEY / INTELX_API_KEY موجودَين في البيئة، ويزيد URLSCAN_API_KEY من حجم صفحة urlscan. تسمية مصدر يتطلب مفتاحًا دون مفتاحه تُعد خطأً وليس تخطيًا صامتًا.
يتم تضمين النطاقات الفرعية افتراضيًا - الاستعلام هو *.target وليس target. هذه هي أكبر عامل منفرد يتحكم في حجم ما يعيده التشغيل؛ و--no-subs يقلّصه.
يتم التنقيب في GhostArchive، وليس مجرد عرضه. كل صفحة مؤرشفة تمتلك أيضًا ملف WARC خام، ويسجل WARC كل طلب فرعي أرسله المتصفح أثناء التقاط الصفحة - استدعاءات XHR ونقاط نهاية JSON وعناوين URLs لسكربتات بُنيت ديناميكيًا. لا يظهر أي من ذلك في فهرس CDX، الذي يفهرس فقط لقطات عنوان URL للصفحة نفسها. في الاختبار، أعادت 8 طلبات إلى tesla.com 147 عنوان URL بما في ذلك نقاط نهاية JSON API حية. حدّ التكلفة باستخدام --limit-requests.
عوامل التصفية معطّلة افتراضيًا حتى لا يتم إسقاط أي شيء دون طلب. يتم دفع --match-status / --filter-status و--match-mime / --filter-mime و--from / --to و--keywords إلى واجهتَي Wayback وCommon Crawl من جهة الخادم ثم يُعاد فحصها محليًا؛ بينما --blacklist و--no-params محليان. يضع --limit-requests سقفًا للطلبات لكل مصدر، ويضبط --limit-collections مدى العمق في مجموعات فهرس Common Crawl البالغة ~126 مجموعة للبحث (0 يعني كل المجموعات، رجوعًا إلى 2008).
cdn - كشف CDN/WAFmetabigor cdn 1.1.1.1 # vendor and type
cat ips.txt | metabigor cdn --exclude # candidate origins
cat ips.txt | metabigor cdn --only # only protected addresses
update - تحديث قواعد البيانات المحليةmetabigor update
يُحدّث كلًا من قاعدتَي بيانات IP-to-ASN وIP-to-Country في ~/.metabigor. تأتي نسخة مع الملف الثنائي ويتم فك ضغطها عند أول استخدام، لذا لا تحتاج هذا الأمر إلا للحصول على بيانات توجيه أحدث.
skills - مهارات وكيل البرمجةيأتي Metabigor مع مهارة من agentskills.io تعلّم وكيل برمجة ذكيًا (Claude Code أو Codex أو أي وكيل متوافق) كيفية استخدام CLI. المهارة مضمّنة داخل الملف الثنائي، لذا تطابق دائمًا الإصدار المثبت لديك.
metabigor skills # list the bundled skills
metabigor skills get metabigor --full # print the skill and its references
metabigor skills install # install into .claude/skills (this project)
metabigor skills install --scope global # install into ~/.claude/skills
metabigor skills install --agent agents # install into .agents/skills for Codex
metabigor skills install --dir ./skills # install into a directory you choose
يطبع get ملف Markdown الخام إلى stdout (مرّره عبر الأنبوب، أو استخدم -o لحفظه). ينسخ install الحزمة كاملة - SKILL.md مع references/ الخاصة بها - ويتخطى أي نسخة موجودة ما لم تمرر --force. وبمجرد التثبيت، يُطلق الوكيل المهارة تلقائيًا كلما ذكرت metabigor.
-i, --input string Target to look up (also accepts arguments or stdin)
-I, --input-file string File of targets, one per line (use - for stdin)
-o, --output string Also write results to this file
-f, --format string Output format: text, json, csv, flat (default "text")
--append Append to the output file instead of overwriting it
-c, --concurrency int Number of parallel workers (default 10)
-t, --timeout int Request timeout in seconds (default 40)
--retry int Retries per failed request (default 3)
--proxy string Upstream proxy, e.g. http://127.0.0.1:8080
-v, --verbose Show step-by-step progress
-q, --quiet Show results and errors only
--debug Show HTTP traffic and internal traces (implies --verbose)
--no-color Disable colored log output
يخرج Metabigor برمز خروج غير صفري عند الفشل، لذا فهو يتكامل مع && وset -e وCI.
يعيد v3 تسمية الخيارات والأوامر من أجل الاتساق. لا توجد أسماء بديلة (aliases) - حدّث سكربتاتك.
تغييرات سلوكية تستحق المعرفة:
[verbose] تتطلب الآن -v.-o يستبدل الملف بدلًا من الإلحاق الصامت. استخدم --append للحصول على السلوك القديم.ip يطبع نصًا مقروءًا وليس JSON خام. استخدم -f json للحصول على JSON.cert يطبع قائمة نطاقات بسيطة. استخدم --detail لعرض الشهادات المجمّع.net على CIDR يُبلغ عن الشبكة المالكة بدلًا من توسيعها إلى كل مضيف.metabigor update يُحدّث قاعدتَي البيانات. كان يتخطى قاعدة بيانات الدولة سابقًا.
كان هذا المشروع جزءًا من Osmedeus Engine. اطّلع على كيفية دمجه على @OsmedeusEngine
الشعار من flaticon بواسطة freepik
هذه الأداة لأغراض تعليمية فقط. أنت مسؤول عن أفعالك. إذا أفسدت شيئًا أو خالفت أي قوانين أثناء استخدام هذا البرنامج، فهو خطؤك أنت وحدك.
صُنع Metabigor بـ ♥ بواسطة @j3ssie وهو مُصدر بموجب ترخيص MIT.
| الصيغة | ما ستحصل عليه | استخدمها من أجل |
|---|
text (الافتراضي) | أعمدة قابلة للقراءة | القراءة في الطرفية |
flat | القيمة الأساسية المجردة | تمريرها إلى أدوات أخرى |
json | كائن JSON واحد لكل سطر | jq، الأتمتة |
csv | صفوف تحت ترويسة واحدة | جداول البيانات والتقارير |
| v2 | v3 | السبب |
|---|
metabigor ipc | metabigor cluster | كان ipc غير قابل للتخمين |
-I, --inputFile | -I, --input-file | camelCase ليس اصطلاحًا في CLI |
-q, --silent | -q, --quiet | يجب أن يطابق -q صيغته الطويلة |
--json | -f json | خيار واحد يتحكم في شكل المخرجات |
ip --csv / ip --flat | -f csv / -f flat | نفسه |
cert --simple | (الآن هو الافتراضي) | --detail يفعّل العرض المفصّل |
net --dynamic | net --live | صياغة واضحة |
cdn --strip-cdn | cdn --exclude | يقترن مع --only الجديد |
related -s ua / -s gtm | --sources analytics | كلاهما كان يفعل الشيء نفسه |
related -s | -s, --sources | الآن يقبل قائمة فعلًا |
github (النطاقات الفرعية افتراضيًا) | github --subs | شكل المخرجات لم يعد يعتمد على النتائج |