
استخراج عناوين URL من أرشيفات OSINT للحصول على رؤى أمنية
يستخرج عناوين URL من أرشيفات OSINT للحصول على رؤى أمنية.
Urx هي أداة سطر أوامر مصممة لجمع عناوين URL من أرشيفات OSINT، مثل Wayback Machine وCommon Crawl. بُنيت بلغة Rust لتحقيق الكفاءة، وهي تستفيد من المعالجة غير المتزامنة للاستعلام بسرعة من مصادر بيانات متعددة. تبسّط هذه الأداة عملية جمع معلومات عناوين URL لنطاق محدد، مما يوفر مجموعة بيانات شاملة يمكن استخدامها لأغراض متنوعة، بما في ذلك اختبار الأمان والتحليل.
--cdx-endpoint URL، دون الحاجة إلى تغيير الكود-H و--cookie و--user-agent على كل طلب يرسله urx إلى الهدف (--check-status، --extract-links، --extract-js-endpoints، --expand-specs) ولا تُرسَل عمدًا أبدًا إلى أي أرشيف--match-regex / --filter-regex)--meta-*): التصفية حسب تاريخ أول/آخر لقطة، ونوع MIME المسجّل، والحالة المسجّلة بشكل موحّد عبر كل مزوّد، بعد الجمعurx example.com/shop النطاق إلى استعلام CDX نفسه (url=example.com/shop*)، بحيث تكلّف شجرة فرعية من موقع كبير جزءًا بسيطًا من الفهرس الكامل بدلًا من تصفيتها من جهة العميل--scope-file): قائمة البرنامج الخاصة *.example.com / !admin.example.com تُستخدم كما هي، قابلة للتكرار ومُدمَجة، مع فوز الاستثناءات دائمًا--dedup-similar)wordlist — مقاطع المسار وأسماء المعاملات التي بُني منها الهدف، مع استبعاد المعرّفات والتجزئات والتواريخ--params (جرد معاملات الهدف بالكامل)، و--params-by-endpoint (أي نقطة نهاية تأخذ ماذا)، و--fuzz-placeholder FUZZ (عنوان URL واحد بقوالب لكل توقيع معامل، جاهز لـ ffuf أو dalfox)first_seen وlast_seen وmime وarchive_status وdigest مع كل عنوان URL أبلغ عنه أرشيف CDX، دون تكلفة شبكة إضافية--stream): تُكتب عناوين URL عند إبلاغ كل مزوّد عنها، بحيث يبدأ خط الأنابيب بالعمل فورًا بدلًا من انتظار أبطأ أرشيف--archive-body)، بحيث تُسلّم الصفحات التي لم تعد موجودة الروابط التي كانت تحتويها — طلب واحد لكل جسم مميّز، بفضل إزالة تكرار digest الخاص بـ CDX--extract-js-endpoints، استخراج JavaScript المؤرشف أيضًا: حزمة مسماة بتجزئة البناء تُرجع 404 لحظة إعادة نشر الموقع، والأرشيف هو المكان الوحيد الذي لا يزال سطح API الخاص بها موجودًا فيه--archive-body-dir) كمجموعة نصية للبحث عمّا لا يبحث عنه أي مستخرج روابط — تعليقات المطورين، وبيانات الاعتماد المضمّنة، وأسماء المضيفين الداخلية — دون طلبات إضافية--expand-specs): مستندات OpenAPI 3.x وSwagger 2.0 واستقصاء GraphQL، بصيغة JSON أو YAML، تُحوَّل إلى كل مسار تصفه — طلب واحد يشتري السطح الموثّق بالكامل--check-status أيضًا Location وContent-Length وContent-Type، ويضيف --check-title وسم HTML <title>--archived-discovery): كل نسخة مميّزة يحتفظ بها Wayback Machine، بحيث لا يزال Disallow: من عام 2015 يسمّي المسارات التي توقّف الموقع عن ذكرها منذ ذلك الحينurx cache لفحص التخزين المؤقت وصيانته: stats، list، prune، drop <domain>، clear
cargo install urx
### من Homebrew```bash
# https://formulae.brew.sh/formula/urx
brew install urx
git clone https://github.com/hahwul/urx.git cd urx cargo build --release
سيكون الملف التنفيذي المُجمَّع متاحًا في `target/release/urx`.
### من Docker
[ghcr.io/hahwul/urx](https://github.com/hahwul/urx/pkgs/container/urx)
### إكمال الصدفة
يولّد `urx` نص الإكمال الخاص به، لذا فهو يتطابق دائمًا مع أعلام
الملف التنفيذي المثبَّت لديك فعليًا.```bash
# zsh — any directory on your $fpath works
urx --completions zsh > ~/.zfunc/_urx
# (make sure ~/.zfunc is on the fpath, then `compinit`)
# bash
urx --completions bash > ~/.local/share/bash-completion/completions/urx
# fish
urx --completions fish > ~/.config/fish/completions/urx.fish
powershell و elvish مدعومان أيضًا. لا يحتاج هذا الخيار إلى نطاق هدف.
urx --manpage > ~/.local/share/man/man1/urx.1 man urx
## الاستخدام
### الاستخدام الأساسي```bash
# Scan a single domain
urx example.com
# Scan multiple domains
urx example.com example.org
# Scan domains from a file
cat domains.txt | urx
Usage: urx [OPTIONS] [DOMAINS]... [COMMAND]
Commands: cache Inspect and maintain the URL cache: stats, list, prune, drop ..., clear
Arguments: [DOMAINS]... Domains to fetch URLs for