Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
reconftw — reconFTW هي أداة مصممة لإجراء استطلاع آلي على نطاق مستهدف عن طريق تشغيل أفضل مجموعة من الأدوات لإجراء المسح واكتشاف الثغرات. | Kitploit
أدوات/GitHubGitHub/six2dez/reconftw
الاستخبارات مفتوحة المصدر (OSINT)الاستطلاعماسحات الثغرات الأمنيةOSINT للهندسة الاجتماعيةمسح المنافذتعداد DNS والنطاقات الفرعيةالبرمجة النصية والأتمتةجمع المعلوماتأمن الويباختبار الاختراقأمن السحابةتعداد النطاقات الفرعية
8.0k1.2k49منذ 7 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
جمع البريد الإلكتروني
تحليل DNS
الأفضل في تعداد DNS والنطاقات الفرعية #17
الأفضل في جمع البريد الإلكتروني #20
الأفضل في جمع المعلومات #6
الأفضل في الاستخبارات مفتوحة المصدر (OSINT) #20
الأفضل في OSINT للهندسة الاجتماعية #20
الأفضل في الاستطلاع #3
الأفضل في البرمجة النصية والأتمتة #1
الأفضل في تعداد النطاقات الفرعية #17
GitHubsix2dez/reconftw

reconftw

reconFTW هي أداة مصممة لإجراء استطلاع آلي على نطاق مستهدف عن طريق تشغيل أفضل مجموعة من الأدوات لإجراء المسح واكتشاف الثغرات.

عرض المستودعالموقع الإلكتروني


reconftw
reconFTW

Release License Closed Issues Discord Telegram Twitter

Docs Bash Script Linux macOS GitHub

GitHub Actions Docker Terraform Ansible Go Python

Buy Me a Coffee GitHub Sponsors PayPal

reconFTW هي أداة استطلاع آلية قوية مصممة لباحثي الأمن ومختبري الاختراق. تعمل على تبسيط عملية جمع المعلومات الاستخباراتية حول الهدف من خلال تنفيذ تعداد النطاقات الفرعية، وفحص الثغرات الأمنية، وجمع المعلومات مفتوحة المصدر (OSINT) والمزيد. بفضل تصميمها المعياري، وخيارات التهيئة الشاملة، ودعم الفحص الموزع عبر إطار عمل AX Framework، صُممت reconFTW لتقديم نتائج شاملة بكفاءة.

تستفيد reconFTW من مجموعة واسعة من التقنيات، بما في ذلك اكتشاف النطاقات الفرعية السلبي والنشط، وفحوصات ثغرات الويب (مثل XSS وSSRF وSQLi)، وجمع المعلومات مفتوحة المصدر (OSINT)، واختبار الدلائل، وفحص المنافذ، والتقاط لقطات الشاشة. تتكامل مع أحدث الأدوات وواجهات برمجة التطبيقات (APIs) لتعظيم التغطية والدقة، مما يضمن بقاءك في المقدمة في جهود الاستطلاع.

الميزات الرئيسية:

  • تعداد شامل للنطاقات الفرعية (سلبي، قوة غاشمة، تبديلات، شفافية الشهادات، إلخ)
  • فحص الثغرات الأمنية لـ XSS وSSRF وSQLi وLFI وSSTI والمزيد
  • جمع المعلومات مفتوحة المصدر (OSINT) للبريد الإلكتروني والبيانات الوصفية وتسريبات واجهات برمجة التطبيقات وسوء تكوين الأطراف الثالثة
  • الفحص الموزع مع إطار عمل AX Framework لتنفيذ أسرع
  • سير عمل قابل للتخصيص مع ملف تهيئة مفصل
  • التكامل مع Faraday للتقارير والتصور
  • دعم عمليات النشر عبر Docker وTerraform وAnsible

إخلاء المسؤولية: استخدام reconFTW لمهاجمة الأهداف دون موافقة مسبقة يعد غير قانوني. تقع على عاتق المستخدم مسؤولية الامتثال لجميع القوانين المعمول بها. لا يتحمل المطورون أي مسؤولية عن سوء الاستخدام أو الأضرار الناجمة عن هذه الأداة. استخدمها بمسؤولية.


📔 جدول المحتويات

  • 📔 جدول المحتويات
  • ✨ الميزات
    • جمع المعلومات مفتوحة المصدر (OSINT)
    • النطاقات الفرعية
    • المضيفون
    • تحليل الويب
    • فحوصات الثغرات الأمنية
    • إضافات
  • 🏗️ البنية
  • 💿 التثبيت
    • التثبيت المحلي (PC/VPS/VM)
    • Docker
    • Terraform + Ansible
  • تجربة الإصدار التجريبي v2 (إعادة كتابة بلغة Go)
  • ⚙️ التهيئة
  • 🚀 الاستخدام
    • خيارات الهدف
    • خيارات الوضع
    • الخيارات العامة
    • أمثلة الاستخدام
  • ☁️ دعم إطار عمل Ax Framework (المعروف سابقًا باسم Axiom)
  • 💻 دعم Faraday
  • 🧠 تكامل الذكاء الاصطناعي
  • 🗂️ إدارة البيانات
    • Makefile
    • يدويًا
  • 🧪 الاختبار
  • خريطة ذهنية/سير العمل
  • فيديو توضيحي
  • 🤝 كيفية المساهمة
  • 🔒 الأمان
  • ❓ هل تحتاج إلى مساعدة؟
  • 💖 ادعم هذا المشروع
  • 🙏 شكر وتقدير
  • 📝 سجل التغييرات
  • 🛠️ التطوير
  • 📜 الترخيص
  • ⭐ تاريخ النجوم

✨ الميزات

تتميز reconFTW بمجموعة كبيرة من الميزات لجعل الاستطلاع شاملاً وفعالاً. فيما يلي تفصيل دقيق لقدراتها، محدثًا ليعكس أحدث الوظائف في السكربت وملف التهيئة.

جمع المعلومات مفتوحة المصدر (OSINT)

  • معلومات النطاق: استعلام WHOIS لتفاصيل تسجيل النطاق (whois).
  • تسريبات البريد الإلكتروني وكلمات المرور: البحث عن رسائل البريد الإلكتروني وبيانات الاعتماد المسربة (emailfinder وLeakSearch).
  • تحديد Microsoft 365/Azure: تحديد مستأجري Microsoft 365 وAzure (msftrecon).
  • استخراج البيانات الوصفية: استخراج البيانات الوصفية من مستندات Office المفهرسة (metagoofil).
  • تسريبات واجهات برمجة التطبيقات (APIs): اكتشاف واجهات برمجة التطبيقات المكشوفة في المصادر العامة (porch-pirate، SwaggerSpy وpostleaksNg).
  • بحث Google المتقدم (Google Dorking): استعلامات Google dork آلية للمعلومات الحساسة (dorks_hunter وxnldorker).
  • تحليل GitHub: فحص منظمات GitHub بحثًا عن المستودعات والأسرار مع محركات قابلة للتحديد (enumerepo، trufflehog، gitleaks، titus، noseyparker).
  • تدقيق GitHub Actions (اختياري): تدقيق القطع الأثرية لسير العمل والتعرض في CI/CD باستخدام gato.
  • سوء تكوين الأطراف الثالثة: تحديد خدمات الأطراف الثالثة ذات التكوين الخاطئ (misconfig-mapper).
  • صحة البريد: مراجعة تكوين SPF/DMARC لتحديد مشكلات الانتحال أو قابلية التسليم.
  • تعداد التخزين السحابي: مسح الحاويات (Buckets) عبر المزودين الرئيسيين بحثًا عن التعرض ().

النطاقات الفرعية

  • التعداد السلبي: استخدام واجهات برمجة التطبيقات والمصادر العامة لاكتشاف النطاقات الفرعية (subfinder وgithub-subdomains).
  • شفافية الشهادات: الاستعلام عن سجلات شفافية الشهادات (crt).
  • اكتشاف NOERROR: تحديد النطاقات الفرعية ذات استجابات DNS NOERROR (dnsx، مزيد من المعلومات هنا).
  • القوة الغاشمة: تنفيذ القوة الغاشمة على DNS مع قوائم كلمات قابلة للتخصيص (puredns وقوائم كلمات مخصصة).
  • التبديلات: توليد تبديلات النطاقات الفرعية باستخدام الذكاء الاصطناعي والتعبيرات النمطية والأدوات (Gotator كمحرك تبديلات وحيد، بالإضافة إلى regulator وsubwiz).
  • كشط الويب: استخراج النطاقات الفرعية من مصادر عناوين URL السلبية والبيانات الوصفية للويب المباشر (urlfinder، waymore، httpx، csprecon).
  • سجلات DNS: حل سجلات DNS للنطاقات الفرعية (dnsx).
  • Google Analytics: تحديد النطاقات الفرعية عبر معرفات Analytics (AnalyticsRelationships).
  • مصافحة TLS: اكتشاف النطاقات الفرعية عبر منافذ TLS (tlsx).
  • البحث التكراري: تنفيذ تعداد سلبي أو قوة غاشمة تكراري مجتمع (dsieve).
  • الاستيلاء على النطاقات الفرعية: اكتشاف النطاقات الفرعية المعرضة للخطر ( و).

المضيفون

  • معلومات IP: استرجاع بيانات الموقع الجغرافي وWHOIS (ipinfo).
  • اكتشاف CDN: تحديد عناوين IP خلف شبكات توصيل المحتوى (CDNs) (cdncheck).
  • اكتشاف WAF: اكتشاف جدران حماية تطبيقات الويب (wafw00f).
  • فحص المنافذ: فحص نشط باستخدام nmap (يسبقه اختياريًا naabu) وفحص سلبي باستخدام smap.
  • بصمة الخدمات: تحديد بصمة الخدمات المكشوفة على أزواج المضيف:المنفذ المكتشفة باستخدام nerva.
  • ثغرات الخدمات (اختياري): يمكن لملف تعريف فحص المنافذ العميق إثراء النتائج بمطابقة CVEs عبر vulners.
  • رش كلمات المرور: محاولة رش كلمات المرور على الخدمات المحددة مع اختيار المحرك (brutespray أو brutus).
  • الموقع الجغرافي: ربط عناوين IP بالمواقع الجغرافية (ipinfo).
  • اكتشاف IPv6: تعداد وفحص أهداف IPv6 المكتشفة اختياريًا عند تمكين IPV6_SCAN.

