
GyoiThon est un outil de test d'intrusion en pleine croissance utilisant l'apprentissage automatique.

La page en japonais est ici.
Le nouveau GyoiThon (version 0.0.4) peut lister vos sous-domaines exposés sur Internet. Et si le sous-domaine est publié en tant que service Web, GyoiThon exécute un bilan de santé avec une évaluation non destructive des vulnérabilités.
| Note |
|---|
| La nouvelle fonctionnalité utilise une API Google Custom Search. Donc, si vous l’utilisez, vous devez préparer une clé API de Google Custom Search. |
domain_list.csv comme suit : ```
"Domain Name"
mbsd.jpEt vous exécutez la commande suivante. ```
root@kali:~/GyoiThon# python3 gyoithon.py -i --domain_list
As a result, you get a list of subdomains associated with the specified domain.
En conséquence, vous obtenez une liste de sous-domaines et un rapport d'évaluation.
|Index|Domaine|Sous-Domaine|Adresse IP|Statut d'accès (http)|Emplacement (http)|Statut d'accès (https)|Emplacement (https)|Enregistrements Whois|Résultats d'évaluation|
|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
|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|-|-|***|
## Aperçu
GyoiThon est un **outil de renseignement** pour serveur Web.
GyoiThon exécute un **accès à distance** au serveur Web cible et **identifie les produits opérant sur le serveur** tels que CMS, logiciel serveur Web, Framework, Langage de programmation, etc. Et il peut **exécuter des modules d'exploitation** sur les produits identifiés en utilisant Metasploit. GyoiThon **exécute entièrement automatiquement** les actions ci-dessus.
Les principales fonctionnalités de GyoiThon sont les suivantes.
* Accès à distance/Entièrement automatique
GyoiThon peut **collecter automatiquement** les informations du serveur Web cible en utilisant uniquement un **accès à distance**. Vous n'exécutez GyoiThon qu'une seule fois pour votre opération.
* Test non destructif
GyoiThon peut collecter des informations du serveur Web cible en utilisant **uniquement un accès normal**.
Mais, lorsque vous utilisez une partie des options, GyoiThon exécute un accès anormal tel que l'envoi de modules d'exploitation.
* Collecte de diverses informations
GyoiThon dispose de divers moteurs de renseignement tels que le Web crawler, Google Custom Search API, Censys, explorateur de contenus par défaut, examen des services cloud, etc. En analysant les informations collectées à l'aide de la **correspondance de motifs de chaînes** et de **l'apprentissage automatique**, GyoiThon peut identifier **le produit/la version/le numéro CVE** opérant sur le serveur Web cible, **les commentaires HTML inutiles**/**les messages de débogage**, **la page de connexion**, etc.
* Examen des vulnérabilités réelles
GyoiThon peut exécuter des modules d'exploitation sur les produits identifiés en utilisant Metasploit.
En conséquence, il peut **examiner la vulnérabilité réelle du serveur Web cible**.

| Remarque |
|:---------|
| Si vous êtes intéressé, **veuillez les utiliser dans un environnement sous votre contrôle et à vos propres risques**. |
## <a name='Installation'>Installation</a>
1. Clonez le dépôt de GyoiThon avec git.```
root@kali:~# git clone https://github.com/gyoisamurai/GyoiThon.git
3. installer les paquets Python requis.```
root@kali:~# cd GyoiThon
root@kali:~/GyoiThon# pip3 install -r requirements.txt
root@kali:~/GyoiThon# apt install python3-tk
config.ini.En utilisant le mode par défaut sans option et la combinaison de plusieurs options, GyoiThon peut recueillir diverses informations sur le serveur web cible.``` 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.
### Préparation.
1. Modifier le fichier cible `host.txt`.
Vous devez écrire le serveur web cible dans le fichier `host.txt`.
Le format d'écriture est `protocol FQDN(or IP address) Port Crawling_root_path`.
* Exemple.```
https gyoithon.example.com 443 /
Si vous souhaitez indiquer plusieurs informations cibles, vous devez écrire ci-dessous.``` https gyoithon.example.com 443 / http 192.168.220.129 80 /vicnum/ https www.example.com 443 /catalog/
| Note |
|:-----|
| Vous insérez `/` au début et à la fin du chemin racine. |
2. Modifier le fichier de configuration `config.ini`.
Les paramètres à modifier par l'utilisateur sont définis dans le fichier de configuration `config.ini`.
Si vous souhaitez modifier les paramètres, éditez `config.ini`.
Les détails de `config.ini` sont [ici](https://github.com/gyoisamurai/GyoiThon/wiki/Configure).
### Exécution de GyoiThon.
#### <a name='default_mode'>1. Mode par défaut.</a>```
root@kali:~/GyoiThon# python3 gyoithon.py
Le mode par défaut recueille les informations minimales suivantes.
Scrapy qui est une bibliothèque Python.config.ini, vous pouvez changer les réglages de Scrapy.config.ini, vous pouvez ajuster la vitesse d'examen.| Note |
|---|
| La vitesse d'examen et la précision sont en compromis. |
root@kali:~/GyoiThon# python3 gyoithon.py -s
En ajoutant l'option `-s`, GyoiThon identifie si le serveur web cible utilise un service cloud ou non en plus du mode par défaut.
Avant l'exécution, vous devez modifier le paramètre suivant de `config.ini`.
|Catégorie|Paramètre|Description|
|:----|:----|:----|
|CloudChecker|azure_ip_range|URL source des plages d'adresses IP des centres de données Azure. |
Ce paramètre est l'URL source de la plage d'adresses IP des centres de données Azure. Cette URL est modifiée plusieurs fois par jour. Vous devez donc obtenir la dernière URL à partir du lien « cliquez ici pour télécharger manuellement » de la page « [Microsoft Azure Datacenter IP Ranges](https://www.microsoft.com/en-us/download/confirmation.aspx?id=41653) » et la définir dans le paramètre ci-dessus avant d'exécuter GyoiThon.
#### 3. Mode d'analyse par apprentissage automatique.```
root@kali:~/GyoiThon# python3 gyoithon.py -m
En ajoutant l'option -m, GyoiThon identifie les produits/versions en utilisant l'apprentissage automatique (Naive Bayes) en plus du mode par défaut.
root@kali:~/GyoiThon# python3 gyoithon.py -g
En ajoutant l'option `-g`, GyoiThon identifie les produits/versions en utilisant l'API Google Custom Search en plus du mode par défaut. Avant l'exécution, vous devez définir la [clé API](https://console.cloud.google.com/apis/dashboard) et l'[ID du moteur de recherche](https://support.google.com/customsearch/answer/2649143?hl=ja) dans les paramètres ci-dessous.
|Catégorie|Paramètre|Description|
|:----|:----|:----|
|GoogleHack|api_key|Clé API de l'API Google Custom Search. |
||search_engine_id|ID du moteur de recherche Google. |
| Remarque |
|:-----|
| Vous pouvez utiliser gratuitement l'API Google Custom Search pour 100 requêtes par jour. Mais si vous souhaitez utiliser plus de 100 requêtes, vous devez payer des frais pour le service Google Custom Search API. |
#### 5. Exploration du mode de contenu par défaut.```
root@kali:~/GyoiThon# python3 gyoithon.py -e
By add -e option, GyoiThon explores the default contents of products such as CMS, Web server software in addition to default mode.
By change the parameters in config.ini, you can change setting of exploration.
| Category | Parameter | Description |
|---|---|---|
| ContentExplorer | delay_time | Temps d'attente de l'exploration. La valeur par défaut est 1 (seconde). |
| Note |
|---|
| Lorsque vous utilisez cette option, cela peut entraîner une charge importante sur le serveur car GyoiThon exécute de nombreux accès (centaines d'accès) sur le serveur Web cible. De plus, de nombreux logs d'erreur 404 sont écrits dans le journal d'accès, ce qui peut être détecté par le SOC (Security Operation Center). Par conséquent, si vous utilisez cette option, veuillez en informer les personnes concernées telles que le SOC, l'administrateur, et les utiliser dans un environnement sous votre contrôle et à vos propres risques. |
root@kali:~/GyoiThon# python3 gyoithon.py -c
En ajoutant l'option `-c`, GyoiThon examine le numéro de port ouvert et la certification du serveur en utilisant [Censys](https://censys.io/).
Avant l'exécution, vous devez définir la clé API et la clé secrète dans les paramètres ci-dessous.
|Category|Parameter|Description|
|:----|:----|:----|
|Censys|api_id|Clé API de Censys. |
||secret|Clé secrète de Censys. |
#### 7. Mode de coopération Metasploit.```
root@kali:~/GyoiThon# python3 gyoithon.py -p
En ajoutant l'option -p, GyoiThon examine les vulnérabilités réelles telles que DoS et backdoor en utilisant Metasploit en plus du mode par défaut.
Avant l'exécution, vous devez lancer le serveur RPC de Metasploit et définir les paramètres ci-dessous dans config.ini.
| Remarque |
|---|
| Lorsque vous utilisez cette option, le fonctionnement du serveur peut être fortement affecté car GyoiThon exécute l'exploit contre le serveur web cible. De plus, cette option peut être détectée par un SOC (Security Operation Center) car les exploits ressemblent à de véritables attaques. Ainsi, si vous utilisez cette option, veuillez en informer les personnes concernées telles que le SOC, l'administrateur et les utiliser dans un environnement sous votre contrôle et à vos propres risques. |
root@kali:~/GyoiThon# python3 gyoithon.py -l --log_path="Full path of stored logs"
En ajoutant l'option `-l`, GyoiThon exécute divers examens en utilisant des réponses HTTP stockées sans crawl web.
Ce mode suppose que GyoiThon ne peut pas effectuer de crawl web sur l'application web.
GyoiThon peut exécuter divers examens similaires au crawl web du mode par défaut en utilisant les réponses HTTP stockées recueillies par un outil proxy local.
| Note |
|:-----|
| L'extension du fichier journal est `.log`. |
#### <a name='complex_mode'>9. Combinaison d'options multiples</a>.
##### Combinaison du "Mode d'examen des services cloud" et du "Mode d'analyse d'apprentissage automatique".```
root@kali:~/GyoiThon# python3 gyoithon.py -s -m
root@kali:~/GyoiThon# python3 gyoithon.py -s -g
##### Combinaison du mode "Examen des services cloud", du mode "Analyse par apprentissage automatique" et du mode "Google Hacking".```
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. Génération du mode de données de signature/entraînement</a>.```
root@kali:~/GyoiThon# python3 gyoithon.py -d --category=CMS --vendor=joomla! [email protected]@_origin.tar.zip
En ajoutant l'option -d, GyoiThon génère des signatures/données d'entraînement pour détecter les produits Web exploités sur le serveur Web cible.
Les options sont les suivantes.
Après l'exécution de GyoiThon, les rapports de chaque cible sont générés dans le chemin suivant.``` 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 génère les deux types de rapports suivants.
* `gyoithon_report_target FQDN(ou adresse IP)_Numéro de port_Chemin racine.csv`.
Ceci est le rapport principal qui inclut principalement le nom du produit, la version, le CVE, etc.
Le format du rapport est `gyoithon_report_target FQDN(ou adresse IP)_Numéro de port_Chemin racine.csv`.
Les détails de chaque colonne sont les suivants.
|Colonne|Description|Exemple|
|:----|:----|:----|
|fqdn|Nom de domaine complet du serveur web cible.|`www.gyoithon.example.com`|
|ip_addr|Adresse IP du serveur web cible.|`192.168.220.129`|
|port|Numéro de port du serveur web cible.|`80`|
|cloud_type|Nom du service cloud (Azure, AWS, GCP ou Inconnu).|`AWS`|
|method|Méthode d'examen de GyoiThon.|`Crawling`|
|url|URL accédée.|`http://192.168.220.129:80/WackoPicko/admin/index.php?page=login`|
|vendor_name|Nom du fournisseur des produits identifiés.|`apache`|
|prod_name|Produits identifiés.|`http_server`|
|prod_version|Version des produits identifiés.|`2.2.14`|
|prod_trigger|Déclencheur des produits identifiés.|`Apache/2.2.14`|
|prod_type|Catégorie du produit (Web, CMS, Framework, etc.).|`Web`|
|prod_vuln|Numéro CVE correspondant aux produits identifiés (desc score CVSS).|`CVE-2017-3167, CVE-2017-3169, CVE-2017-7668` ...|
|origin_login|La page de connexion existe ou non (Log : Analyse via Machine Learning, Url : Analyse via correspondance de motifs dans l'URL).|`Log : 37.5 %\nUrl : 100.0 %`|
|origin_login_trigger|Déclencheur de la page de connexion identifiée.|`Log : name",<input type="password"\nUrl : login`|
|wrong_comment|Commentaires inutiles identifiés.|`パスワードは「password1234」です。`|
|error_msg|Messages de débogage inutiles identifiés.|`Warning: mysql_connect() ..snip.. in auth.php on line 38`|
|server_header|En-tête Serveur de la réponse HTTP.|`Server: Apache/2.2.14 (Ubuntu) mod_mono/2.4.3 PHP/5.3.2`|
|log|Chemin des données brutes.|`/usr/home/~snip~/http_192.168.220.129_80_20181112170525765.log`|
|date|Date d'examen.|`2018/11/12 17:05:25`|
* `gyoithon_censys_report_target FQDN(ou adresse IP)_Numéro de port_Chemin racine.csv`.
Ceci est le rapport de résultats de recherche utilisant Censys, qui inclut les ports ouverts, les informations de certification, etc.
Le format du rapport est `gyoithon_censys_report_target FQDN(ou adresse IP)_Numéro de port_Chemin racine.csv`.
Les détails de chaque colonne sont les suivants.
|Colonne|Description|Exemple|
|:----|:----|:----|
|fqdn|Nom de domaine complet du serveur web cible.|`www.gyoithon.example.com`|
|ip_addr|Adresse IP du serveur web cible.|`192.168.220.129`|
|category|Catégorie d'information.|`Server Info` ou `Certification Info`|
|open_port|Port web ouvert.|`443`|
|protocol|Protocole du port web ouvert.|`https`|
|sig_algorithm|Algorithme de signature de la certification.|`SHA256-RSA`|
|cname|Nom commun de la certification.|`www.gyoithon.example.com`|
|valid_start|Date de début de validité de la certification.|`2018-08-15T00:00:00Z`|
|valid_end|Date de fin de validité de la certification.|`2019-09-16T12:00:00Z`|
|organization|Nom de l'organisation de la certification.|`GyoiThon coorporation, Inc.`|
|date|Date d'examen.|`2018/11/22 11:19:36`|
| Note |
|:-----|
| Étant donné que Censys a besoin de plusieurs jours à plusieurs semaines pour sonder l'ensemble d'Internet, les informations obtenues via Censys peuvent ne pas être à jour.|
## <a name='Tips'>Astuces</a>
### 1. Comment ajouter manuellement une nouvelle signature (modèles de correspondance de chaînes).
Le chemin `signatures` inclut les fichiers ci-dessous.```
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.txtCe sont des motifs de correspondance de chaînes pour l'identification du produit en mode par défaut.
Si vous souhaitez ajouter un nouveau motif de correspondance de chaînes, vous devez l'écrire selon le format suivant.```
Format: field1@field2@field3@field4@field5
|Type|Champ#|Description|Exemple|
|:---|:---|:---|:---|
|Requis|1|Catégorie de produit.|`CMS`|
|Requis|2|Nom du fournisseur.|`drupal`|
|Requis|3|Nom du produit.|`drupal`|
|Optionnel|4|Version liée à cette signature.|`8.0`|
|Requis|5|Regex d'identification du produit.|`.*(X-Generator: Drupal 8).*`|
Si vous n'avez pas besoin d'un champ optionnel, vous devez définir `*` pour ce champ.
* Exemple```
CMS@wordpress@wordpress@*@.*(WordPress ([0-9]+[\.0-9]*[\.0-9]*)).*
CMS@drupal@[email protected]@.*(X-Generator: Drupal 8).*
| Note |
|---|
| Si vous souhaitez extraire la version du produit, écrivez deux groupes regex (le second regex est utilisé pour l'extraction de la version). |
signature_default_content.txtIl s'agit des modèles de correspondance de chaînes pour l'identification du produit dans Exploration du mode de contenu par défaut.
Si vous souhaitez ajouter un nouveau modèle de correspondance de chaînes, vous devez l'écrire au format suivant.```
Format: field1@field2@field3@field4@field5@field6@field7@field8
|Type|Champ#|Description|Exemple|
|:---|:---|:---|:---|
|Requis|1|Catégorie de produit.|`CMS`|
|Requis|2|Nom du fournisseur.|`sixapart`|
|Requis|3|Nom du produit.|`movabletype`|
|Optionnel|4|Version liée à cette signature.|`*` |
|Requis|5|Chemin d'exploration|`/readme.html`|
|Optionnel|6|Regex pour confirmer le produit.|`.*(Movable Type).*`|
|Optionnel|7|Regex pour identifier la version.|`(v=([0-9]+[\.0-9]*[\.0-9]*))`|
|Requis|8|Page de connexion ou non.|La page de connexion est `1`, La page de non-connexion est `0`|
Si vous n'avez pas besoin d'un champ optionnel, vous devez définir `*` pour ce champ.
* Exemple```
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
| Note |
|---|
| Si vous souhaitez extraire la version du produit, vous écrivez deux groupes regex (le deuxième regex est utilisé pour l'extraction de la version). |
| Note |
|---|
Si GyoiThon ne peut pas confirmer le produit en utilisant simplement Explore path, vous devez renseigner le champ Regex of to confirm product. GyoiThon accède à l'URL de Explore path et examine la réponse HTTP en utilisant Regex of to confirm product. Si cette regex correspond, GyoiThon considère que le produit existe. |
signature_search_query.txtCeci est une requête Google Custom Search pour l'identification du produit en mode Google Hacking.
Si vous souhaitez ajouter une nouvelle requête, vous devez l'écrire selon le format suivant.```
Format: field1@field2@field3@field4@field5@field6@field7@field8
|Type|Champ#|Description|Exemple|
|:---|:---|:---|:---|
|Optionnel|1|Catégorie de produit.|`CMS`|
|Optionnel|2|Nom du fournisseur.|`sixapart`|
|Optionnel|3|Nom du produit.|`movabletype`|
|Optionnel|4|Version liée à cette signature.|`*` |
|Requis|5|Requête Google Custom Search|`inurl:/readme.html`|
|Optionnel|6|Regex pour confirmer le produit.|`.*(Movable Type).*`|
|Optionnel|7|Regex pour identifier la version.|`(v=([0-9]+[\.0-9]*[\.0-9]*))`|
|Optionnel|8|Page de connexion ou non.|Page de connexion = `1`, Pas de page de connexion = `0`|
Si vous n'avez pas besoin d'un champ optionnel, vous devez définir `*` pour ce champ.
* Exemple```
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
| Note |
|---|
| Si vous souhaitez extraire la version d'un produit, écrivez deux groupes regex (le second groupe regex est utilisé pour l'extraction de version). |
| Note |
|---|
Si GyoiThon ne peut pas confirmer le produit en utilisant uniquement une requête Google Custom Search, vous devez indiquer le champ Regex of to confirm product. GyoiThon accède à l'URL incluse dans le résultat de l'exécution de l'API Google Custom Search et examine la réponse HTTP en utilisant Regex of to confirm product. Si cette regex correspond, GyoiThon juge que le produit existe. |
signature_comment.txtCeci est un ensemble de motifs de correspondance de chaînes pour l'identification des commentaires inutiles en mode par défaut.
Si vous souhaitez ajouter un nouveau motif de correspondance de chaînes, vous devez l'écrire dans le format suivant.```
Format: field1
|Type|Champ#|Description|
|:---|:---|:---|
|Requis|1|Regex de commentaire inutile.|
* Exemple```
(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.txtCeci correspond aux motifs de correspondance de chaînes pour l'identification de messages de débogage inutiles en mode par défaut.
Si vous souhaitez ajouter un nouveau motif de correspondance de chaînes, vous devez l'écrire dans le format suivant.```
Format: field1
|Type|Field#|Description|
|:---|:---|:---|
|Required|1|Regex des messages de débogage inutiles.|
* Exemple```
(ORA-[0-9a-zA-Z\.])
(fail|error|notice|parse|warning|fatal)[^\n]*line[^\n]*[0-9]+
signature_page_type_from_url.txtIl s'agit de motifs de correspondance de chaînes pour l'identification du type de page basée sur l'URL en mode par défaut.
Si vous souhaitez ajouter un nouveau motif de correspondance de chaînes, vous devez l'écrire au format suivant.```
Format: field1@field2
|Type|Champ#|Description|
|:---|:---|:---|
|Requis|1|Type de page.|
|Requis|2|Regex d'identification du type de page.|
* Exemple```
Login@.*(login|log_in|logon|log_on|signin|sign_in).*
| Note |
|---|
| Le nom du fournisseur et le nom du produit ci-dessus doivent correspondre à un nom au format CPE. |
Le chemin modules/train_data/ contient deux données d'entraînement pour l'apprentissage automatique.```
root@kali:~/GyoiThon/modules/train_data/ ls
train_cms_in.txt
train_page_type.txt
#### `train_cms_in.txt`
Il s'agit des données d'entraînement pour l'analyse par apprentissage automatique en <a name='machine_learning_mode'>mode Apprentissage automatique</a>.
Si vous souhaitez ajouter de nouvelles données d'entraînement, vous devez les écrire au format suivant.```
Format: field1@field2@field3@field4
Si vous n'avez pas besoin du champ optionnel, vous devez définir * pour ce champ.
|Note|
|:---|
|Les noms de fournisseur et de produit ci-dessus doivent correspondre à un nom au [format CPE](https://en.wikipedia.org/wiki/Common_Platform_Enumeration).|
#### `train_page_type.txt`
Il s'agit des données d'entraînement pour identifier le type de page à l'aide de l'apprentissage automatique en <a name='default_mode'>mode par défaut</a>.
Si vous souhaitez ajouter de nouvelles données d'entraînement, vous devez les écrire au format suivant.```
Format: field1@field2
| Type | Champ# | Description |
|---|---|---|
| Requis | 1 | Catégorie. |
| Requis | 2 | Fonctionnalité de la page exprimée par regex. |
### 3. Comment modifier l'option du module d'exploitation.
Lorsque GyoiThon exploite, il utilise la **valeur par défaut** des options du module d'exploitation.
Si vous souhaitez modifier les valeurs des options, veuillez saisir une valeur dans `"user_specify"` dans `exploit_tree.json` comme suit.```
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/"
},
L'exemple ci-dessus permet de changer la valeur de l'option TARGETURI du module d'exploit "exploit/unix/webapp/joomla_media_upload_exec" de "/joomla" à "/my_original_dir/".
GyoiThon peut accéder au serveur cible via un serveur proxy.
Si vous souhaitez utiliser un serveur proxy, veuillez saisir les informations du serveur proxy dans config.ini.
| Remarque |
|---|
| Actuellement, GyoiThon implémente uniquement l'authentification de base. |
| Index | Domaine | Sous-domaine | Adresse IP | Statut d'accès (http) | Emplacement (http) | Statut d'accès (https) | Emplacement (https) | Enregistrements 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 | - | - |
| Catégorie | Paramètre | Description |
|---|
| Spider | depth_limit | Profondeur maximale d'exploration. La valeur par défaut est de 2 couches. |
| delay_time | Temps de retard de l'exploration. Valeur par défaut : 3 (sec). | |
| time_out | Option de fermeture du spider. Délai d'expiration de l'exploration. Valeur par défaut : 600 (sec). | |
| item_count | Option de fermeture du spider. Nombre maximum d'éléments. Valeur par défaut : 300. | |
| page_count | Option de fermeture du spider. Nombre maximum d'éléments par page. Valeur par défaut : 0 (aucune limite). | |
| error_count | Option de fermeture du spider. Nombre maximum d'erreurs. Valeur par défaut : 0 (aucune limite). |
| Catégorie | Paramètre | Description |
|---|
| Common | max_target_url | Nombre maximum d'URL à examiner. Si le nombre d'URL collectées par l'exploration Web dépasse cette valeur, les URL en excès sont rejetées. Valeur par défaut : 100. 0 est illimité. |
| max_target_byte | Taille maximale de réponse à examiner. Si la taille de la réponse dépasse cette valeur, la partie excédentaire est rejetée. Valeur par défaut : 10000 octets. 0 est illimité. | |
| scramble | La liste d'URL collectées par l'exploration Web est ordonnée aléatoirement. Valeur par défaut : 1 (actif). 0 est inactif. |
| Catégorie | Paramètre | Description |
|---|
| Exploit | server_host | Adresse IP allouée au serveur RPC (msgrpc). |
| server_port | Numéro de port alloué au serveur RPC (msgrpc). | |
| msgrpc_user | Identifiant utilisateur pour l'autorisation de msgrpc. | |
| msgrpc_pass | Mot de passe pour l'autorisation de msgrpc. | |
| LHOST | Adresse IP allouée au serveur RPC (msgrpc). |
| Option | Description | Exemple |
|---|
| --category | Catégorie du produit dans les signatures/données d'entraînement. | OS or WEB or FRAMEWORK or CMS. |
| --vendor | Nom du fournisseur du produit dans les signatures/données d'entraînement. | wordpress, joomla!, drupal. |
| --package | Nom du fichier du package cible à importer. Vous devez séparer trois champs (nom du produit, version et extension) en utilisant @. | [email protected]@.tar.gz, [email protected]@_origin.tar.zip, [email protected]@.tar.gz. |
| Type | Champ # | Description | Exemple |
|---|
| Requis | 1 | Nom du fournisseur. | joomla |
| Requis | 2 | Nom du produit. | joomla\! |
| Optionnel | 3 | Version liée à ces données d'apprentissage. | * |
| Requis | 4 | Fonctionnalité du produit exprimée par une expression régulière. | (Set-Cookie: [a-z0-9]{32}=.*); |
| Catégorie | Paramètre | Description |
|---|
| Common | proxy | Informations du serveur proxy. Le format est scheme://hostname:port (ex: http://proxy-example:8083). |
| proxy_user | Si vous avez besoin d'authentification proxy, veuillez saisir l'utilisateur d'authentification. | |
| proxy_pass | Si vous avez besoin d'authentification proxy, veuillez saisir le mot de passe d'authentification. |