
GyoiThon هي أداة اختبار اختراق متنامية تستخدم التعلم الآلي.

الصفحة اليابانية هنا.
يمكن لـ GyoiThon الجديد (الإصدار 0.0.4) سرد النطاقات الفرعية الخاصة بك التي تواجه الإنترنت. وإذا تم نشر النطاق الفرعي كخدمة ويب، فإن GyoiThon يقوم بإجراء فحص صحي لتقييم الثغرات الأمنية غير التدميرية.
| ملاحظة |
|---|
| تستخدم الوظيفة الجديدة واجهة برمجة تطبيقات بحث Google المخصص (API). لذا إذا كنت تستخدم الوظيفة الجديدة، فيجب عليك إعداد مفتاح API لبحث Google المخصص. |
domain_list.csv كما يلي: ```
"Domain Name"
mbsd.jpوتقوم بتنفيذ الأمر التالي. ```
root@kali:~/GyoiThon# python3 gyoithon.py -i --domain_list
ونتيجة لذلك، تحصل على قائمة من النطاقات الفرعية المرتبطة بالنطاق المحدد.
ونتيجة لذلك، تحصل على قائمة بالمجالات الفرعية وتقرير تقييم.
|المؤشر|النطاق|النطاق الفرعي|عنوان IP|حالة الوصول (http)|الموقع (http)|حالة الوصول (https)|الموقع (https)|سجلات Whois|نتائج التقييم|
|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
|1|mbsd.jp|mbsd.jp|['40.115.251.148']|301|https://www.mbsd.jp/|301|https://www.mbsd.jp/|***|***|
|2|mbsd.jp|www.mbsd.jp|['40.115.251.148']|301|https://www.mbsd.jp/|200|-|-|***|
|3|mbsd.jp|www2.mbsd.jp|['40.115.251.148']|301|https://www.mbsd.jp/|200|-|-|***|
## نظرة عامة
GyoiThon هي **أداة جمع المعلومات الاستخباراتية** لخادم الويب.
تقوم GyoiThon بتنفيذ **الوصول عن بُعد** إلى خادم الويب المستهدف و**تحديد المنتج الذي يعمل على الخادم** مثل CMS (نظام إدارة المحتوى) وبرنامج خادم الويب والإطار ولغة البرمجة وغيرها. ويمكنها **تنفيذ وحدات الاستغلال** للمنتجات المحددة باستخدام Metasploit. تقوم GyoiThon **بالتنفيذ التلقائي الكامل** للإجراءات المذكورة أعلاه.
الميزات الرئيسية لـ GyoiThon هي التالية.
* الوصول عن بُعد / تلقائي بالكامل
يمكن لـ GyoiThon **بشكل تلقائي بالكامل** جمع معلومات خادم الويب المستهدف باستخدام **الوصول عن بُعد** فقط. ما عليك سوى تنفيذ GyoiThon مرة واحدة لعملية التشغيل الخاصة بك.
* اختبار غير مدمر
يمكن لـ GyoiThon جمع معلومات خادم الويب المستهدف باستخدام **الوصول العادي فقط**.
ولكن، عند استخدام جزء من الخيارات، تقوم GyoiThon بالوصول غير الطبيعي مثل إرسال وحدات الاستغلال.
* جمع معلومات متنوعة
تمتلك GyoiThon محركات جمع معلومات استخباراتية متنوعة مثل زاحف الويب (Web crawler) وGoogle Custom Search API وCensys ومستكشف المحتويات الافتراضية وفحص الخدمات السحابية وغيرها. من خلال تحليل المعلومات التي تم جمعها باستخدام **مطابقة الأنماط النصية** و**التعلم الآلي**، يمكن لـ GyoiThon تحديد **المنتج/الإصدار/رقم CVE** الذي يعمل على خادم الويب المستهدف، و**التعليقات HTML غير الضرورية**/**رسائل التصحيح**، و**صفحة تسجيل الدخول** وغيرها.
* فحص الثغرات الحقيقية
يمكن لـ GyoiThon تنفيذ وحدات استغلال للمنتجات المحددة باستخدام Metasploit.
ونتيجة لذلك، يمكنها **فحص الثغرة الحقيقية لخادم الويب المستهدف**.

| ملاحظة |
|:-----|
| إذا كنت مهتمًا، **يرجى استخدامها في بيئة تحت سيطرتك وعلى مسؤوليتك الخاصة**. |
## <a name='Installation'>التثبيت</a>
1. استنساخ مستودع GyoiThon باستخدام git clone.```
root@kali:~# git clone https://github.com/gyoisamurai/GyoiThon.git
3. تثبيت حزم Python المطلوبة.```
root@kali:~# cd GyoiThon
root@kali:~/GyoiThon# pip3 install -r requirements.txt
root@kali:~/GyoiThon# apt install python3-tk
config.ini الخاص بك.باستخدام الوضع الافتراضي بدون خيار ودمج عدة خيارات، يمكن لـ GyoiThon جمع معلومات متنوعة عن خادم الويب الهدف.``` usage: .\gyoithon.py [-s] [-m] [-g] [-e] [-c] [-p] [-l --log_path=] [--no-update-vulndb] .\gyoithon.py [-d --category= --vendor= --package=] .\gyoithon.py [-i] .\gyoithon.py -h | --help options: -s Optional : Examine cloud service. -m Optional : Analyze HTTP response for identify product/version using Machine Learning. -g Optional : Google Custom Search for identify product/version. -e Optional : Explore default path of product. -c Optional : Discover open ports and wrong ssl server certification using Censys. -p Optional : Execute exploit module using Metasploit. -l Optional : Analyze log based HTTP response for identify product/version. -d Optional : Development of signature and train data. -i Optional : Explore relevant FQDN with the target FQDN. -h --help Show this help message and exit.
### التحضير.
1. قم بتحرير الملف الهدف `host.txt`.
يجب عليك كتابة خادم الويب الهدف في `host.txt`.
تنسيق الكتابة هو `protocol FQDN(or IP address) Port Crawling_root_path`.
* مثال.```
https gyoithon.example.com 443 /
إذا كنت تريد الإشارة إلى معلومات متعددة عن الهدف، فعليك الكتابة أدناه.``` https gyoithon.example.com 443 / http 192.168.220.129 80 /vicnum/ https www.example.com 443 /catalog/
| ملاحظة |
|:-------|
| تقوم بإدراج `/` في بداية ونهاية المسار الجذر. |
2. قم بتحرير ملف الإعدادات `config.ini`.
يتم تعريف المعاملات التي يحتاج المستخدم إلى تغييرها في ملف الإعدادات `config.ini`.
إذا كنت ترغب في تغيير المعاملات، قم بتحرير `config.ini`.
تفاصيل `config.ini` موجودة [هنا](https://github.com/gyoisamurai/GyoiThon/wiki/Configure).
### تنفيذ GyoiThon.
#### <a name='default_mode'>1. الوضع الافتراضي.</a>```
root@kali:~/GyoiThon# python3 gyoithon.py
الوضع الافتراضي يجمع المعلومات الدنيا التالية.
Scrapy الخاصة بـ Python.config.ini، يمكنك تغيير إعدادات Scrapy.config.ini، يمكنك ضبط سرعة الفحص.| ملاحظة |
|---|
| سرعة الفحص ودقته في علاقة تبادلية. |
root@kali:~/GyoiThon# python3 gyoithon.py -s
بإضافة الخيار `-s`، يحدد GyoiThon ما إذا كان خادم الويب الهدف يستخدم خدمة سحابية أم لا بالإضافة إلى الوضع الافتراضي.
قبل التنفيذ، يجب تغيير المعامل التالي في `config.ini`.
|التصنيف|المعامل|الوصف|
|:----|:----|:----|
|CloudChecker|azure_ip_range|عنوان URL المصدر لنطاقات عناوين IP لمركز بيانات Azure. |
هذا المعامل هو عنوان URL المصدر لنطاق IP لمركز بيانات Azure. يتغير عنوان URL هذا عدة مرات يوميًا. لذا، يجب الحصول على أحدث عنوان URL من الرابط "انقر هنا للتنزيل يدويًا" في الصفحة "[نطاقات عناوين IP لمركز بيانات Microsoft Azure](https://www.microsoft.com/en-us/download/confirmation.aspx?id=41653)" وتعيينه للمعامل أعلاه قبل تنفيذ GyoiThon.
#### 3. وضع تحليل التعلم الآلي.```
root@kali:~/GyoiThon# python3 gyoithon.py -m
بإضافة الخيار -m، يقوم GyoiThon بتحديد المنتجات/الإصدارات باستخدام التعلم الآلي (Naive Bayes) بالإضافة إلى الوضع الافتراضي.
root@kali:~/GyoiThon# python3 gyoithon.py -g
بإضافة الخيار `-g`، يقوم GyoiThon بتحديد المنتجات/الإصدارات باستخدام Google Custom Search API بالإضافة إلى الوضع الافتراضي. قبل التنفيذ، يجب تعيين [مفتاح API](https://console.cloud.google.com/apis/dashboard) و[معرف محرك البحث](https://support.google.com/customsearch/answer/2649143?hl=ja) إلى المعلمات أدناه.
|الفئة|المعامل|الوصف|
|:----|:----|:----|
|GoogleHack|api_key|مفتاح API لـ Google Custom Search API. |
||search_engine_id|معرف محرك بحث Google. |
| ملاحظة |
|:-----|
| يمكنك استخدام Google Custom Search API المجاني بما يصل إلى 100 استعلام يوميًا. ولكن، إذا كنت ترغب في استخدام أكثر من 100 استعلام، فيجب عليك دفع رسوم خدمة Google Custom Search API. |
#### 5. استكشاف وضع المحتوى الافتراضي.```
root@kali:~/GyoiThon# python3 gyoithon.py -e
من خلال إضافة الخيار -e، يقوم GyoiThon باستكشاف المحتويات الافتراضية للمنتجات مثل أنظمة إدارة المحتوى (CMS) وبرامج خوادم الويب بالإضافة إلى الوضع الافتراضي.
من خلال تغيير المعاملات في ملف config.ini، يمكنك تغيير إعدادات الاستكشاف.
| الفئة | المعامل | الوصف |
|---|---|---|
| ContentExplorer | delay_time | وقت التأخير للاستكشاف. القيمة الافتراضية هي 1 (ثانية). |
| ملاحظة |
|---|
| عند استخدام هذا الخيار، قد يتأثر الخادم بحمل ثقيل بسبب قيام GyoiThon بتنفيذ عدد كبير من الوصولات (مئات الوصولات) ضد خادم الويب الهدف. بالإضافة إلى ذلك، نظرًا لكتابة العديد من سجلات أخطاء 404 في سجل الوصول، قد يتم اكتشافه من قبل مركز عمليات الأمن (SOC). لذلك، إذا كنت تستخدم هذا الخيار، يرجى إخطار الأشخاص المعنيين مثل SOC والمسؤول واستخدامها في بيئة تحت سيطرتك وعلى مسؤوليتك الشخصية. |
root@kali:~/GyoiThon# python3 gyoithon.py -c
بإضافة الخيار `-c`، يقوم GyoiThon بفحص رقم المنفذ المفتوح وشهادة الخادم باستخدام [Censys](https://censys.io/).
قبل التنفيذ، يجب عليك تعيين مفتاح API والمفتاح السري للمعلمات التالية.
|التصنيف|المعامل|الوصف|
|:----|:----|:----|
|Censys|api_id|مفتاح API الخاص بـ Censys.|
||secret|المفتاح السري الخاص بـ Censys.|
#### 7. وضع التعاون مع Metasploit.```
root@kali:~/GyoiThon# python3 gyoithon.py -p
بإضافة الخيار -p، يقوم GyoiThon بفحص الثغرات الحقيقية مثل DoS والـ backdoor باستخدام Metasploit بالإضافة إلى الوضع الافتراضي.
قبل التنفيذ، يجب تشغيل خادم RPC الخاص بـ Metasploit وتعيين المعاملات التالية في config.ini.
| ملاحظة |
|---|
| عند استخدام هذا الخيار، قد يتأثر تشغيل الخادم بشكل كبير لأن GyoiThon ينفذ الاستغلال ضد خادم الويب الهدف. بالإضافة إلى ذلك، قد يتم اكتشاف هذا الخيار من قبل SOC (مركز عمليات الأمن) لأن الاستغلالات تشبه الهجمات الحقيقية. لذا، إذا استخدمت هذا الخيار، يرجى إبلاغ الشخص المعني مثل SOC أو المسؤول واستخدامها في بيئة تحت سيطرتك وعلى مسؤوليتك الخاصة. |
root@kali:~/GyoiThon# python3 gyoithon.py -l --log_path="Full path of stored logs"
بإضافة الخيار `-l`، يقوم GyoiThon بتنفيذ فحوصات متنوعة باستخدام استجابات HTTP المخزنة دون الزحف على الويب.
يفترض هذا الوضع تطبيق الويب الذي لا يستطيع GyoiThon تنفيذ الزحف عليه.
يمكن لـ GyoiThon تنفيذ فحوصات متنوعة مماثلة للزحف على الويب في الوضع الافتراضي باستخدام استجابات HTTP المخزنة التي تم جمعها بواسطة أداة الوكيل المحلي.
| ملاحظة |
|:-------|
| امتداد ملف السجل هو `.log`. |
#### <a name='complex_mode'>9. دمج خيارات متعددة</a>.
##### دمج "وضع فحص الخدمات السحابية" و"وضع تحليل التعلم الآلي".```
root@kali:~/GyoiThon# python3 gyoithon.py -s -m
root@kali:~/GyoiThon# python3 gyoithon.py -s -g
##### مزيج من "فحص وضع الخدمات السحابية"، "وضع تحليل التعلم الآلي" و "وضع اختراق جوجل".```
root@kali:~/GyoiThon# python3 gyoithon.py -s -m -g
root@kali:~/GyoiThon# python3 gyoithon.py -s -m -g -e -c -p -l --log_path="Full path of stored logs"
#### <a name='generating_sig'>10. وضع توليد التوقيع/بيانات التدريب</a>.```
root@kali:~/GyoiThon# python3 gyoithon.py -d --category=CMS --vendor=joomla! [email protected]@_origin.tar.zip
بإضافة الخيار -d، يقوم GyoiThon بإنشاء توقيعات/بيانات تدريب للكشف عن منتجات الويب التي تعمل على خادم الويب الهدف.
الخيارات هي كما يلي:
بعد انتهاء تنفيذ GyoiThon، يتم إنشاء تقارير لكل هدف في المسار التالي.``` root@kali:~/GyoiThon/report# ls gyoithon_report_192.168.220.129_80_1082018338.csv gyoithon_report_192.168.220.129_80_bodgeit.csv gyoithon_report_192.168.220.129_80_cyclone.csv gyoithon_report_192.168.220.129_80_vicnum.csv gyoithon_report_192.168.220.129_80_WackoPicko.csv gyoithon_censys_report_www.gyoithon.example.com_443_test.csv
يُنتج GyoiThon نوعين من التقارير التالية:
* `gyoithon_report_target FQDN(or IP address)_Port number_Root Path.csv`.
هذا هو التقرير الرئيسي الذي يتضمن بشكل أساسي اسم المنتج والإصدار و CVE إلخ.
تنسيق التقرير هو `gyoithon_report_target FQDN(or IP address)_Port number_Root Path.csv`.
تفاصيل كل عمود كما يلي:
|العمود|الوصف|مثال|
|:----|:----|:----|
|fqdn|اسم النطاق المؤهل بالكامل (FQDN) لخادم الويب الهدف.|`www.gyoithon.example.com`|
|ip_addr|عنوان IP لخادم الويب الهدف.|`192.168.220.129`|
|port|رقم منفذ خادم الويب الهدف.|`80`|
|cloud_type|اسم خدمة السحابة (Azure أو AWS أو GCP أو Unknown).|`AWS`|
|method|طريقة الفحص في GyoiThon.|`Crawling`|
|url|عنوان URL الذي تم الوصول إليه.|`http://192.168.220.129:80/WackoPicko/admin/index.php?page=login`|
|vendor_name|اسم البائع للمنتجات المحددة.|`apache`|
|prod_name|المنتجات المحددة.|`http_server`|
|prod_version|إصدار المنتجات المحددة.|`2.2.14`|
|prod_trigger|المُحفز للمنتجات المحددة.|`Apache/2.2.14`|
|prod_type|فئة المنتج (Web أو CMS أو Framework إلخ).|`Web`|
|prod_vuln|رقم CVE وفقًا للمنتجات المحددة (تنازليًا حسب درجة CVSS).|`CVE-2017-3167, CVE-2017-3169, CVE-2017-7668` ...|
|origin_login|وجود صفحة تسجيل دخول أم لا (Log: تحليل باستخدام التعلم الآلي، Url: تحليل باستخدام مطابقة الأنماط النصية في URL).|`Log : 37.5 %\nUrl : 100.0 %`|
|origin_login_trigger|مُحفز صفحة تسجيل الدخول المحددة.|`Log : name",<input type="password"\nUrl : login`|
|wrong_comment|التعليقات غير الضرورية المحددة.|`パスワードは「password1234」です。`|
|error_msg|رسائل التصحيح غير الضرورية المحددة.|`Warning: mysql_connect() ..snip.. in auth.php on line 38`|
|server_header|رأس الخادم في استجابة HTTP.|`Server: Apache/2.2.14 (Ubuntu) mod_mono/2.4.3 PHP/5.3.2`|
|log|مسار البيانات الخام.|`/usr/home/~snip~/http_192.168.220.129_80_20181112170525765.log`|
|date|تاريخ الفحص.|`2018/11/12 17:05:25`|
* `gyoithon_censys_report_target FQDN(or IP address)_Port number_Root Path.csv`.
هذا هو تقرير نتائج البحث باستخدام Censys والذي يتضمن المنافذ المفتوحة ومعلومات الشهادة إلخ.
تنسيق التقرير هو `gyoithon_censys_report_target FQDN(or IP address)_Port number_Root Path.csv`.
تفاصيل كل عمود كما يلي:
|العمود|الوصف|مثال|
|:----|:----|:----|
|fqdn|اسم النطاق المؤهل بالكامل (FQDN) لخادم الويب الهدف.|`www.gyoithon.example.com`|
|ip_addr|عنوان IP لخادم الويب الهدف.|`192.168.220.129`|
|category|فئة المعلومات.|`Server Info` أو `Certification Info`|
|open_port|منفذ الويب المفتوح.|`443`|
|protocol|بروتوكول منفذ الويب المفتوح.|`https`|
|sig_algorithm|خوارزمية التوقيع للشهادة.|`SHA256-RSA`|
|cname|الاسم الشائع للشهادة.|`www.gyoithon.example.com`|
|valid_start|تاريخ بدء صلاحية الشهادة.|`2018-08-15T00:00:00Z`|
|valid_end|تاريخ انتهاء صلاحية الشهادة.|`2019-09-16T12:00:00Z`|
|organization|اسم المؤسسة للشهادة.|`GyoiThon coorporation, Inc.`|
|date|تاريخ الفحص.|`2018/11/22 11:19:36`|
| ملاحظة |
|:-----|
| نظرًا لأن Censys يحتاج إلى عدة أيام إلى عدة أسابيع لمسح الإنترنت بالكامل، فقد لا تكون المعلومات المستحصلة من Censys حديثة.|
## <a name='Tips'>نصائح</a>
### 1. كيفية إضافة توقيع جديد يدويًا (أنماط مطابقة النصوص).
المسار `signatures` يتضمن الملفات التالية.```
root@kali:~/GyoiThon/signatures/ ls
signature_product.txt
signature_default_content.txt
signature_search_query.txt
signature_comment.txt
signature_error.txt
signature_page_type_from_url.txt
signature_product.txtهذه هي أنماط مطابقة السلسلة المستخدمة لتحديد المنتج في الوضع الافتراضي.
إذا كنت ترغب في إضافة نمط مطابقة سلسلة جديد، عليك كتابته بالتنسيق التالي.```
Format: field1@field2@field3@field4@field5
|النوع|رقم الحقل|الوصف|مثال|
|:---|:---|:---|:---|
|مطلوب|1|فئة المنتج.|`CMS`|
|مطلوب|2|اسم البائع.|`drupal`|
|مطلوب|3|اسم المنتج.|`drupal`|
|اختياري|4|الإصدار المرتبط بهذا التوقيع.|`8.0` |
|مطلوب|5|تعبير منتظم لتحديد المنتج.|`.*(X-Generator: Drupal 8).*`|
إذا لم تكن بحاجة إلى الحقل الاختياري، فيجب عليك تعيين `*` لهذا الحقل.
* مثال```
CMS@wordpress@wordpress@*@.*(WordPress ([0-9]+[\.0-9]*[\.0-9]*)).*
CMS@drupal@[email protected]@.*(X-Generator: Drupal 8).*
| ملاحظة |
|---|
| إذا كنت ترغب في استخراج إصدار المنتج، فاكتب مجموعتين من التعبيرات النمطية (التعبير النمطي الثاني يستخدم لاستخراج الإصدار). |
signature_default_content.txtهذا هو نمط مطابقة السلاسل النصية لتحديد المنتج في وضع استكشاف المحتويات الافتراضية.
إذا كنت ترغب في إضافة نمط مطابقة سلسلة نصية جديد، فيجب عليك كتابته بالتنسيق التالي.```
Format: field1@field2@field3@field4@field5@field6@field7@field8
|النوع|Field#|الوصف|مثال|
|:---|:---|:---|:---|
|مطلوب|1|فئة المنتج.|`CMS`|
|مطلوب|2|اسم البائع.|`sixapart`|
|مطلوب|3|اسم المنتج.|`movabletype`|
|اختياري|4|الإصدار المرتبط بهذا التوقيع.|`*` |
|مطلوب|5|مسار الاستكشاف|`/readme.html`|
|اختياري|6|تعبير عادي لتأكيد المنتج.|`.*(Movable Type).*`|
|اختياري|7|تعبير عادي لتحديد الإصدار.|`(v=([0-9]+[\.0-9]*[\.0-9]*))`|
|مطلوب|8|صفحة تسجيل الدخول أم لا.|صفحة تسجيل الدخول هي `1`، وليست صفحة تسجيل الدخول هي `0`|
إذا لم تكن بحاجة إلى حقل اختياري، يجب تعيين `*` لهذا الحقل.
* مثال```
Web@apache@http_server@*@/server-status@*@Version:.*(Apache/([0-9]+[\.0-9]*[\.0-9]*))@0
CMS@sixapart@movabletype@*@/readme.html@.*(Movable Type).*@(v=([0-9]+[\.0-9]*[\.0-9]*))@0
| ملاحظة |
|---|
| إذا كنت ترغب في استخراج إصدار المنتج، فاكتب مجموعتين من التعبير العادي (يُستخدم التعبير العادي الثاني لاستخراج الإصدار). |
| ملاحظة |
|---|
إذا لم يتمكن GyoiThon من تأكيد المنتج باستخدام Explore path فقط، فستحتاج إلى تحديد حقل Regex of to confirm product. يقوم GyoiThon بالوصول إلى عنوان URL الذي تحدده Explore path ويفحص استجابة HTTP باستخدام Regex of to confirm product. إذا تطابق هذا التعبير العادي، يحكم GyoiThon بوجود المنتج. |
signature_search_query.txtهذا هو استعلام البحث المخصص من Google لتحديد المنتج في وضع Google Hacking.
إذا كنت تريد إضافة استعلام جديد، يجب عليك كتابته بالتنسيق التالي.```
Format: field1@field2@field3@field4@field5@field6@field7@field8
|النوع|الرقم|الوصف|مثال|
|:---|:---|:---|:---|
|اختياري|1|فئة المنتج.|`CMS`|
|اختياري|2|اسم البائع.|`sixapart`|
|اختياري|3|اسم المنتج.|`movabletype`|
|اختياري|4|الإصدار المرتبط بهذا التوقيع.|`*` |
|إلزامي|5|استعلام بحث Google المخصص|`inurl:/readme.html`|
|اختياري|6|تعبير منتظم لتأكيد المنتج.|`.*(Movable Type).*`|
|اختياري|7|تعبير منتظم لتحديد الإصدار.|`(v=([0-9]+[\.0-9]*[\.0-9]*))`|
|اختياري|8|صفحة تسجيل الدخول أم لا.|صفحة تسجيل الدخول هي `1`، ليست صفحة تسجيل دخول هي `0`|
إذا لم تكن بحاجة إلى حقل اختياري، فيجب عليك تعيين `*` لهذا الحقل.
* مثال```
Web@apache@http_server@*@inurl:/server-status@*@Version:.*(Apache/([0-9]+[\.0-9]*[\.0-9]*))@0
CMS@sixapart@movabletype@*@inurl:/readme.html@.*(Movable Type).*@(v=([0-9]+[\.0-9]*[\.0-9]*))@0
*@*@*@*@filetype:bak@*@*@0
| ملاحظة |
|---|
| إذا كنت ترغب في استخراج إصدار المنتج، فاكتب مجموعتين من التعبير المنتظم (يُستخدم التعبير المنتظم الثاني لاستخراج الإصدار). |
| ملاحظة |
|---|
إذا لم يتمكن GyoiThon من تأكيد المنتج بواسطة استعلام البحث المخصص من Google فقط، فستحتاج إلى تحديد حقل التعبير المنتظم لتأكيد المنتج. يصل GyoiThon إلى عنوان URL المضمن في نتيجة تنفيذ واجهة برمجة تطبيقات البحث المخصص من Google ويفحص استجابة HTTP باستخدام التعبير المنتظم لتأكيد المنتج. إذا تطابق هذا التعبير المنتظم، يحكم GyoiThon على وجود المنتج. |
signature_comment.txtهذا هو نمط مطابقة السلاسل لتحديد التعليقات غير الضرورية في الوضع الافتراضي.
إذا كنت ترغب في إضافة نمط مطابقة سلاسل جديد، يجب عليك كتابته بالتنسيق التالي.```
Format: field1
|النوع|رقم الحقل#|الوصف|
|:---|:---|:---|
|مطلوب|1|تعبير منتظم للتعليق غير الضروري.|
* مثال```
(user\s*=|[\"']user[\"']\s*:|user_id\s*=|[\"']user_id[\"']\s*:|id\s*=|[\"']id[\"']\s*:)
(select\s+[\s\r\n\w\d,\"']*\s+from)
signature_error.txtهذه أنماط مطابقة للسلاسل النصية لتحديد رسائل التصحيح غير الضرورية في الوضع الافتراضي.
إذا كنت ترغب في إضافة نمط مطابقة جديد للسلاسل النصية، يجب عليك كتابته بالتنسيق التالي.```
Format: field1
|النوع|الرقم#|الوصف|
|:---|:---|:---|
|مطلوب|1|تعبير نمطي لرسالة تصحيح غير ضرورية.|
* مثال```
(ORA-[0-9a-zA-Z\.])
(fail|error|notice|parse|warning|fatal)[^\n]*line[^\n]*[0-9]+
signature_page_type_from_url.txtهذه أنماط مطابقة السلاسل النصية لتحديد نوع الصفحة استناداً إلى عنوان URL في الوضع الافتراضي.
إذا كنت ترغب في إضافة نمط مطابقة سلسلة جديد، فيجب عليك كتابته بالتنسيق التالي.```
Format: field1@field2
* مثال
|النوع|الحقل#|الوصف|
|:---|:---|:---|
|مطلوب|1|نوع الصفحة.|
|مطلوب|2|التعابير النمطية لتحديد نوع الصفحة.|```
Login@.*(login|log_in|logon|log_on|signin|sign_in).*
| ملاحظة |
|---|
| يجب أن يتطابق اسم المورد واسم المنتج أعلاه مع اسم في صيغة CPE. |
modules/train_data/ يتضمن المسار بياناتين تدريبيتين لتعلم الآلة.```
root@kali:~/GyoiThon/modules/train_data/ ls
train_cms_in.txt
train_page_type.txt
#### `train_cms_in.txt`
هذه بيانات تدريب لتحليل التعلم الآلي في <a name='machine_learning_mode'>Machine Learning mode</a>.
إذا كنت ترغب في إضافة بيانات تدريب جديدة، يجب عليك كتابتها بالتنسيق التالي.```
Format: field1@field2@field3@field4
إذا كنت لا تحتاج إلى حقل اختياري، يجب تعيين * لهذا الحقل.
|ملاحظة|
|:---|
|يجب أن يتطابق اسم البائع واسم المنتج أعلاه مع اسم في [تنسيق CPE](https://en.wikipedia.org/wiki/Common_Platform_Enumeration).|
#### `train_page_type.txt`
هذه بيانات تدريب لتحديد نوع الصفحة باستخدام التعلم الآلي في <a name='default_mode'>الوضع الافتراضي</a>.
إذا كنت ترغب في إضافة بيانات تدريب جديدة، فعليك كتابتها بالتنسيق التالي.```
Format: field1@field2
| Type | Field# | Description |
|---|---|---|
| مطلوب | 1 | الفئة. |
| مطلوب | 2 | ميزة الصفحة المعبر عنها بواسطة regex. |
### 3. كيفية تغيير خيار وحدة الاستغلال.
عندما يقوم GyoiThon بالاستغلال، فإنه يستخدم **القيمة الافتراضية** لخيارات وحدة الاستغلال.
إذا كنت ترغب في تغيير قيم الخيارات، يرجى إدخال أي قيمة إلى `"user_specify"` في `exploit_tree.json` كما يلي.```
root@kali:~/GyoiThon/modules/data/ ls
exploit_tree.json
root@kali:~/GyoiThon/modules/data/ vim exploit_tree.json
...snip...
"unix/webapp/joomla_media_upload_exec": {
"targets": {
"0": [
"generic/custom",
"generic/shell_bind_tcp",
"generic/shell_reverse_tcp",
...snip...
"TARGETURI": {
"type": "string",
"required": true,
"advanced": false,
"evasion": false,
"desc": "The base path to Joomla",
"default": "/joomla",
"user_specify": "/my_original_dir/"
},
المثال أعلاه هو لتغيير قيمة خيار TARGETURI في وحدة الاستغلال "exploit/unix/webapp/joomla_media_upload_exec" إلى "/my_original_dir/" بدلاً من "/joomla".
يمكن لـ GyoiThon الوصول إلى الخادم الهدف عبر خادم وكيل.
إذا كنت ترغب في استخدام خادم وكيل، يرجى إدخال معلومات خادم الوكيل في config.ini.
| ملاحظة |
|---|
| حاليًا، تم تنفيذ GyoiThon فقط باستخدام المصادقة الأساسية. |
| Index | Domain | Sub-Domain | IP Address | Access Status (http) | Location (http) | Access Status (https) | Location (https) | Whois records |
|---|
| 1 | mbsd.jp | mbsd.jp | ['40.115.251.148'] | 301 | https://www.mbsd.jp/ | 301 | https://www.mbsd.jp/ | *** |
| 2 | mbsd.jp | www.mbsd.jp | ['40.115.251.148'] | 301 | https://www.mbsd.jp/ | 200 | - | - |
| 3 | mbsd.jp | www2.mbsd.jp | ['40.115.251.148'] | 301 | https://www.mbsd.jp/ | 200 | - | - |
| الفئة | المعامل | الوصف |
|---|
| Spider | depth_limit | الحد الأقصى لعمق الزحف. القيمة الافتراضية هي طبقة 2. |
| delay_time | وقت التأخير للزحف. القيمة الافتراضية هي 3 (ثانية). | |
| time_out | خيار إغلاق الزاحف. مهلة الزحف القصوى. القيمة الافتراضية هي 600 (ثانية). | |
| item_count | خيار إغلاق الزاحف. أقصى عدد من العناصر. القيمة الافتراضية هي 300. | |
| page_count | خيار إغلاق الزاحف. أقصى عدد من العناصر في الصفحة. القيمة الافتراضية هي 0 (بدون حد). | |
| error_count | خيار إغلاق الزاحف. أقصى عدد من الأخطاء. القيمة الافتراضية هي 0 (بدون حد). |
| الفئة | المعامل | الوصف |
|---|
| Common | max_target_url | الحد الأقصى لعدد عناوين URL للفحص. إذا تجاوز عدد عناوين URL التي تم جمعها عن طريق الزحف على الويب قيمة هذا المعامل، يتم التخلص من العدد الزائد. القيمة الافتراضية هي 100. 0 يعني غير محدود. |
| max_target_byte | الحد الأقصى لحجم استجابة الفحص. إذا تجاوز حجم الاستجابة قيمة هذا المعامل، يتم التخلص من الحجم الزائد. القيمة الافتراضية هي 10000 بايت. 0 يعني غير محدود. | |
| scramble | قائمة عناوين URL التي تم جمعها عن طريق الزحف على الويب تُرتّب عشوائياً. القيمة الافتراضية هي 1 (صالحة). 0 غير صالحة. |
| الفئة | المعامل | الوصف |
|---|
| استغلال | server_host | عنوان IP المخصص لخادم RPC (msgrpc). |
| server_port | رقم المنفذ المخصص لخادم RPC (msgrpc). | |
| msgrpc_user | معرف المستخدم للترخيص لـ msgrpc. | |
| msgrpc_pass | كلمة المرور للترخيص لـ msgrpc. | |
| LHOST | عنوان IP المخصص لخادم RPC (msgrpc). |
| الخيار | الوصف | مثال |
|---|
| --category | فئة المنتج في التوقيع/بيانات التدريب. | OS or WEB or FRAMEWORK or CMS. |
| --vendor | اسم البائع للمنتج في التوقيع/بيانات التدريب. | wordpress, joomla!, drupal. |
| --package | اسم ملف الحزمة المستهدفة المستوردة. يجب فصل ثلاثة حقول: اسم المنتج والإصدار والامتداد باستخدام @. | [email protected]@.tar.gz, [email protected]@_origin.tar.zip, [email protected]@.tar.gz. |
| النوع | رقم الحقل | الوصف | مثال |
|---|
| مطلوب | 1 | اسم البائع. | joomla |
| مطلوب | 2 | اسم المنتج. | joomla\! |
| اختياري | 3 | الإصدار المرتبط ببيانات التدريب هذه. | * |
| مطلوب | 4 | ميزة المنتج معبر عنها بتعبير منتظم. | (Set-Cookie: [a-z0-9]{32}=.*); |
| الفئة |
|---|
| المعامل |
|---|
| الوصف |
|---|
| عام | proxy | معلومات خادم الوكيل. التنسيق هو scheme://hostname:port (مثال: http://proxy-example:8083). |
| proxy_user | إذا كنت بحاجة إلى مصادقة الوكيل، يرجى إدخال مستخدم المصادقة. | |
| proxy_pass | إذا كنت بحاجة إلى مصادقة الوكيل، يرجى إدخال كلمة مرور المصادقة. |