تحليل الويب

  • اختبار الويب: اكتشاف خوادم الويب المباشرة على المنافذ القياسية وغير الشائعة (httpx).
  • لقطات الشاشة: التقاط لقطات شاشة لصفحات الويب (nuclei).
  • اختبار المضيفات الافتراضية: تحديد المضيفات الافتراضية عبر اختبار ترويسات HTTP (VhostFinder).
  • اكتشاف أنظمة إدارة المحتوى (CMS): تحديد أنظمة إدارة المحتوى (CMSeeK).
  • استخراج عناوين URL: جمع عناوين URL بشكل سلبي ونشط (urlfinder، waymore، katana، github-endpoints وJSA).
  • تحليل أنماط عناوين URL: تصنيف عناوين URL باستخدام الأنماط (urless، gf وgf-patterns).
  • استطلاع تقنيات Favicon: تحديد التقنيات من تجزئات الأيقونات المفضلة (favirecon).
  • تحليل JavaScript: استخراج الأسرار ونقاط النهاية من ملفات JS (subjs، JSA، xnLinkFinder، getjswords، mantra، jsluice).
  • استخراج خرائط المصدر: استرجاع البيانات الحساسة من خرائط مصدر JavaScript (sourcemapper).
  • اكتشاف GraphQL: اكتشاف نقاط نهاية GraphQL باستخدام nuclei واختياريًا تنفيذ فحص داخلي متعمق ().

فحوصات الثغرات الأمنية

  • CVEs: التحقق من CVEs والثغرات الشائعة nuclei
  • Nuclei DAST: تشغيل قوالب nuclei -dast على عناوين URL المجمعة ومرشحات GF لتغطية DAST إضافية.
  • XSS: اختبار ثغرات البرمجة النصية عبر المواقع (dalfox).
  • SSL/TLS: التحقق من سوء تكوين SSL/TLS (testssl).
  • SSRF: اختبار تزوير الطلبات من جانب الخادم (interactsh، قيم المعاملات مع ffuf، وحمولات بروتوكول بديلة اختيارية).
  • CRLF: التحقق من ثغرات حقن CRLF (crlfuzz).
  • LFI: اختبار تضمين الملفات المحلية عبر الاختبار (ffuf).
  • SSTI: اكتشاف حقن قوالب من جانب الخادم (TInjA).
  • SQLi: اختبار حقن SQL (SQLMap وghauri).
  • الروابط المعطلة: تحديد الروابط المعطلة والمراجع الخارجية التي يُرجح أن تكون عرضة للاستيلاء (second-order).
  • حقن الأوامر: اختبار ثغرات حقن الأوامر (commix).
  • تهريب طلبات HTTP: التحقق من ثغرات تهريب الطلبات (smugglex).
  • ذاكرة التخزين المؤقت للويب: تحديد ثغرات ذاكرة التخزين المؤقت للويب (Web-Cache-Vulnerability-Scanner وtoxicache).
  • تجاوز 4XX: محاولة تجاوز استجابات 4XX ().

إضافات- تعدد الخيوط: يحسّن الأداء (Interlace).

  • خوادم DNS مخصصة: يولّد محلّلات DNS (dnsvalidator).
  • دعم Docker: صورة Docker رسمية على DockerHub.
  • النشر على AWS: يُنشر عبر Terraform وAnsible.
  • دعم IP/CIDR: يفحص نطاقات IP وكتل CIDR.
  • استئناف الفحص: يستأنف الفحوصات من آخر خطوة مكتملة.
  • مخرجات مخصصة: يحفظ النتائج في دليل يحدده المستخدم.
  • وضع الفروقات: يسلط الضوء على الاكتشافات الجديدة في الفحوصات اللاحقة.
  • تصفية النطاق: يدعم قوائم داخل النطاق وخارجه (inscope).
  • الإشعارات: يرسل تنبيهات عبر Slack أو Discord أو Telegram (notify).
  • ضغط النتائج: يضغط النتائج ويرسلها.
  • تكامل Faraday: يصدّر النتائج إلى Faraday لإعداد التقارير.
  • توليد تقارير بالذكاء الاصطناعي: يولّد تقارير باستخدام نماذج ذكاء اصطناعي محلية (reconftw_ai).
  • وضع إعادة الفحص السريع: يتخطى المراحل الثقيلة تلقائيًا عند عدم اكتشاف أصول جديدة (--quick-rescan / QUICK_RESCAN).
  • منشئ القائمة الساخنة: يقيّم ويسلط الضوء على الأصول الأكثر خطورة (hotlist.txt) بناءً على الاكتشافات الجديدة.
  • تتبع الأوامر: فعّل SHOW_COMMANDS لتسجيل كل أمر منفّذ في سجلات الهدف لأغراض التصحيح.
  • مخزن الأصول: يضيف الاكتشافات إلى assets.jsonl للأتمتة اللاحقة عند تفعيل .

🏗️ المعمارية

يستخدم reconFTW معمارية معيارية. نقطة الدخول الرئيسية (reconftw.sh) تتعامل مع تحليل الوسائط وتستدعي 8 وحدات متخصصة من دليل modules/.

هيكل الدليل```

reconftw/ ├── reconftw.sh # Entry point — arg parsing, module loading, dispatch ├── reconftw.cfg # Default configuration ├── install.sh # Installer ├── Makefile # Data management, lint, fmt, test targets ├── modules/ │ ├── core.sh # Lifecycle, logging, notifications, cleanup (1024 lines) │ ├── modes.sh # Scan modes, argument parsing, help (902 lines) │ ├── subdomains.sh # Subdomain enumeration (1938 lines) │ ├── web.sh # Web analysis, fuzzing, JS checks (1712 lines) │ ├── vulns.sh # Vulnerability scanning (926 lines) │ ├── osint.sh # OSINT functions (500 lines) │ ├── axiom.sh # Ax/Axiom fleet helpers (143 lines) │ └── utils.sh # Utilities, sanitization, validation (508 lines) ├── tests/ │ ├── run_tests.sh # Test runner │ ├── unit/ # bats-core unit tests │ ├── integration/ # Integration tests │ └── fixtures/ # Test data ├── Docker/ │ └── Dockerfile # Official Docker image └── Terraform/ # AWS deployment

root@kitploit:~
### مرجع الوحدات

| الوحدة | الأسطر | الغرض |
|--------|------:|---------|
| `core.sh` | 1024 | إدارة دورة الحياة، التسجيل، الإشعارات، مصائد التنظيف |
| `modes.sh` | 902 | تعريفات أوضاع الفحص، تحليل الوسائط، إخراج المساعدة |
| `subdomains.sh` | 1938 | جميع دوال تعداد النطاقات الفرعية |
| `web.sh` | 1712 | تحليل الويب، الفازينغ، تحليل JavaScript، اكتشاف أنظمة إدارة المحتوى |
| `vulns.sh` | 926 | فحص الثغرات (XSS، SQLi، SSRF، وغيرها) |
| `osint.sh` | 500 | دوال الاستخبارات مفتوحة المصدر (WHOIS، البريد الإلكتروني، الدوركس، البيانات الوصفية) |
| `utils.sh` | 508 | الأدوات المشتركة، تنقية المدخلات، التحقق |
| `axiom.sh` | 143 | إدارة أسطول Ax/Axiom الموزع |

يتيح العلم `--source-only` استيراد `reconftw.sh` دون تنفيذ المنطق الرئيسي، مما يسمح باختبار الوحدات الفردية.

---

## 💿 التثبيت

يدعم reconFTW طرق تثبيت متعددة لتناسب البيئات المختلفة. تأكد من توفر مساحة قرص كافية (10 جيجابايت على الأقل موصى بها) واتصال إنترنت مستقر.

### البدء السريع

1) استنساخ وتثبيت```yaml
git clone https://github.com/six2dez/reconftw
cd reconftw
./install.sh --verbose
  1. تشغيل فحص (كامل + استئناف)```bash ./reconftw.sh -d example.com -r
root@kitploit:~
3) تشغيل بسيط (بصمة سلبية فقط)```bash
./reconftw.sh -d example.com -p

نصيحة: أعد تشغيل ./install.sh --tools لاحقًا لتحديث سلسلة الأدوات دون إعادة تثبيت حزم النظام.

التثبيت المحلي (PC/VPS/VM)

  1. المتطلبات الأساسية:

    • Golang: أحدث إصدار (install_golang مفعّل افتراضيًا في reconftw.cfg).
    • صلاحيات النظام: إذا لم تكن تعمل كجذر، قم بتكوين sudo لتجنب المطالبات:
      root@kitploit:~
      sudo echo "${USERNAME} ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers.d/reconFTW
      
  2. الخطوات: ```bash git clone https://github.com/six2dez/reconftw cd reconftw ./install.sh ./reconftw.sh -d target.com -r

    root@kitploit:~
  3. ملاحظات:

  • يقوم سكربت install.sh بتثبيت التبعيات والأدوات وتكوين المسارات (GOROOT، GOPATH، PATH).
  • اضبط install_golang=false في reconftw.cfg إذا كان Golang مُهيأ بالفعل.
  • للإعدادات الحالية، شغّل ./install.sh --tools لتحديث ثنائيات Go وحزم pipx والمستودعات دون لمس حزم النظام.
  • راجع دليل التثبيت للحصول على تعليمات مفصلة.

Docker

  1. اسحب الصورة: ```bash docker pull six2dez/reconftw:main
    root@kitploit:~
  2. تشغيل الحاوية: ```bash docker run -it --rm
    -v "${PWD}/OutputFolder/:/reconftw/Recon/"
    six2dez/reconftw:main -d example.com -r
    root@kitploit:~

للحصول على قائمة بالأهداف، اربط ملف القائمة داخل الحاوية وأشر إلى المسار داخل الحاوية: ```bash docker run -it --rm
-v "${PWD}/domains.txt:/reconftw/domains.txt:ro"
-v "${PWD}/OutputFolder/:/reconftw/Recon/"
six2dez/reconftw:main -l /reconftw/domains.txt -r

