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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/opsdisk/pagodo
الاستخبارات مفتوحة المصدر (OSINT)الاستطلاعتحليل الثغرات الأمنيةجمع المعلوماتأمن الويب
GitHubopsdisk/pagodo

pagodo

pagodo (Passive Google Dork) - أتمتة استخراج والبحث في Google Hacking Database

عرض المستودع
3.4k550منذ 11 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
pagodo — pagodo (Passive Google Dork) - أتمتة استخراج والبحث في Google Hacking Database | Kitploit

pagodo - البحث الجوجلي المبني على الثغرات (Passive Google Dork)

مقدمة

pagodo يقوم بأتمتة البحث في جوجل عن صفحات وتطبيقات ويب قد تكون عرضة للخطر على الإنترنت. يحل محل إجراء عمليات بحث جوجل يدويًا باستخدام واجهة متصفح ويب.

يتكون من جزأين. الجزء الأول هو ghdb_scraper.py الذي يسترجع أحدث ثغرات جوجل (dorks)، والجزء الثاني هو pagodo.py الذي يستخدم المعلومات التي جمعها ghdb_scraper.py.

مكتبة بحث جوجل الأساسية تستخدم الآن yagooglesearch الأكثر مرونة بدلاً من googlesearch. اطّلع على ملف README الخاص بـ yagooglesearch للحصول على شرح أعمق لاختلافات المكتبات وقدراتها.

هذا الإصدار من pagodo يدعم أيضًا الدعم الأصلي لبروتوكولات HTTP(S) وSOCKS5، لذا لا حاجة لتغليفه بأداة مثل proxychains4 إذا كنت بحاجة لدعم البروكسي. يمكنك تحديد عدة بروكسيات لاستخدامها بطريقة round-robin عن طريق توفير سلسلة مفصولة بفواصل من البروكسيات باستخدام المفتاح -p.

ما هي ثغرات جوجل (Google dorks)؟

تحتفظ Offensive Security بقاعدة بيانات اختراق جوجل (GHDB) الموجودة هنا: https://www.exploit-db.com/google-hacking-database. وهي مجموعة من عمليات البحث في جوجل، تسمى dorks، يمكن استخدامها للعثور على أجهزة أو معلومات قيمة قد تكون عرضة للخطر والتي تلتقطها روبوتات بحث جوجل.

الشروط والأحكام

الشروط والأحكام الخاصة بـ pagodo هي نفس الشروط والأحكام الموجودة في yagooglesearch.

يتم توفير هذا الكود كما هو، وأنت المسؤول بالكامل عن كيفية استخدامه. قد يؤدي استخراج نتائج بحث جوجل إلى انتهاك شروط الخدمة. تحتوي مكتبة بحث جوجل بلغة Python أخرى على بعض المعلومات/النقاشات المثيرة للاهتمام:

  • المشكلة الأصلية
  • رد
  • قام المؤلف بإنشاء شروط وأحكام منفصلة
  • ...تحتوي على رابط لهذه المدونة

الطريقة المفضلة لجوجل هي استخدام API.

التثبيت

النصوص البرمجية مكتوبة للـ Python 3.6+. قم باستنساخ مستودع git وتثبيت المتطلبات.

root@kitploit:~
git clone https://github.com/opsdisk/pagodo.git
cd pagodo
python3 -m venv .venv  # إذا كنت تستخدم بيئة افتراضية
source .venv/bin/activate  # إذا كنت تستخدم بيئة افتراضية
pip install --upgrade pip setuptools
pip install -r requirements.txt

ghdb_scraper.py

للبدء، يحتاج pagodo.py إلى قائمة بجميع ثغرات جوجل الحالية. يحتوي المستودع على مجلد dorks/ مع الثغرات الحالية وقت آخر تشغيل لـ ghdb_scraper.py. يُنصح بتشغيل ghdb_scraper.py للحصول على أحدث البيانات قبل تشغيل pagodo.py. يحتوي مجلد dorks/ على:

  • الملف all_google_dorks.txt الذي يحتوي على جميع ثغرات جوجل، كل ثغرة في سطر منفصل
  • الملف all_google_dorks.json وهو استجابة JSON من GHDB
  • ثغرات فئات فردية

فئات الثغرات:

