Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
GyoiThon — GyoiThon est un outil de test d'intrusion en pleine croissance utilisant l'apprentissage automatique. | Kitploit
Outils/GitHubGitHub/gyoisamurai/gyoithon
ReconnaissanceScanners de VulnérabilitésFrameworks d'ExploitationCollecte d'InformationsSécurité WebTests d'IntrusionApprentissage AutomatiqueÉnumération de Sous-domaines
GitHubgyoisamurai/gyoithon

GyoiThon

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

Voir le dépôt
82630352il y a 5 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

GyoiThon : Outil de test de pénétration de nouvelle génération

Black Hat ASIA Arsenal 2018 Black Hat ASIA Arsenal 2019

La page en japonais est ici.

Présentation

  • 25 janvier 2018 : JANOG41
  • 23 mars 2018 : Black Hat ASIA 2018 Arsenal
  • 12 août 2018 : DEFCON26 DemoLabs
  • 24 octobre 2018 : OWS in CSS2018
  • 3 novembre 2018 : AV TOKYO 2018 HIVE
  • 22-23 décembre 2018 : SECCON YOROZU 2018
  • 28 mars 2019 : Black Hat ASIA 2019 Arsenal

Documents

  • Installation
  • Utilisation
  • Astuces
  • Démonstration (Youtube)

Slack

  • https://gyoithon.slack.com
    Rejoignez GyoiThon Slack !!

Nouvelle fonctionnalité !!

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.
  • ex) Lister vos sous-domaines.
    Tout d’abord, vous devez préparer le domain_list.csv comme suit : ``` "Domain Name" mbsd.jp
root@kitploit:~
Et 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.

  • ex) Lister vos sous-domaines et exécuter une vérification de santé.
    GyoiThon liste vos sous-domaines et si le sous-domaine est publié en tant que service Web (avec les ports 80 ou 443 ouverts), alors GyoiThon exécute une vérification de santé qui est une évaluation de vulnérabilité non destructive.``` root@kali:~/GyoiThon# python3 gyoithon.py -i --domain_list --through_health_check --safety
root@kitploit:~
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**.  