root@kitploit:~
3. **عرض النتائج**:

- يتم حفظ النتائج في دليل `OutputFolder` على المضيف (وليس داخل الحاوية).

4. **التخصيص**:
- قم بتعديل صورة Docker أو أنشئ صورتك الخاصة؛ راجع [دليل Docker](https://github.com/six2dez/reconftw/wiki/4.-Docker).
- لتخطي أدوات Ax في البناء المخصص، مرر `--build-arg INSTALL_AXIOM=false`.
- قم بتركيب إعدادات notify الخاصة بك في `~/.config/notify/provider-config.yaml` داخل الحاوية إذا كنت تستخدم الإشعارات.

5. **الأسرار في وقت التشغيل**:

مرر مفاتيح API والأسرار عبر متغيرات البيئة — ولا تقم أبدًا بتضمينها في الصورة:   ```bash
docker run -it --rm \
  -e SHODAN_API_KEY="your-key" \
  -e PDCP_API_KEY="your-projectdiscovery-key" \
  -e COLLAB_SERVER="your-server" \
  -e XSS_SERVER="your-server" \
  -v "${PWD}/OutputFolder/:/reconftw/Recon/" \
  six2dez/reconftw:main -d example.com -r

راجع SECURITY.md للحصول على إرشادات كاملة لإدارة الأسرار.

  1. فحص الصحة:

    تتضمن صورة Docker فحصًا صحيًا مدمجًا HEALTHCHECK يعمل على تشغيل ./reconftw.sh --health-check كل 60 ثانية. يمكنك أيضًا تشغيله يدويًا: ```bash docker exec ./reconftw.sh --health-check

    root@kitploit:~

Terraform + Ansible

  • انشر reconFTW على AWS باستخدام Terraform وAnsible.
  • اتبع الدليل في Terraform/README.md للحصول على تعليمات الإعداد.

تجربة الإصدار التجريبي v2 (إعادة الكتابة بلغة Go)

يتم إعادة كتابة reconFTW بلغة Go. تُطرح إعادة الكتابة كإصدار تجريبي اختياري: وهي مدرجة في صفحة الإصدارات، وGitHub لا يشير أبدًا إلى releases/latest عند إصدار تجريبي — لذا إذا لم تفعل شيئًا، فستستمر في الحصول على إصدار bash. وهذا مقصود.

الملف الثنائي Go هو reconftw؛ ونقطة الدخول في bash هي reconftw.sh. لا يستبدلان بعضهما البعض، لذا يمكنك الاحتفاظ بكليهما والرجوع إلى أي منهما في أي وقت.

الإصدار التجريبي الحالي هو v5.0.0-beta.1. لا يتم تقديمه عبر releases/latest، لذا قم بتسمية العلامة صراحةً:```bash curl -sSL "https://github.com/six2dez/reconftw/releases/download/v5.0.0-beta.1/reconftw_Linux_x86_64.tar.gz" | tar xz sudo install -m 755 reconftw /usr/local/bin/reconftw reconftw version

root@kitploit:~
اختر الأصل المطابق لمنصتك من
[صفحة الإصدارات](https://github.com/six2dez/reconftw/releases/tag/v5.0.0-beta.1) — تتوفر إصدارات `Darwin`
و`arm64`، وبناء musl ثابت، وحزم `.deb`/`.rpm` جميعها منشورة.

- [**ما هي النسخة التجريبية وما ليست كذلك**](https://github.com/six2dez/reconftw/blob/main/docs/V2-BETA-ANNOUNCEMENT.md) — بما في ذلك ثلاثة
  أشياء لم تكتمل بعد بشكل صريح.
- [**الإبلاغ عن مشكلة**](https://github.com/six2dez/reconftw/issues/new?template=v2-beta-feedback.md)
  — قالب ملاحظات النسخة التجريبية v2. الأخطاء في إصدار bash لا تزال تُرسل إلى تقرير الأخطاء العادي.


## 🛠️ استكشاف الأخطاء وإصلاحها

- Bash 4+ على macOS: تُعيد البرامج النصية تشغيل نفسها تلقائيًا تحت Homebrew Bash. إذا رأيت رسالة حول Bash < 4، شغّل `brew install bash`، وافتح طرفية جديدة، وأعد تشغيل `./install.sh`.
- timeout على macOS: يوفر macOS `gtimeout` عبر `brew install coreutils`. تكتشف البرامج النصية الآن وتستخدمه تلقائيًا.
- مشاكل الشبكة: تُخفي أدوات التثبيت معظم مخرجات الأوامر. إذا فشل شيء ما، أعد التشغيل مع `upgrade_tools=true` في `reconftw.cfg`، ونفّذ `./install.sh --tools`، أو ثبّت الأداة المفقودة يدويًا (سيذكر الخطأ اسمها).
- ثنائيات GOPATH: تُنسخ الثنائيات إلى `/usr/local/bin`. إذا كنت تفضل عدم ذلك، تأكد من أن `~/go/bin` موجود في `PATH` الخاص بك.
- قوالب Nuclei: إذا لم تُستنسخ القوالب، احذف `~/nuclei-templates` وأعد تشغيل `./install.sh`.

## 🔑 قائمة مراجعة واجهات برمجة التطبيقات (اختياري)

- `subfinder`: `~/.config/subfinder/provider-config.yaml`
- رموز GitHub: `~/Tools/.github_tokens` (رمز واحد لكل سطر)
- رموز GitLab: `~/Tools/.gitlab_tokens` (رمز واحد لكل سطر)
- WHOISXML: عيّن `WHOISXML_API` في `reconftw.cfg` أو كمتغير بيئة
- تعداد ASN (`asnmap`): عيّن `PDCP_API_KEY` في البيئة/الإعدادات (`ASN_ENUM` يُتخطى إذا لم يُعيّن)
- Slack/Discord/Telegram: هيّئ `notify` في `~/.config/notify/provider-config.yaml`
- خادم SSRF: عيّن `COLLAB_SERVER` في البيئة/الإعدادات إذا استُخدم
- خادم XSS الأعمى: عيّن `XSS_SERVER` في البيئة/الإعدادات إذا استُخدم

## 💾 المتطلبات

- القرص: 10–20 جيجابايت مساحة حرة موصى بها (سلسلة الأدوات + البيانات)
- الشبكة: اتصال مستقر أثناء التثبيت والتحديثات
- نظام التشغيل: Linux/macOS مع Bash ≥ 4
- إضافات: `shellcheck` و`shfmt` (اختياري) لـ `make lint`/`make fmt`

## ⚙️ الإعدادات

يتحكم ملف `reconftw.cfg` في التنفيذ الكامل لـ reconFTW. يسمح بتخصيص دقيق لـ:

- **مسارات الأدوات**: عيّن مسارات الأدوات، وخوادم DNS، وقوائم الكلمات (`tools`, `resolvers`, `fuzz_wordlist`).
- **مفاتيح واجهات برمجة التطبيقات**: هيّئ مفاتيح Shodan وWHOISXML وغيرها عبر متغيرات البيئة أو `secrets.cfg` (انظر [SECURITY.md](https://github.com/six2dez/reconftw/blob/main/SECURITY.md)).
- **أوضاع الفحص**: تفعيل/تعطيل الوحدات (مثل `OSINT`, `SUBDOMAINS_GENERAL`, `VULNS_GENERAL`).
- **الأداء**: اضبط عدد الخيوط، وحدود المعدل، والمهلات (مثل `FFUF_THREADS`, `HTTPX_RATELIMIT`).
- **تحديد المعدل التكيفي**: التراجع تلقائيًا عند أخطاء 429/503 (`ADAPTIVE_RATE_LIMIT`, `MIN_RATE_LIMIT`, `MAX_RATE_LIMIT`).
- **الفحص التدريجي**: فحص النتائج الجديدة فقط منذ آخر تشغيل (`INCREMENTAL_MODE`).
- **الإشعارات**: إعداد إشعارات Slack أو Discord أو Telegram (`NOTIFY_CONFIG`).
- **Ax (المعروف سابقًا باسم Axiom)**: هيّئ الفحص الموزع ومسارات خوادم DNS (`AXIOM_FLEET_NAME`, `AXIOM_FLEET_COUNT`, `AXIOM_RESOLVERS_PATH`).
- **تقارير الذكاء الاصطناعي**: هيّئ النموذج/الملف الشخصي/التنسيق وعناصر التحكم في السياق (`AI_MODEL`, `AI_REPORT_PROFILE`, `AI_REPORT_TYPE`, `AI_MAX_CHARS_PER_FILE`).
- **فحوصات الويب المتقدمة**: تبديل استكشاف GraphQL، واكتشاف المعلمات، واختبار WebSocket، والاستكشاف عبر gRPC، وفحص IPv6.
- **الأتمتة والبيانات**: التحكم في استدلالات إعادة الفحص السريع، وتسجيل الأصول، وأحجام الأجزاء، والقوائم الساخنة، وتتبع التصحيح (`QUICK_RESCAN`, `ASSET_STORE`, `CHUNK_LIMIT`, `HOTLIST_TOP`, `SHOW_COMMANDS`).
- **القرص والتسجيل**: فحص القرص قبل التشغيل (`MIN_DISK_SPACE_GB`)، وتدوير السجلات (`MAX_LOG_FILES`, `MAX_LOG_AGE_DAYS`)، وتسجيل JSON منظم (`STRUCTURED_LOGGING`).
- **التخزين المؤقت**: هيّئ انتهاء صلاحية ذاكرة التخزين المؤقت لقوائم الكلمات وخوادم DNS (`CACHE_MAX_AGE_DAYS`).
- **سلامة خوادم DNS**: فشل سريع عند غياب ملفات خوادم DNS، وتنزيلات خوادم DNS تستخدم مقابض إعادة محاولة/مهلة قابلة للتكوين (`RESOLVER_DOWNLOAD_*`)، وافتراضي تعطيل مهلة DNS للقوة الغاشمة/الحل (`DNS_*_TIMEOUT=0`) مع تقدم نبضات القلب.
- **الأسرار**: استخدم `secrets.cfg` للتجاوزات المحلية أو متغيرات البيئة لـ CI/Docker (انظر [SECURITY.md](https://github.com/six2dez/reconftw/blob/main/SECURITY.md)).

**مثال على الإعدادات**:```bash
#############################################
#			reconFTW config file			#
#############################################

# General values
tools=$HOME/Tools   # Path installed tools
if [[ -z "${SCRIPTPATH:-}" ]]; then
	if [[ -n "${BASH_SOURCE[0]:-}" ]]; then
		SCRIPTPATH="$( cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 ; pwd -P )" # Get current script's path
	else
		SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" # Get current script's path
	fi
fi
_detected_shell="${SHELL:-/bin/bash}"
profile_shell=".$(basename "${_detected_shell}")rc" # Get current shell profile
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
	reconftw_version="$(git rev-parse --abbrev-ref HEAD)-$(git describe --tags 2>/dev/null || git rev-parse --short HEAD)"
else
	reconftw_version="standalone"
fi # Fetch current reconftw version
DATA_DIR="${SCRIPTPATH}/data"
WORDLISTS_DIR="${DATA_DIR}/wordlists"
PATTERNS_DIR="${DATA_DIR}/patterns"
generate_resolvers=false # Generate custom resolvers with dnsvalidator
update_resolvers=true # Fetch and rewrite resolvers from trickest/resolvers before DNS resolution
resolvers_url="https://raw.githubusercontent.com/trickest/resolvers/main/resolvers.txt"
resolvers_trusted_url="https://gist.githubusercontent.com/six2dez/ae9ed7e5c786461868abd3f2344401b6/raw/trusted_resolvers.txt"
RESOLVER_DOWNLOAD_CONNECT_TIMEOUT=10 # Seconds to wait for resolver download TCP connection
RESOLVER_DOWNLOAD_MAX_TIME=120 # Hard cap in seconds for resolver downloads
RESOLVER_DOWNLOAD_RETRY=2 # Retry count for resolver downloads
RESOLVER_DOWNLOAD_RETRY_DELAY=2 # Delay in seconds between resolver download retries
fuzzing_remote_list="https://raw.githubusercontent.com/six2dez/OneListForAll/main/onelistforallmicro.txt" # Used to send to Ax (if used) on fuzzing
proxy_url="http://127.0.0.1:8080/" # Proxy url
install_golang=true # Set it to false if you already have Golang configured and ready
upgrade_tools=true
upgrade_before_running=false # Upgrade tools before running
#dir_output=/custom/output/path
SHOW_COMMANDS=false # Set true to log every executed command to the per-target log (verbose; may include sensitive data)
MIN_DISK_SPACE_GB=0 # Minimum required disk space in GB before starting reconnaissance (0 to disable check)

# Incremental mode configuration
INCREMENTAL_MODE=false # Only scan new findings since last run (use --incremental flag to enable)
MONITOR_MODE=false # Continuous monitor mode (enabled by --monitor)
MONITOR_INTERVAL_MIN=60 # Minutes between monitoring cycles
MONITOR_MAX_CYCLES=0 # 0 = run forever until interrupted
ALERT_SUPPRESSION=true # Suppress repeated monitor alerts by fingerprint history
ALERT_SEEN_FILE=".incremental/alerts_seen.hashes" # Store of seen alert fingerprints

# Adaptive rate limiting configuration
ADAPTIVE_RATE_LIMIT=false # Automatically adjust rate limits when encountering 429/503 errors (use --adaptive-rate flag to enable)
MIN_RATE_LIMIT=10 # Minimum rate limit (requests per second)
MAX_RATE_LIMIT=500 # Maximum rate limit (requests per second)
RATE_LIMIT_BACKOFF_FACTOR=0.5 # Multiply rate by this when errors occur (0.5 = half speed)
RATE_LIMIT_INCREASE_FACTOR=1.2 # Multiply rate by this on success (1.2 = 20% faster)

# Cache configuration
CACHE_MAX_AGE_DAYS=30 # Maximum age in days for cached wordlists/resolvers (30 = 1 month)
CACHE_MAX_AGE_DAYS_RESOLVERS=7 # Resolver cache TTL
CACHE_MAX_AGE_DAYS_WORDLISTS=30 # Wordlist cache TTL
CACHE_MAX_AGE_DAYS_TOOLS=14 # Tool cache TTL
CACHE_REFRESH=false # Force-refresh cache (or use --refresh-cache)

# Log rotation
MAX_LOG_FILES=10       # Maximum number of log files to keep per target
MAX_LOG_AGE_DAYS=30    # Delete log files older than this many days

# Structured logging configuration (JSON format)
STRUCTURED_LOGGING=false # Enable JSON structured logging for advanced log analysis

# Golang Vars (Comment or change on your own)
export GOROOT="${GOROOT:-/usr/local/go}"
export GOPATH="${GOPATH:-$HOME/go}"
case ":${PATH}:" in
	*":$GOPATH/bin:"*) ;;
	*) PATH="$GOPATH/bin:$PATH" ;;