root@kitploit:~
categories = {
    1: "Footholds",
    2: "File Containing Usernames",
    3: "Sensitives Directories",
    4: "Web Server Detection",
    5: "Vulnerable Files",
    6: "Vulnerable Servers",
    7: "Error Messages",
    8: "File Containing Juicy Info",
    9: "File Containing Passwords",
    10: "Sensitive Online Shopping Info",
    11: "Network or Vulnerability Data",
    12: "Pages Containing Login Portals",
    13: "Various Online devices",
    14: "Advisories and Vulnerabilities",
}

استخدام ghdb_scraper.py كسكريبت

اكتب جميع الثغرات إلى all_google_dorks.txt وall_google_dorks.json والفئات الفردية إذا كنت تريد المزيد من البيانات السياقية حول كل ثغرة.

root@kitploit:~
python ghdb_scraper.py -s -j -i

استخدام ghdb_scraper كوحدة

ترجع الدالة ghdb_scraper.retrieve_google_dorks() قاموسًا بهيكل البيانات التالي:

root@kitploit:~
ghdb_dict = {
    "total_dorks": total_dorks,
    "extracted_dorks": extracted_dorks,
    "category_dict": category_dict,
}

استخدام شل Python (مثل python أو ipython) لاستكشاف البيانات:

root@kitploit:~
import ghdb_scraper

dorks = ghdb_scraper.retrieve_google_dorks(save_all_dorks_to_file=True)
dorks.keys()
dorks["total_dorks"]

dorks["extracted_dorks"]

dorks["category_dict"].keys()

dorks["category_dict"][1]["category_name"]

pagodo.py

استخدام pagodo.py كسكريبت

root@kitploit:~
python pagodo.py -d example.com -g dorks.txt

استخدام pagodo كوحدة

ترجع الدالة pagodo.Pagodo.go() قاموسًا بهيكل البيانات أدناه (الثغرات المستخدمة هي أمثلة وهمية):

root@kitploit:~
{
    "dorks": {
        "inurl:admin": {
            "urls_size": 3,
            "urls": [
                "https://github.com/marmelab/ng-admin",
                "https://github.com/settings/admin",
                "https://github.com/akveo/ngx-admin",
            ],
        },
        "inurl:gist": {
            "urls_size": 3,
            "urls": [
                "https://gist.github.com/",
                "https://gist.github.com/index",
                "https://github.com/defunkt/gist",
            ],
        },
    },
    "initiation_timestamp": "2021-08-27T11:35:30.638705",
    "completion_timestamp": "2021-08-27T11:36:42.349035",
}

استخدام شل Python (مثل python أو ipython) لاستكشاف البيانات:

root@kitploit:~
import pagodo

pg = pagodo.Pagodo(
    google_dorks_file="dorks.txt",
    domain="github.com",
    max_search_result_urls_to_return_per_dork=3,
    save_pagodo_results_to_json_file=None,  # None = إنشاء اسم الملف تلقائيًا، وإلا مرر سلسلة للمسار واسم الملف
    save_urls_to_file=None,  # None = إنشاء اسم الملف تلقائيًا، وإلا مرر سلسلة للمسار واسم الملف
    verbosity=5,
)
pagodo_results_dict = pg.go()

pagodo_results_dict.keys()

pagodo_results_dict["initiation_timestamp"]

pagodo_results_dict["completion_timestamp"]

for key,value in pagodo_results_dict["dorks"].items():
    print(f"dork: {key}")
    for url in value["urls"]:
        print(url)

ضبط النتائج

تحديد نطاق النتائج لنطاق معين

يمكن استخدام المفتاح -d لتحديد نطاق النتائج لنطاق معين ويعمل كعامل بحث جوجل:

root@kitploit:~
site:github.com

وقت الانتظار بين عمليات بحث الثغرات

  • -i - حدد الحد الأدنى للتأخير بين عمليات بحث الثغرات، بالثواني. لا تجعلها صغيرة جدًا، وإلا سيتم حظر عنوان IP الخاص بك (HTTP 429) بسرعة.
  • -x - حدد الحد الأقصى للتأخير بين عمليات بحث الثغرات، بالثواني. لا تجعلها كبيرة جدًا وإلا ستستغرق عمليات البحث وقتًا طويلاً.

يتم استخدام القيم المقدمة من -i و -x لإنشاء قائمة من 20 وقت انتظار عشوائي، يتم اختيارها بشكل عشوائي بين كل عملية بحث ثغرة مختلفة في جوجل.

