GyoiThon

GyoiThon

766 Stars

GyoiThon is a growing penetration test tool using Machine Learning.

gyoisamurai
May 26, 2025
766 stars
Category
Osint
GitHub Stars
766
Project Added On
May 26, 2025
Contributors
7

GyoiThon: Next generation penetration test tool

Black Hat ASIA Arsenal 2018 Black Hat ASIA Arsenal 2019

Japanese page is here.

Presentation

Documents

Slack

New function!!

The new GyoiThon (version 0.0.4) can list up your subdomain facing on the internet. And if the subdomain is published as a Web service, then GyoiThon executes a health check that a non-destructive vulnerability assessment.

Note
New function uses a Google custom search API. So if you use a new function, then you have to prepare a API key of Google Custom search.
  • ex) Listing up your subdomain.
    First, you have to prepare the domain_list.csv is following:
    "Domain Name" mbsd.jp
    And you execute following command.
    root@kali:~/GyoiThon# python3 gyoithon.py -i --domain_list
    As a result, you get a list of sundomains associated with the specified domain.
    |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 | - | - |

  • ex) Listing up your subdomain and executing health check.
    GyoiThon executes a list up your subdomain and if the subdomain is published as a Web service (with port 80 or 443 open), then GyoiThon execute a health check that a non-destructive vulnerability assessment.

root@kali:~/GyoiThon# python3 gyoithon.py -i --domain_list --through_health_check --safety

As a result, you get a list of subdomains and assessment report.
|Index|Domain|Sub-Domain|IP Address|Access Status (http)|Location (http)|Access Status (https)|Location (https)|Whois records|Assessment results|
|:–:|:–:|:–:|:–:|:–:|:–:|:–:|:–:|:–:|:–:|
| 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 | - | - | *** |

Overview

GyoiThon is Intelligence Gathering tool for Web Server.

GyoiThon execute remote access to target Web server and identifies product operated on the server such as CMS, Web server software, Framework, Programming Language etc,. And, it can execute exploit modules to identified products using Metasploit. GyoiThon fully automatically execute above action.

GyoiThon’s main features are following.

  • Remote access/Fully automatic
    GyoiThon can fully automatically gather the information of target Web server using only remote access. You only execute GyoiThon once for your operation.

  • Non-destructive test
    GyoiThon can gather information of target Web server using only normally access.
    But, when you use a part of option, GyoiThon execute abnormally access such as sending exploit modules.

  • Gathering various information
    GyoiThon has various intelligence gathering engines such as Web crawler, Google Custom Search API, Censys, explorer of default contents, examination of cloud services etc,. By analyze gathered information using strings pattern matching and machine learning, GyoiThon can identify product/version/CVE number operated on the target web server, unnecceary html comments/debug messages, login page etc,.

  • Examination of real vulnerability
    GyoiThon can execute exploit modules to identified products using Metasploit.
    As a result, it can examine real vulnerability of target web server.

Overview

Note
If you are interested, please use them in an environment under your control and at your own risk.

Installation

  1. git clone GyoiThon’s repository.
root@kali:~# git clone https://github.com/gyoisamurai/GyoiThon.git
  1. Get python3-pip.
root@kali:~# apt-get update
root@kali:~# apt-get install python3-pip
  1. install required python packages.
root@kali:~# cd GyoiThon
root@kali:~/GyoiThon# pip3 install -r requirements.txt
root@kali:~/GyoiThon# apt install python3-tk
  1. Edit config.ini of GyoiThon.
    You have to edit your config.ini.
    More information is Usage.

Usage

By using default mode without option and combination of several options, GyoiThon can gather various information of target web server.

usage:
    .\gyoithon.py [-s] [-m] [-g] [-e] [-c] [-p] [-l --log_path=<path>] [--no-update-vulndb]
    .\gyoithon.py [-d --category=<category> --vendor=<vendor> --package=<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.

Preparation.

  1. Edit target file host.txt.
    You have to write target web server to the host.txt.
    Writting format is protocol FQDN(or IP address) Port Crawling_root_path.
  • Example.
https gyoithon.example.com 443 /

If you want to indicate multiple target information, you have to write below.

https gyoithon.example.com 443 /
http 192.168.220.129 80 /vicnum/
https www.example.com 443 /catalog/
Note
You insert / at the beginning and end of Root Path.
  1. Edit configuration file config.ini.
    Parameters to be changed by the user are defined in the setting file config.ini.
    If you want to change parameters, edit config.ini.
    Detail of config.ini is here.

Execution of GyoiThon.

1. Default mode.

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

The default mode gathers following minimum information.

  1. Gathering of HTTP responses by Web crawling.
  2. Identification of product/version using string pattern matching.
  3. Examination of CVE number (from NVD) for identified products.
  4. Examination of unneccesary HTML/JavaScript comments.
  5. Examination of unneccesary debug messages.
  6. Examination of login pages.
  • Crawling setting
    GyoiThon uses Scrapy that Python’s library.
    By change the parameters in config.ini, you can change setting of Scrapy.
Category Parameter Description
Spider depth_limit Maximum depth of crawling. Default value is 2 layer.
delay_time Delay time of crawling. Default value is 3 (sec).
time_out Spider close option. Timeout of crawling. Default value is 600 (sec).
item_count Spider close option. Maximum items. Default value is 300.
page_count Spider close option. Maximum items per page. Default value is 0 (no limit).
error_count Spider close option. Maximum errors. Default value is 0 (no limit).
  • Examination speed setting
    The examination number and HTTP response size greatly affect examination times.
    By change the parameters in config.ini, you can adjust examination speed.
Category Parameter Description
Common max_target_url Maximum examination URL number. If the URL number gathered by Web Crawling exceeds this parameter value, excess URL number is discarded. Default value is 100. 0 is unlimited.
max_target_byte Maximum examination response size. If the response size exceeds this parameter value, excess response size is discarded. Default value is 10000 byte. 0 is unlimited.
scramble The URL list gathered b

... Content truncated. Click "See More" to view the full README.

Tool Information

Author

gyoisamurai

Project Added On

May 26, 2025

License

Open Source

Tags

security tool