esac
case ":${PATH}:" in
	*":$GOROOT/bin:"*) ;;
	*) PATH="$GOROOT/bin:$PATH" ;;
esac
case ":${PATH}:" in
	*":$HOME/.local/bin:"*) ;;
	*) PATH="$HOME/.local/bin:$PATH" ;;
esac
export PATH

# Rust Vars (Comment or change on your own)
export PATH="$HOME/.cargo/bin:$PATH"

# Tools config files
#NOTIFY_CONFIG=~/.config/notify/provider-config.yaml # No need to define
GITHUB_TOKENS=${tools}/.github_tokens
GITLAB_TOKENS=${tools}/.gitlab_tokens
#CUSTOM_CONFIG=custom_config_path.txt # In case you use a custom config file, uncomment this line and set your files path

# APIs/TOKENS - Set via environment variables (preferred) or uncomment and edit below.
# Environment variables take precedence if set.
SHODAN_API_KEY="${SHODAN_API_KEY:-}"
WHOISXML_API="${WHOISXML_API:-}"
PDCP_API_KEY="${PDCP_API_KEY:-}"
XSS_SERVER="${XSS_SERVER:-}"
COLLAB_SERVER="${COLLAB_SERVER:-}"
slack_channel="${slack_channel:-}"
slack_auth="${slack_auth:-}"
# For additional secrets, create a secrets.cfg file (gitignored) and it will be auto-sourced

# File descriptors
DEBUG_STD="&>/dev/null" # Skips STD output on installer
DEBUG_ERROR="2>/dev/null" # Skips ERR output on installer

# Osint
OSINT=true # Enable or disable the whole OSINT module
GOOGLE_DORKS=true
GITHUB_DORKS=true
GITHUB_REPOS=true
METADATA=true # Fetch metadata from indexed office documents
EMAILS=true # Fetch emails from differents sites
DOMAIN_INFO=true # whois info
IP_INFO=true    # Reverse IP search, geolocation and whois
API_LEAKS=true # Check for API leaks
API_LEAKS_POSTLEAKS=true # Enhance API leaks with postleaksNg
THIRD_PARTIES=true # Check for 3rd parties misconfigs
SPOOF=true # Check spoofable domains
MAIL_HYGIENE=true # Check DMARC/SPF records
CLOUD_ENUM=true # Enumerate cloud storage across providers with cloud_enum
GITHUB_LEAKS=true # Search for leaked secrets across GitHub with ghleaks
GHLEAKS_THREADS=5 # Concurrent download threads for ghleaks
SECRETS_ENGINE="gitleaks" # gitleaks|titus|noseyparker|hybrid
SECRETS_SCAN_GIT_HISTORY=false # Include git history scans when supported
SECRETS_VALIDATE=false # Validate detected secrets when supported (titus)
GITHUB_ACTIONS_AUDIT=false # Audit GitHub Actions artifacts/workflows with gato
GATO_INCLUDE_ALL_ARTIFACT_SECRETS=false # Include noisy artifact secret matches in gato output

# Subdomains
SUBDOMAINS_GENERAL=true # Enable or disable the whole Subdomains module
SUBPASSIVE=true # Passive subdomains search
SUBCRT=true # crtsh search
CTR_LIMIT=999999 # Limit the number of results
SUBNOERROR=false # Check DNS NOERROR response and BF on them
SUBANALYTICS=true # Google Analytics search
SUBBRUTE=true # DNS bruteforcing
SUBSCRAPING=true # Subdomains extraction from passive URLs and live web metadata
SUBPERMUTE=true # DNS permutations
SUBIAPERMUTE=true # Permutations by AI analysis
SUBREGEXPERMUTE=true # Permutations by regex analysis
GOTATOR_FLAGS=" -depth 1 -numbers 3 -mindup -adv -md" # Flags for gotator
PERMUTATIONS_WORDLIST_MODE=auto # auto|full|short (auto: short if subs > threshold, full if DEEP)
PERMUTATIONS_SHORT_THRESHOLD=100 # Use short wordlist when subdomain count exceeds this
SUBTAKEOVER=true # Check subdomain takeovers, false by default cuz nuclei already check this
SUB_RECURSIVE_PASSIVE=false # Uses a lot of API keys queries
DEEP_RECURSIVE_PASSIVE=10 # Number of top subdomains for recursion
SUB_RECURSIVE_BRUTE=false # Needs big disk space and time to resolve
ZONETRANSFER=true # Check zone transfer
S3BUCKETS=true # Check S3 buckets misconfigs
REVERSE_IP=false # Check reverse IP subdomain search (set True if your target is CIDR/IP)
TLS_PORTS="21,22,25,80,110,135,143,261,271,324,443,448,465,563,614,631,636,664,684,695,832,853,854,990,993,989,992,994,995,1129,1131,1184,2083,2087,2089,2096,2221,2252,2376,2381,2478,2479,2482,2484,2679,2762,3077,3078,3183,3191,3220,3269,3306,3410,3424,3471,3496,3509,3529,3539,3535,3660,36611,3713,3747,3766,3864,3885,3995,3896,4031,4036,4062,4064,4081,4083,4116,4335,4336,4536,4590,4740,4843,4849,5443,5007,5061,5321,5349,5671,5783,5868,5986,5989,5990,6209,6251,6443,6513,6514,6619,6697,6771,7202,7443,7673,7674,7677,7775,8243,8443,8991,8989,9089,9295,9318,9443,9444,9614,9802,10161,10162,11751,12013,12109,14143,15002,16995,41230,16993,20003"
INSCOPE=false # Uses inscope tool to filter the scope, requires .scope file in reconftw folder