عدد النتائج المراد إرجاعها

-m - الحد الأقصى الإجمالي لنتائج البحث المراد إرجاعها لكل ثغرة جوجل. يمكن لكل طلب بحث جوجل سحب 100 نتيجة كحد أقصى في المرة الواحدة، لذا إذا اخترت -m 500، فسيتم إجراء 5 استعلامات بحث منفصلة لكل ثغرة جوجل، مما سيزيد من الوقت اللازم للإكمال.

حفظ المخرجات

-o [المسار الاختياري/للملف.json] - حفظ المخرجات إلى ملف JSON. إذا لم تحدد اسم ملف، فسيتم إنشاء ملف بختم زمني.

-s [المسار الاختياري/للملف.txt] - حفظ عناوين URL إلى ملف نصي. إذا لم تحدد اسم ملف، فسيتم إنشاء ملف بختم زمني.

حفظ السجلات

--log [المسار الاختياري/للملف.log] - حفظ السجلات إلى الملف المحدد. إذا لم تحدد اسم ملف، فسيتم استخدام الملف الافتراضي pagodo.py.log في جذر دليل pagodo.

جوجل تحظرني!

إن إجراء أكثر من 7300 طلب بحث إلى جوجل بأسرع ما يمكن لن ينجح ببساطة. ستقوم جوجل بحقك باكتشافه كـ bot وحظر عنوان IP الخاص بك لفترة زمنية. أحد الحلول هو استخدام مجموعة من بروكسيات HTTP(S)/SOCKS وتمريرها إلى pagodo.

دعم البروكسي الأصلي

مرر سلسلة مفصولة بفواصل من البروكسيات إلى pagodo باستخدام المفتاح -p.

root@kitploit:~
python pagodo.py -g dorks.txt -p http://myproxy:8080,socks5h://127.0.0.1:9050,socks5h://127.0.0.1:9051

يمكنك حتى تقليل قيم -i و -x لأنك ستستخدم عناوين IP مختلفة للبروكسيات. يتم اختيار البروكسيات التي تم تمريرها إلى pagodo بطريقة round robin.

دعم proxychains4

حل آخر هو استخدام proxychains4 لتوزيع الاستعلامات بطريقة round robin.

تثبيت proxychains4

root@kitploit:~
apt install proxychains4 -y

قم بتحرير ملف التكوين /etc/proxychains4.conf لتوزيع الاستعلامات عبر خوادم بروكسي مختلفة. في المثال أدناه، تم إعداد بروكسي socks ديناميكي مختلفين بمنافذ استماع محلية مختلفة (9050 و 9051).

root@kitploit:~
vim /etc/proxychains4.conf
root@kitploit:~
round_robin
chain_len = 1
proxy_dns
remote_dns_subnet 224
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks4 127.0.0.1 9050
socks4 127.0.0.1 9051

ضع proxychains4 أمام سكريبت pagodo.py وسيتم توجيه كل استعلام request عبر بروكسي مختلف (وبالتالي من عنوان IP مختلف).

root@kitploit:~
proxychains4 python pagodo.py -g dorks/all_google_dorks.txt -o [المسار الاختياري/للملف.json] -s [المسار الاختياري/للملف.txt]

لاحظ أن هذا قد لا يبدو طبيعيًا لجوجل إذا قمت بـ:

  1. محاكاة "التصفح" إلى google.com من IP #1
  2. إجراء أول استعلام بحث من IP #2
  3. محاكاة النقر على "التالي" لإجراء استعلام البحث الثاني من IP #3
  4. محاكاة النقر على "التالي" لإجراء استعلام البحث الثالث من IP #1

لهذا السبب، يفضل استخدام دعم البروكسي المدمج -p لأنه، كما هو موضح في توثيق yagooglesearch، "يتم استخدام البروكسي المقدم طوال دورة حياة البحث بالكامل لجعله يبدو أكثر بشرية، بدلاً من التنقل بين بروكسيات مختلفة لأجزاء مختلفة من البحث."

الترخيص

موزع بموجب رخصة GNU العامة الإصدار 3.0. راجع LICENSE لمزيد من المعلومات.

التواصل

@opsdisk

رابط المشروع: https://github.com/opsdisk/pagodo

تنزيل الأداة