![Aperçu](https://raw.githubusercontent.com/gyoisamurai/GyoiThon/master/img/overview.png)

| 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
  1. Obtenez python3-pip.``` root@kali:# apt-get update root@kali:# apt-get install python3-pip
root@kitploit:~
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
  1. Modifiez le fichier config.ini de GyoiThon.
    Vous devez modifier votre fichier config.ini.
    Plus d'informations dans la section Utilisation.

Utilisation

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.

root@kitploit:~
### 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/

root@kitploit:~
| 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.

  1. Collecte des réponses HTTP par exploration Web.
  2. Identification du produit/version par correspondance de motifs de chaînes.
  3. Examen des numéros CVE (de la NVD) pour les produits identifiés.
  4. Examen des commentaires HTML/JavaScript inutiles.
  5. Examen des messages de débogage inutiles.
  6. Examen des pages de connexion.
  • Paramètres d'exploration
    GyoiThon utilise Scrapy qui est une bibliothèque Python.
    En modifiant les paramètres dans config.ini, vous pouvez changer les réglages de Scrapy.
  • Paramètres de vitesse d'examen
    Le nombre d'examens et la taille des réponses HTTP affectent grandement les temps d'examen.
    En modifiant les paramètres dans config.ini, vous pouvez ajuster la vitesse d'examen.
Note
La vitesse d'examen et la précision sont en compromis.

2. Examen du mode des services cloud.```

root@kali:~/GyoiThon# python3 gyoithon.py -s

root@kitploit:~
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.

4. Mode Google Hacking.```

root@kali:~/GyoiThon# python3 gyoithon.py -g

root@kitploit:~
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.

CategoryParameterDescription
ContentExplorerdelay_timeTemps 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.

6. Mode de coopération Censys.```

root@kali:~/GyoiThon# python3 gyoithon.py -c

root@kitploit:~
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.

8. Mode d'analyse basé sur les journaux stockés.```

root@kali:~/GyoiThon# python3 gyoithon.py -l --log_path="Full path of stored logs"

root@kitploit:~
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
Combinaison de "Examen du mode de services cloud" et "Google Hacking mode".```

root@kali:~/GyoiThon# python3 gyoithon.py -s -g

root@kitploit:~
##### 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
Toutes les options.```

root@kali:~/GyoiThon# python3 gyoithon.py -s -m -g -e -c -p -l --log_path="Full path of stored logs"

root@kitploit:~
#### <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.

Vérifier le rapport.

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

root@kitploit:~
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.txt

Ce 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

root@kitploit:~
|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.txt

Il 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

root@kitploit:~
|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.txt

Ceci 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

root@kitploit:~
|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.txt

Ceci 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

root@kitploit:~
|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.txt

Ceci 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

root@kitploit:~
|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.txt

Il 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

root@kitploit:~
|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.

2. Comment ajouter manuellement des données d'apprentissage.

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

root@kitploit:~
#### `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.

  • Exemple``` joomla@joomla!@@(Set-Cookie: [a-z0-9]{32}=.); joomla@joomla!@@(Set-Cookie: .=[a-z0-9]{26,32}); heartcore@heartcore@@(Set-Cookie:.=[A-Z0-9]{32});.* heartcore@heartcore@@(<meta name=["']author["'] content=["']{2}).
root@kitploit:~
|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
TypeChamp#Description
Requis1Catégorie.
Requis2Fonctionnalité de la page exprimée par regex.
  • Exemple``` Login@.*(<input.type=["']text["'].name=["']user|uid|username|user_name|name["']).> Login@.(<input.type=["']password["']).>
root@kitploit:~
### 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/".

4. Comment accéder via un serveur proxy.

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.

Environnement de vérification de fonctionnement

  • Kali Linux 2018.2 (pour Metasploit)
    • CPU: Intel(R) Core(TM) i5-5200U 2.20GHz
    • Memory: 8.0GB
    • Metasploit Framework 4.16.48-dev
    • Python 3.6.6

Licence

Apache License 2.0

Contactez-nous

[email protected]

  • Masafumi Masuya
    https://twitter.com/gyoizamurai
  • Toshitsugu Yoneyama
    https://twitter.com/yoneyoneyo
  • Isao Takaesu
    https://twitter.com/bbr_bbq
Télécharger l’outil
IndexDomaineSous-domaineAdresse IPStatut d'accès (http)Emplacement (http)Statut d'accès (https)Emplacement (https)Enregistrements Whois
1mbsd.jpmbsd.jp['40.115.251.148']301https://www.mbsd.jp/301https://www.mbsd.jp/***
2mbsd.jpwww.mbsd.jp['40.115.251.148']301https://www.mbsd.jp/200--
3mbsd.jpwww2.mbsd.jp['40.115.251.148']301https://www.mbsd.jp/200--
CatégorieParamètreDescription
Spiderdepth_limitProfondeur maximale d'exploration. La valeur par défaut est de 2 couches.
delay_timeTemps de retard de l'exploration. Valeur par défaut : 3 (sec).
time_outOption de fermeture du spider. Délai d'expiration de l'exploration. Valeur par défaut : 600 (sec).
item_countOption de fermeture du spider. Nombre maximum d'éléments. Valeur par défaut : 300.
page_countOption de fermeture du spider. Nombre maximum d'éléments par page. Valeur par défaut : 0 (aucune limite).
error_countOption de fermeture du spider. Nombre maximum d'erreurs. Valeur par défaut : 0 (aucune limite).
CatégorieParamètreDescription
Commonmax_target_urlNombre 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_byteTaille 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é.
scrambleLa liste d'URL collectées par l'exploration Web est ordonnée aléatoirement. Valeur par défaut : 1 (actif). 0 est inactif.
CatégorieParamètreDescription
Exploitserver_hostAdresse IP allouée au serveur RPC (msgrpc).
server_portNuméro de port alloué au serveur RPC (msgrpc).
msgrpc_userIdentifiant utilisateur pour l'autorisation de msgrpc.
msgrpc_passMot de passe pour l'autorisation de msgrpc.
LHOSTAdresse IP allouée au serveur RPC (msgrpc).
OptionDescriptionExemple
--categoryCatégorie du produit dans les signatures/données d'entraînement.OS or WEB or FRAMEWORK or CMS.
--vendorNom du fournisseur du produit dans les signatures/données d'entraînement.wordpress, joomla!, drupal.
--packageNom 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.
TypeChamp #DescriptionExemple
Requis1Nom du fournisseur.joomla
Requis2Nom du produit.joomla\!
Optionnel3Version liée à ces données d'apprentissage.*
Requis4Fonctionnalité du produit exprimée par une expression régulière.(Set-Cookie: [a-z0-9]{32}=.*);
CatégorieParamètreDescription
CommonproxyInformations du serveur proxy. Le format est scheme://hostname:port (ex: http://proxy-example:8083).
proxy_userSi vous avez besoin d'authentification proxy, veuillez saisir l'utilisateur d'authentification.
proxy_passSi vous avez besoin d'authentification proxy, veuillez saisir le mot de passe d'authentification.