# Web detection
WEBPROBEFULL=true # Unified web probing over configured ports
WEBSCREENSHOT=true # Webs screenshooting
VIRTUALHOSTS=false # Check virtualhosts by fuzzing HOST header
UNCOMMON_PORTS_WEB="81,300,591,593,832,981,1010,1311,1099,2082,2095,2096,2480,3000,3001,3002,3003,3128,3333,4243,4567,4711,4712,4993,5000,5104,5108,5280,5281,5601,5800,6543,7000,7001,7396,7474,8000,8001,8008,8014,8042,8060,8069,8080,8081,8083,8088,8090,8091,8095,8118,8123,8172,8181,8222,8243,8280,8281,8333,8337,8443,8500,8834,8880,8888,8983,9000,9001,9043,9060,9080,9090,9091,9092,9200,9443,9502,9800,9981,10000,10250,11371,12443,15672,16080,17778,18091,18092,20720,32000,55440,55672"
WEBPROBE_PORTS="80,443,${UNCOMMON_PORTS_WEB}" # Ports used by webprobe_full

# Host
FAVIRECON=true # Favicon-based technology recon for discovered web targets
PORTSCANNER=true # Enable or disable the whole Port scanner module
GEO_INFO=true # Fetch Geolocalization info
PORTSCAN_PASSIVE=true # Port scanner with Shodan
PORTSCAN_ACTIVE=true # Port scanner with nmap
PORTSCAN_ACTIVE_OPTIONS="--top-ports 200 -sV -n -Pn --open --max-retries 2"
PORTSCAN_DEEP_OPTIONS="--top-ports 1000 -sV -n -Pn --open --max-retries 2 --script vulners"
PORTSCAN_STRATEGY=legacy # legacy|naabu_nmap
NAABU_ENABLE=true
NAABU_RATE=1000
NAABU_PORTS="--top-ports 1000"
SERVICE_FINGERPRINT=true # Fingerprint exposed services with nerva
SERVICE_FINGERPRINT_ENGINE="nerva" # nerva
SERVICE_FINGERPRINT_TIMEOUT_MS=2000 # nerva timeout per target (ms)
PORTSCAN_UDP=false
PORTSCAN_UDP_OPTIONS="--top-ports 20 -sU -sV -n -Pn --open"
CDN_IP=true # Check which IPs belongs to CDN
CDN_BYPASS=true # Try origin IP discovery on CDN-fronted hosts with hakoriginfinder

# Web analysis
WAF_DETECTION=true # Detect WAFs
NUCLEICHECK=true # Enable or disable nuclei
NUCLEI_TEMPLATES_PATH="$HOME/nuclei-templates" # Set nuclei templates path
NUCLEI_SEVERITY="info,low,medium,high,critical" # Set templates criticity
NUCLEI_EXTRA_ARGS="" # Additional nuclei extra flags, don't set the severity here but the exclusions like " -etags openssh"
#NUCLEI_EXTRA_ARGS="-etags openssh,ssl -eid node-express-dev-env,keycloak-xss,CVE-2023-24044,CVE-2021-20323,header-sql,header-reflection" # Additional nuclei extra flags, don't set the severity here but the exclusions like " -etags openssh"
NUCLEI_DAST=true # Run additional nuclei -dast module over webs/urls/gf candidates (forced on when VULNS_GENERAL=true, e.g. -a)
URL_CHECK=true # Enable or disable URL collection
URL_CHECK_PASSIVE=true # Search for urls, passive methods from Archive, OTX, CommonCrawl, etc
URL_CHECK_ACTIVE=true # Search for urls by crawling the websites
WAYMORE_TIMEOUT=30m # Timeout for waymore passive URL collection
WAYMORE_LIMIT=5000 # Optional URL collection limit for waymore
URL_GF=true # Url patterns classification
URL_EXT=true # Returns a list of files divided by extension
JSCHECKS=true # JS analysis
FUZZ=true # Web fuzzing
FUZZ_RECURSION_DEPTH=2 # ffuf recursion depth used in DEEP mode
IIS_SHORTNAME=true
CMS_SCANNER=true # CMS scanner
WORDLIST=true # Wordlist generation
ROBOTSWORDLIST=true # Check historic disallow entries on waybackMachine (DEEP mode only)
PASSWORD_DICT=true # Generate password dictionary
PASSWORD_DICT_ENGINE=cewler # cewler|pydictor
PASSWORD_MIN_LENGTH=5 # Min password length
PASSWORD_MAX_LENGTH=14 # Max password length
KATANA_HEADLESS_PROFILE=off # off|smart|full
CLOUD_ENUM_S3_PROFILE=optimized # optimized: quickscan (-qs + safe -m/-b paths) | exhaustive: -m/-b ${tools}/cloud_enum/enum_tools/fuzz.txt (missing fuzz => optimized)
CLOUD_ENUM_S3_THREADS=20 # Threads used by cloud_enum in s3buckets/cloud enumeration

# Vulns
VULNS_GENERAL=false # Enable or disable the vulnerability module (very intrusive and slow)
XSS=true # Check for xss with dalfox
TEST_SSL=true # SSL misconfigs
SSRF_CHECKS=true # SSRF checks
CRLF_CHECKS=true # CRLF checks
LFI=true # LFI by fuzzing
LFI_MAX_URLS=150 # Max single-parameter LFI candidates to test per target (0 = unlimited)
SSTI=true # SSTI by fuzzing
SSTI_ENGINE="TInjA" # SSTI engine
SQLI=true # Check SQLI
SQLMAP=true # Check SQLI with sqlmap
GHAURI=false # Check SQLI with ghauri
BROKENLINKS=true # Check for brokenlinks
BROKENLINKS_ENGINE="second-order" # Broken links engine
SPRAY=true # Performs password spraying
SPRAY_ENGINE="brutespray" # brutespray|brutus
SPRAY_BRUTUS_ONLY_DEEP=true # Run brutus only in DEEP mode unless disabled
BRUTUS_USERNAMES="" # Optional comma-separated usernames for brutus
BRUTUS_PASSWORDS="" # Optional comma-separated passwords for brutus
BRUTUS_KEY_FILE="" # Optional SSH private key path for brutus
COMM_INJ=true # Check for command injections with commix
SMUGGLING=true # Check for HTTP request smuggling flaws
WEBCACHE=true # Check for Web Cache issues
WEBCACHE_TOXICACHE=true # Complement web cache checks with toxicache
BYPASSER4XX=true # Check for 4XX bypasses
FUZZPARAMS=true # Fuzz parameters values

# Extra features
NOTIFICATION=false # Notification for every function
SOFT_NOTIFICATION=false # Only for start/end
DEEP=false # DEEP mode, really slow and don't care about the number of results
DEEP_LIMIT=500 # First limit to not run unless you run DEEP
DEEP_LIMIT2=1500 # Second limit to not run unless you run DEEP
DIFF=false # Diff function, run every module over an already scanned target, printing only new findings (but save everything)
REMOVETMP=false # Delete temporary files after execution (to free up space)
REMOVELOG=false # Delete logs after execution
PROXY=false # Send to proxy the websites found
SENDZIPNOTIFY=false # Send to zip the results (over notify)
PRESERVE=true      # set to true to avoid deleting the .called_fn files on really large scans
FFUF_FLAGS=" -mc all -fc 404 -sf -noninteractive -of json" # Ffuf flags

# HTTP options
HEADER="User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0" # Default header

# Threads (auto-scaled based on CPU cores, override to set fixed values)
AVAILABLE_CORES=$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 4)
FFUF_THREADS=$((AVAILABLE_CORES * 10))
HTTPX_THREADS=$((AVAILABLE_CORES * 12))
HTTPX_UNCOMMONPORTS_THREADS=$((AVAILABLE_CORES * 25))
KATANA_THREADS=$((AVAILABLE_CORES * 5))
BRUTESPRAY_CONCURRENCE=$((AVAILABLE_CORES * 2))
DNSTAKE_THREADS=$((AVAILABLE_CORES * 25))
DALFOX_THREADS=$((AVAILABLE_CORES * 50))
DNS_RESOLVER=auto # auto|puredns|dnsx (auto: detects NAT/CGNAT → dnsx for home, puredns for VPS)
PUREDNS_PUBLIC_LIMIT=0 # Set between 2000 - 10000 if your router blows up, 0 means unlimited
PUREDNS_TRUSTED_LIMIT=400
PUREDNS_WILDCARDTEST_LIMIT=30
PUREDNS_WILDCARDBATCH_LIMIT=1500000
DNSX_THREADS=25 # Threads for dnsx when behind NAT (safe for home routers)
DNSX_RATE_LIMIT=100 # QPS for dnsx
DNSVALIDATOR_THREADS=200
INTERLACE_THREADS=10
LFI_INTERLACE_THREADS=4 # Dedicated interlace concurrency for LFI
TLSX_THREADS=1000
XNLINKFINDER_DEPTH=3

# Rate limits
HTTPX_RATELIMIT=150
NUCLEI_RATELIMIT=150
FFUF_RATELIMIT=0
LFI_FFUF_THREADS=20 # Dedicated ffuf threads for LFI
LFI_FFUF_RATELIMIT=50 # Dedicated ffuf rate limit for LFI

# Timeouts
SUBFINDER_ENUM_TIMEOUT=180          # Minutes
CMSSCAN_TIMEOUT=3600            # Seconds
FFUF_MAXTIME=900                # Seconds
LFI_INTERLACE_TIMEOUT=180       # Seconds per LFI interlace worker
LFI_FFUF_TIMEOUT=10             # Seconds per LFI HTTP request
LFI_FFUF_MAXTIME=90             # Seconds per single LFI ffuf job
LFI_FOLLOW_REDIRECTS=false      # Follow redirects during LFI fuzzing
HTTPX_TIMEOUT=10                # Seconds
HTTPX_UNCOMMONPORTS_TIMEOUT=10  # Seconds
PERMUTATIONS_LIMIT=21474836480  # Bytes, default is 20 GB
DNS_BRUTE_TIMEOUT=0             # timeout/gtimeout duration for DNS bruteforce (0 disables hard-timeout, e.g. 4h)
DNS_RESOLVE_TIMEOUT=0           # timeout/gtimeout duration for DNS resolve (0 disables hard-timeout, e.g. 6h)
DNS_HEARTBEAT_INTERVAL_SECONDS=20 # Progress heartbeat interval for long DNS jobs

# lists
fuzz_wordlist=${WORDLISTS_DIR}/fuzz_wordlist.txt
lfi_wordlist=${WORDLISTS_DIR}/lfi_wordlist.txt
ssti_wordlist=${WORDLISTS_DIR}/ssti_wordlist.txt
subs_wordlist=${WORDLISTS_DIR}/subdomains.txt
subs_wordlist_big=${tools}/subdomains_n0kovo_big.txt
headers_inject=${WORDLISTS_DIR}/headers_inject.txt
resolvers=${tools}/resolvers.txt
resolvers_trusted=${tools}/resolvers_trusted.txt

# Ax Fleet (formerly Axiom — uses attacksurge/ax)
# Resolver paths on Ax instances (change if your fleet uses a different home dir)
AXIOM_RESOLVERS_PATH="/home/op/lists/resolvers.txt"
AXIOM_RESOLVERS_TRUSTED_PATH="/home/op/lists/resolvers_trusted.txt"
# Will not start a new fleet if one exist w/ same name and size (or larger)
# AXIOM=false Uncomment only to overwrite command line flags
AXIOM_FLEET_LAUNCH=true # Enable or disable spin up a new fleet, if false it will use the current fleet with the AXIOM_FLEET_NAME prefix
AXIOM_FLEET_NAME="reconFTW" # Fleet's prefix name
AXIOM_FLEET_COUNT=10 # Fleet's number
AXIOM_FLEET_REGIONS="eu-central" # Fleet's region
AXIOM_FLEET_SHUTDOWN=true # # Enable or disable delete the fleet after the execution
AXIOM_AUTO_FIX_HOSTKEY=true # Auto-repair known_hosts entries on SSH host-key mismatch before fallback to local mode
# This is a script on your reconftw host that might prep things your way...
#AXIOM_POST_START="~/Tools/axiom_config.sh" # Useful  to send your config files to the fleet
AXIOM_EXTRA_ARGS="" # Leave empty if you don't want to add extra arguments
#AXIOM_EXTRA_ARGS=" --rm-logs" # Example

# Faraday-Server
FARADAY=false # Enable or disable Faraday integration
FARADAY_WORKSPACE="reconftw" # Faraday workspace

# AI
AI_EXECUTABLE="python3" # Python executable fallback if reconftw_ai venv python is not available
AI_MODEL="llama3:8b" # Model to use
AI_REPORT_TYPE="md" # Report type to use (md, txt)
AI_REPORT_PROFILE="bughunter" # Report profile to use (executive, brief, or bughunter)
AI_PROMPTS_FILE="" # Optional custom prompts file (empty uses reconftw_ai default)
AI_MAX_CHARS_PER_FILE=50000 # Max chars loaded per file before truncation
AI_MAX_FILES_PER_CATEGORY=200 # Max files loaded per category for AI context
AI_REDACT=true # Redact sensitive indicators before AI analysis
AI_ALLOW_MODEL_PULL=false # Allow reconftw_ai to auto-pull missing model
AI_STRICT=false # Fail AI analysis if one or more categories have no data

# API & Advanced Web Checks
GRAPHQL_CHECK=true # Detect GraphQL endpoints and introspection
GQLSPECTION=false # Run GQLSpection deep introspection on detected GraphQL endpoints (heavier)
PARAM_DISCOVERY=true # Parameter discovery with arjun
GRPC_SCAN=false # Attempt basic gRPC reflection on common ports
LLM_PROBE=false # Probe discovered web/API endpoints for LLM services with julius
LLM_PROBE_AUGUSTUS=false # Include augustus generator config in julius output

# IPv6
IPV6_SCAN=true # Attempt IPv6 discovery/portscan where addresses exist

# Wordlists / threads for new modules
ARJUN_THREADS=10

# Data & Automation
ASSET_STORE=true # Append assets/findings to assets.jsonl
EXPORT_FORMAT="" # Optional exporter at end of scan: json|html|csv|all
REPORT_ONLY=false # Rebuild report artifacts from existing results (or use --report-only)
QUICK_RESCAN=false # Skip heavy steps if no new subdomains/webs
CHUNK_LIMIT=2000 # Split very large lists into chunks (urls, webs)
HOTLIST_TOP=50 # Number of top risky assets to highlight

# Performance
RESOLVER_IQ=false # Prefer fast/healthy resolvers (experimental)
PERF_PROFILE="balanced" # low|balanced|max

# Estimated durations for skipped heavy modules (seconds)
TIME_EST_NUCLEI=600
TIME_EST_FUZZ=900
TIME_EST_URLCHECKS=300
TIME_EST_JSCHECKS=300
TIME_EST_API=300
TIME_EST_GQL=180
TIME_EST_PARAM=240
TIME_EST_GRPC=120
TIME_EST_IIS=60

# TERM COLORS
bred='\033[1;31m'
bblue='\033[1;34m'
bgreen='\033[1;32m'
byellow='\033[1;33m'
red='\033[0;31m'
blue='\033[0;34m'
green='\033[0;32m'
cyan='\033[0;36m'
yellow='\033[0;33m'
reset='\033[0m'

ضمانات خادم DNS:

  • الملفات المفقودة أو الفارغة لخوادم DNS تفشل الآن بسرعة قبل بدء القوة الغاشمة/الحل لـ DNS.
  • تنزيلات خوادم DNS قابلة للتكوين عبر RESOLVER_DOWNLOAD_CONNECT_TIMEOUT وRESOLVER_DOWNLOAD_MAX_TIME وRESOLVER_DOWNLOAD_RETRY وRESOLVER_DOWNLOAD_RETRY_DELAY.
  • DNS_BRUTE_TIMEOUT=0 وDNS_RESOLVE_TIMEOUT=0 يعطلان المهلة الصارمة افتراضيًا (موصى به لمجموعات الأهداف الكبيرة جدًا). لا يزال تقدم نبضات القلب يُطبع كل DNS_HEARTBEAT_INTERVAL_SECONDS.```bash DNS_BRUTE_TIMEOUT=4h DNS_RESOLVE_TIMEOUT=6h DNS_HEARTBEAT_INTERVAL_SECONDS=20
root@kitploit:~
**التفاصيل الكاملة**: راجع [دليل الإعداد](https://github.com/six2dez/reconftw/wiki/3.-Configuration-file).

---

## 🚀 الاستخدام

يدعم reconFTW أوضاعًا وخيارات متعددة للاستطلاع المرن. استخدم علامة `-h` لعرض قائمة المساعدة.

### خيارات الهدف

| العلم | الوصف                                                  |
| ---- | ------------------------------------------------------------ |
| `-d` | نطاق هدف واحد (مثل: `example.com`)                   |
| `-l` | ملف يحتوي على قائمة النطاقات المستهدفة (نطاق واحد لكل سطر)              |
| `-m` | هدف متعدد النطاقات (مثل: اسم الشركة للنطاقات ذات الصلة) |
| `-x` | استبعاد النطاقات الفرعية (قائمة خارج النطاق)                       |
| `-i` | تضمين النطاقات الفرعية (قائمة داخل النطاق)                           |

### خيارات الوضع

| العلم | الوصف                                                           |
| ---- | --------------------------------------------------------------------- |
| `-r` | **الاستطلاع**: استطلاع كامل دون هجمات نشطة                 |
| `-s` | **النطاقات الفرعية**: تعداد النطاقات الفرعية، وفحص الويب، والاستيلاء     |
| `-p` | **السلبي**: استطلاع سلبي فقط                              |
| `-a` | **الكل**: استطلاع كامل بالإضافة إلى فحوصات الثغرات النشطة         |
| `-w` | **الويب**: فحوصات الثغرات على أهداف ويب محددة                 |
| `-n` | **OSINT**: فحص OSINT دون تعداد النطاقات الفرعية أو الهجمات        |
| `-z` | **Zen**: استطلاع خفيف مع فحوصات أساسية وبعض الثغرات |
| `-c` | **مخصص**: تشغيل وظيفة محددة (يتطلب وسائط إضافية)   |
| `-h` | إظهار قائمة المساعدة                                                        |

### الخيارات العامة

| العلم              | الوصف                                              |
| ----------------- | -------------------------------------------------------- |
| `--deep`          | تمكين الفحص العميق (أبطأ، يُنصح باستخدام VPS)           |
| `-f`              | مسار ملف الإعداد المخصص                           |
| `-o`              | دليل الإخراج للنتائج                             |
| `-v`              | تمكين الفحص الموزع عبر Ax                           |
| `--vps-count`     | تجاوز عدد مثيلات أسطول Ax لهذا التشغيل            |
| `-q`              | تعيين حد المعدل (الطلبات في الثانية)                     |
| `-y`              | تمكين تحليل النتائج بالذكاء الاصطناعي                              |
| `--check-tools`   | الخروج إذا كانت الأدوات المطلوبة مفقودة                       |
| `--quick-rescan`  | تخطي الوحدات الثقيلة عند عدم العثور على نطاقات فرعية/مواقع جديدة       |
| `--health-check`  | تشغيل فحص صحة النظام والخروج                         |
| `--incremental`   | فحص النتائج الجديدة فقط منذ آخر تشغيل                    |
| `--adaptive-rate` | ضبط حدود المعدل تلقائيًا عند الأخطاء (429/503)     |
| `--dry-run`       | إظهار ما سيتم تنفيذه دون تشغيل الأوامر     |
| `--parallel`      | تشغيل الوظائف المستقلة بالتوازي (أسرع، ذاكرة أكبر) |
| `--no-parallel`   | فرض التنفيذ التسلسلي حتى إذا كان التوازي مفعلاً   |
| `--monitor`       | وضع المراقبة المستمرة (هدف واحد؛ يدعم `-w` خيار `-l`) |
| `--monitor-interval` | الدقائق بين دورات المراقبة                        |
| `--monitor-cycles`   | التوقف بعد N دورة (0 = بلا حدود)                    |
| `--report-only`   | إعادة بناء ملفات التقرير دون فحص                |
| `--refresh-cache` | فرض تحديث المحللين/قوائم الكلمات المخزنة مؤقتًا              |
| `--export`        | تصدير الملفات: `json` أو `html` أو `csv` أو `all`        |

### أمثلة الاستخدام

1. **استطلاع كامل على هدف واحد**:   ```bash
   ./reconftw.sh -d target.com -r
  1. الاستطلاع على أهداف متعددة: ```bash ./reconftw.sh -l targets.txt -r -o /path/to/output/
    root@kitploit:~
  2. استطلاع عميق (يُنصح باستخدام VPS): ```bash ./reconftw.sh -d target.com -r --deep
    root@kitploit:~
  3. الوضع المتوازي (أسرع، يتطلب ذاكرة وصول عشوائي أكبر): ```bash ./reconftw.sh -d target.com -r --parallel
    root@kitploit:~
  4. فرض الوضع التسلسلي: ```bash ./reconftw.sh -d target.com -r --no-parallel
    root@kitploit:~
  5. استطلاع متعدد النطاقات: ```bash ./reconftw.sh -m company -l domains.txt -r
    root@kitploit:~
  6. تكامل Ax: ```bash ./reconftw.sh -d target.com -r -v
    root@kitploit:~
  7. تكامل Ax مع تجاوز الأسطول: ```bash ./reconftw.sh -d target.com -r -v 30
    root@kitploit:~
  8. استطلاع كامل مع الهجمات (وضع YOLO): ```bash ./reconftw.sh -d target.com -a
    root@kitploit:~
  9. إظهار المساعدة: ```bash ./reconftw.sh -h
root@kitploit:~
11. **فرض تحديث ذاكرة التخزين المؤقت**:   ```bash
./reconftw.sh -d target.com -r --refresh-cache
  1. تصدير جميع مخرجات التقرير: ```bash ./reconftw.sh -d target.com -r --export all
root@kitploit:~
13. **المراقبة المستمرة (كل 30 دقيقة، 48 دورة)**:   ```bash
./reconftw.sh -d target.com -r --monitor --monitor-interval 30 --monitor-cycles 48
  1. إعادة بناء التقارير فقط (بدون فحص): ```bash ./reconftw.sh -d target.com --report-only --export all
root@kitploit:~
**الدليل الكامل**: راجع [دليل الاستخدام](https://github.com/six2dez/reconftw/wiki/2.-Usage-Guide).

---

## ☁️ دعم إطار عمل Ax (المعروف سابقًا باسم Axiom)

يتكامل reconFTW مع [Ax](https://github.com/attacksurge/ax) للمسح الموزّع، مما يقلل وقت التنفيذ عبر توزيع المهام على عدة مثيلات سحابية.

- **الإعداد**: اختر `reconftw` كمزوّد أثناء إعداد Ax (`axiom-configure`).
- **إدارة الأسطول**: أنشئ الأساطيل وأتلفها تلقائيًا (`AXIOM_FLEET_LAUNCH`, `AXIOM_FLEET_SHUTDOWN`) أو استخدم أسطولًا موجودًا.
- **الإعدادات**: عيّن حجم الأسطول والمنطقة والاسم في `reconftw.cfg` (`AXIOM_FLEET_COUNT`, `AXIOM_FLEET_REGIONS`, `AXIOM_FLEET_NAME`).

**مثال**:```bash
./reconftw.sh -d target.com -r -v

التفاصيل: راجع وثائق Ax الرسمية ومستودع attacksurge/ax.


💻 دعم Faraday

يتكامل reconFTW مع Faraday لإعداد التقارير المستندة إلى الويب وإدارة الثغرات الأمنية.

  • الإعداد: ثبّت Faraday، وقم بالمصادقة عبر faraday-cli، وضبط مساحة العمل في reconftw.cfg (FARADAY_WORKSPACE).
  • الاستخدام: فعّله بتعيين FARADAY=true في reconftw.cfg.

🧠 تكامل الذكاء الاصطناعي

يستخدم reconFTW الذكاء الاصطناعي لإنشاء تقارير مفصّلة من نتائج الفحص باستخدام الأداة reconftw_ai.

  • النموذج: نموذج ذكاء اصطناعي قابل للتهيئة (مثل llama3:8b عبر AI_MODEL).
  • أنواع التقارير: Markdown أو نص عادي (AI_REPORT_TYPE).
  • الملفات الشخصية: تنفيذي، أو موجز، أو صائد ثغرات (AI_REPORT_PROFILE).
  • المخرجات المنظمة: يخزّن reconftw تقريرًا قابلًا للقراءة آليًا في ai_result/reconftw_analysis.json.
  • ضوابط السياق: حدّد حجم الإدخال باستخدام AI_MAX_CHARS_PER_FILE وAI_MAX_FILES_PER_CATEGORY.
  • ضوابط الأمان: بدّل وضع التنقيح والوضع الصارم باستخدام AI_REDACT وAI_STRICT.

مثال:```yaml AI_EXECUTABLE="python3" AI_MODEL="llama3:8b" AI_REPORT_TYPE="md" AI_REPORT_PROFILE="bughunter" AI_MAX_CHARS_PER_FILE=50000 AI_MAX_FILES_PER_CATEGORY=200 AI_REDACT=true AI_ALLOW_MODEL_PULL=false AI_STRICT=false

root@kitploit:~
---

## 🗂️ إدارة البيانات

قم بإدارة بيانات الفحص ومفاتيح API بشكل آمن باستخدام مستودع خاص.

عندما يكون `ASSET_STORE=true`، يقوم reconFTW بتجميع النتائج الرئيسية في `assets.jsonl` أثناء كل تشغيل، مما يسهل مزامنة التغييرات القابلة للتنفيذ فقط إلى مستودعك الخاص.

### Makefile

استخدم `Makefile` المقدم لإدارة المستودع بسهولة (يتطلب [GitHub CLI](https://cli.github.com/)).

1. **التهيئة الأولية**:   ```bash
   export PRIV_REPO="$HOME/reconftw-data"
   make bootstrap
  1. المزامنة مع المستودع الرئيسي (Upstream): ```bash make sync
    root@kitploit:~
  2. رفع البيانات: ```bash make upload
    root@kitploit:~
  3. سكربتات الفحص / التنسيق: ```bash make lint # shellcheck for reconftw.sh, modules/*.sh & install.sh make fmt # shfmt with project defaults
    root@kitploit:~
  4. تشغيل الاختبارات: ```bash make test # unit tests (bats-core) make test-all # unit + integration tests
    root@kitploit:~

دليل الاستخدام

  1. أنشئ مستودعًا خاصًا على GitHub/GitLab.
  2. استنسخ المستودع وقم بإعداده: ```bash git clone https://github.com/yourusername/reconftw-data cd reconftw-data git commit --allow-empty -m "Initial commit" git remote add upstream https://github.com/six2dez/reconftw git fetch upstream git rebase upstream/main master
    root@kitploit:~
  3. رفع التغييرات: ```bash git add . git commit -m "Data upload" git push origin master
    root@kitploit:~
  4. تحديث الأداة: ```bash git fetch upstream git rebase upstream/main master
    root@kitploit:~

🧪 الاختبار

تستخدم أداة reconFTW إطار bats-core للاختبار الآلي.

تثبيت bats-core```bash

macOS

brew install bats-core

Debian/Ubuntu

apt install bats

From source

git clone https://github.com/bats-core/bats-core.git /tmp/bats sudo /tmp/bats/install.sh /usr/local

root@kitploit:~
### تشغيل الاختبارات```bash
# Unit tests only
make test

# Unit + integration tests
make test-all

# Via the runner script
./tests/run_tests.sh         # unit only
./tests/run_tests.sh --all   # unit + integration

بنية دليل الاختبار```

tests/ ├── run_tests.sh # Test runner script ├── unit/ # Unit tests (fast, no network) │ ├── test_sanitize.bats │ ├── test_utils.bats │ └── test_validation.bats ├── integration/ # Integration tests (require installed tools) │ └── test_smoke.bats ├── security/ # Security tests (injection, etc.) │ └── test_injection.bats ├── mocks/ # Mock tools for offline testing └── fixtures/ # Shared test data files

root@kitploit:~
### تشغيل اختبارات الأمان```bash
# Test command injection prevention
make test-security

# Or directly
bats tests/security/

كتابة الاختبارات

تستخدم الاختبارات نمط --source-only لتحميل الدوال دون تنفيذ السكربت الرئيسي:```bash #!/usr/bin/env bats

setup() { source ./reconftw.sh --source-only }

@test "sanitize_domain strips invalid chars" { result="$(sanitize_domain 'exam;ple.com')" [ "$result" = "example.com" ] }

root@kitploit:~
### خط أنابيب CI

يعمل سير عمل GitHub Actions (`.github/workflows/tests.yml`) عند كل push وpull request:

1. **ShellCheck** — يفحص `reconftw.sh` و`modules/*.sh` و`install.sh`
2. **اختبارات الوحدة** — يشغّل جميع ملفات `tests/unit/*.bats`
3. **اختبارات التكامل** — يثبّت reconFTW ويتحقق من توفر الأدوات

---

## خريطة ذهنية/سير العمل

![Mindmap](https://assets.kitploit.com/production/public/readmes/670/935e9af062e82113e5ca06f4b13e80f243430684e8ece2643e868f3d2afa1403.png)

---

## فيديو توضيحي

![Video](https://raw.githubusercontent.com/six2dez/reconftw/HEAD/images/reconFTW.gif)

---

## 🤝 كيفية المساهمة

راجع [CONTRIBUTING.md](https://github.com/six2dez/reconftw/blob/main/CONTRIBUTING.md) للحصول على الدليل الكامل للمساهمة، بما في ذلك إعداد التطوير، وأسلوب الكود، والاختبارات، وعملية الـPR.

روابط سريعة:

- [الإبلاغ عن خطأ](https://github.com/six2dez/reconftw/issues/new/choose)
- [إرسال Pull Request](https://github.com/six2dez/reconftw/tree/dev) (استهدف فرع `dev`)
- [مدونة قواعد السلوك](https://github.com/six2dez/reconftw/blob/main/CODE_OF_CONDUCT.md)

---

## 🔒 الأمان

لسياسة الأمان، وإدارة الأسرار، والإبلاغ عن الثغرات، راجع [SECURITY.md](https://github.com/six2dez/reconftw/blob/main/SECURITY.md).

---

## ❓ هل تحتاج إلى مساعدة؟

- **الويكي**: استكشف [ويكي reconFTW](https://github.com/six2dez/reconftw/wiki).
- **الأسئلة الشائعة**: راجع [الأسئلة الشائعة](https://github.com/six2dez/reconftw/wiki/7.-FAQs).
- **المجتمع**: انضم إلى [خادم Discord](https://discord.gg/R5DdXVEdTy) أو [مجموعة Telegram](https://t.me/joinchat/TO_R8NYFhhbmI5co).

---

## 💖 دعم هذا المشروع

ادعم تطوير reconFTW من خلال:

- **Buy Me a Coffee**: [buymeacoffee.com/six2dez](https://www.buymeacoffee.com/six2dez)

[<img src="https://assets.kitploit.com/production/public/readmes/670/1177bf77de4c288d45b816dd405a8b5027116f0b1893449986cf200c765707ad.webp">](https://www.buymeacoffee.com/six2dez)

- **إحالة DigitalOcean**: [رابط الإحالة](https://www.digitalocean.com/?refcode=f362a6e193a1&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge)

<a href="https://www.digitalocean.com/?refcode=f362a6e193a1&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge"><img src="https://web-platforms.sfo2.cdn.digitaloceanspaces.com/WWW/Badge%201.svg" alt="DigitalOcean Referral Badge" /></a>

- **الرعاية عبر GitHub**: [github.com/sponsors/six2dez](https://github.com/sponsors/six2dez)

---

## 🙏 شكر وتقدير

شكر خاص للخدمات التالية لدعمها reconFTW:

- [C99](https://api.c99.nl/)
- [CIRCL](https://www.circl.lu/)
- [NetworksDB](https://networksdb.io/)
- [ipinfo](https://ipinfo.io/)
- [hackertarget](https://hackertarget.com/)
- [Censys](https://censys.io/)
- [Fofa](https://fofa.info/)
- [intelx](https://intelx.io/)
- [Whoxy](https://www.whoxy.com/)

---

## 📝 سجل التغييرات

راجع [CHANGELOG.md](https://github.com/six2dez/reconftw/blob/main/CHANGELOG.md) للحصول على قائمة مفصلة بالتغييرات في كل إصدار.

---

## 🛠️ التطوير

### هيكل المشروع```
reconftw/
├── reconftw.sh          # Main entry point (~500 lines)
├── reconftw.cfg         # Configuration file
├── modules/             # Phase modules
│   ├── utils.sh         # Utilities, sanitization, caching, circuit breaker
│   ├── core.sh          # Framework core, logging, lifecycle, health check
│   ├── modes.sh         # Scan modes, argument parsing
│   ├── subdomains.sh    # Subdomain enumeration
│   ├── web.sh           # Web analysis, nuclei scans
│   ├── vulns.sh         # Vulnerability scanning
│   ├── osint.sh         # OSINT functions
│   └── axiom.sh         # Ax/Axiom fleet helpers
├── lib/                 # Pure utility libraries
│   └── validation.sh    # Input validation functions
├── tests/               # Test suite (100+ tests)
│   ├── unit/            # Unit tests (bats)
│   ├── integration/     # Integration/smoke tests
│   └── security/        # Injection prevention tests
├── docs/                # Documentation
│   └── ARCHITECTURE.md  # Detailed architecture guide
└── secrets.cfg.example  # Template for API keys

تشغيل الاختبارات```bash

make test # Unit tests make test-security # Security tests make test-all # All tests make lint # Shellcheck make lint-fix # Auto-fix with shfmt

root@kitploit:~
### سير عمل التطوير```bash
# 1. Source without executing (for testing)
source ./reconftw.sh --source-only

# 2. Test individual functions
sanitize_domain "test;domain.com"

# 3. Run health check
./reconftw.sh --health-check

# 4. Dry run to preview
./reconftw.sh -d example.com -r --dry-run

المساهمة

راجع CONTRIBUTING.md للحصول على إرشادات التطوير و docs/ARCHITECTURE.md للتفاصيل التقنية.


📜 الترخيص

reconFTW مرخص بموجب MIT License.


⭐ سجل النجوم

Star History Chart

تنزيل الأداة
cloud_enum
  • النطاقات القابلة للانتحال: التحقق من النطاقات المعرضة للانتحال (spoofcheck).
  • nuclei
    dnstake
  • نقل منطقة DNS: التحقق من عمليات نقل مناطق DNS ذات التكوين الخاطئ (dig).
  • الحاويات السحابية: تحديد حاويات السحابة ذات التكوين الخاطئ وأصول التخزين المكشوفة (S3Scanner وcloud_enum).
  • ملاحظة التغطية السحابية: لم تعد فحوصات الحاويات السحابية تشمل تغطية Alibaba OSS بعد استبدال CloudHunter بـ cloud_enum.
  • ترحيل المخرجات السحابية: تمت إزالة القطع الأثرية القديمة للحاويات cloudhunter_*؛ استخدم subdomains/cloud_enum_buckets_trufflehog.txt بدلاً من ذلك.
  • بحث IP العكسي: اكتشاف النطاقات الفرعية عبر نطاقات IP (hakip2host).
  • GQLSpection
  • اكتشاف المعاملات: القوة الغاشمة للمعاملات المخفية على نقاط النهاية (arjun).
  • تدقيق WebSocket: التحقق من مصافحات الترقية ومعالجة الأصل على نقاط نهاية ws:// وwss://.
  • انعكاس gRPC: فحص منافذ gRPC الشائعة بحثًا عن انعكاس الخدمة المكشوف (grpcurl).
  • بصمة خدمات LLM (اختياري): فحص نقاط نهاية الويب/API المكتشفة بحثًا عن خدمات LLM المكشوفة باستخدام julius.
  • الاختبار (Fuzzing): تنفيذ اختبار الدلائل والمعاملات (ffuf).
  • فرز امتدادات الملفات: تنظيم عناوين URL حسب امتدادات الملفات.
  • توليد قوائم الكلمات: إنشاء قوائم كلمات مخصصة للاختبار.
  • قاموس كلمات المرور: توليد قواميس كلمات المرور من المحتوى المباشر (cewler).
  • فحص الأسماء القصيرة IIS: اكتشاف ثغرات الأسماء القصيرة في IIS (shortscan).
  • nomore403
  • اختبار المعاملات: اختبار معاملات URL بحثًا عن الثغرات (nuclei).
  • ASSET_STORE
  • تقرير موحّد: يولّد تلقائيًا report/report.json وreport/index.html في نهاية الفحص.
  • دعم ARM: متوافق مع Raspberry Pi ومعماريات ARM (بما في ذلك MacOS MX).
  • فحص الصحة: فحص صحة النظام مدمج عبر --health-check (يُستخدم أيضًا بواسطة Docker HEALTHCHECK).
  • الوضع التزايدي: يفحص فقط الاكتشافات الجديدة منذ آخر تشغيل (--incremental).
  • تحديد المعدل التكيفي: يتراجع تلقائيًا عند أخطاء 429/503 (--adaptive-rate).
  • تسجيل منظم: مخرجات سجل JSON اختيارية للتحليل المتقدم (STRUCTURED_LOGGING).
  • تعقيم المدخلات: جميع مدخلات المستخدم تُعقّم لمنع حقن الأوامر.
  • وضع المحاكاة: يعاين ما سيتم تنفيذه دون تشغيل الأوامر (--dry-run).
  • الوضع المتوازي: يشغّل الوظائف المستقلة بالتوازي لفحوصات أسرع (--parallel، يُعطّل بـ --no-parallel).
  • معمارية معيارية: قاعدة الكود مقسمة إلى 8 وحدات مركّزة لسهولة الصيانة.
  • إدارة الأسرار: متغيرات البيئة، وsecrets.cfg، وأسرار Docker وقت التشغيل (انظر SECURITY.md).
  • قاطع الدائرة: يتخطى الأدوات تلقائيًا بعد الإخفاقات المتكررة لتجنب تعليق الفحص.
  • نظام نقاط التفتيش: يستأنف الفحوصات المتقطعة من آخر مرحلة ناجحة.
  • دعم macOS الأصلي: توافق كامل مع macOS (أدوات BSD الأساسية، Homebrew Bash 4+).