Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
GyoiThon — GyoiThon は、機械学習を使用した成長中の侵入テストツールです。 | Kitploit
ツール/GitHubGitHub/gyoisamurai/gyoithon
偵察脆弱性スキャナーエクスプロイトフレームワーク情報収集ウェブセキュリティペネトレーションテスト機械学習サブドメイン列挙
GitHubgyoisamurai/gyoithon

GyoiThon

GyoiThon は、機械学習を使用した成長中の侵入テストツールです。

リポジトリを見る
8263035年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

GyoiThon: 次世代ペネトレーションテストツール

Black Hat ASIA Arsenal 2018 Black Hat ASIA Arsenal 2019

日本語ページはこちら。

プレゼンテーション

  • 2018年1月25日:JANOG41
  • 2018年3月23日:Black Hat ASIA 2018 Arsenal
  • 2018年8月12日:DEFCON26 DemoLabs
  • 2018年10月24日:OWS in CSS2018
  • 2018年11月3日:AV TOKYO 2018 HIVE
  • 2018年12月22日~23日:SECCON YOROZU 2018
  • 2019年3月28日:Black Hat ASIA 2019 Arsenal

ドキュメント

  • インストール
  • 使用方法
  • Tips
  • デモ動画 (YouTube)

Slack

  • https://gyoithon.slack.com
    GyoiThon Slackに参加しましょう!!

新機能!!

新しいGyoiThon(バージョン0.0.4)は、インターネット上に公開されているサブドメインを一覧表示できます。また、そのサブドメインがWebサービスとして公開されている場合、GyoiThonは非破壊的な脆弱性評価であるヘルスチェックを実行します。

注意
新機能はGoogleカスタム検索APIを使用します。そのため、新機能を使用する場合は、Googleカスタム検索のAPIキーを用意する必要があります。
  • 例)サブドメインの一覧表示。
    まず、次のようなdomain_list.csvを用意する必要があります: ``` "Domain Name" mbsd.jp
root@kitploit:~
そして、次のコマンドを実行します。 ```
root@kali:~/GyoiThon# python3 gyoithon.py -i --domain_list

その結果、指定されたドメインに関連するサブドメインのリストが得られます。

  • 例) サブドメインをリストアップし、ヘルスチェックを実行します。
    GyoiThonは、サブドメインのリストアップを実行し、そのサブドメインがWebサービスとして公開されている場合(ポート80または443が開放されている場合)、非破壊的な脆弱性評価であるヘルスチェックを実行します。``` root@kali:~/GyoiThon# python3 gyoithon.py -i --domain_list --through_health_check --safety
root@kitploit:~
|インデックス|ドメイン|サブドメイン|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はWebサーバの**インテリジェンス収集ツール**です。  

GyoiThonは対象のWebサーバに**リモートアクセス**し、CMS、Webサーバソフトウェア、フレームワーク、プログラミング言語などの**サーバ上で稼働している製品を特定**します。そして、Metasploitを使用して特定した製品に対して**エクスプロイトモジュールを実行**できます。GyoiThonは上記のアクションを**完全自動で実行**します。  

GyoiThonの主な機能は以下の通りです。  

 * リモートアクセス/完全自動  
 GyoiThonは、**リモートアクセス**のみを使用して対象Webサーバの情報を**完全自動で**収集できます。操作のためにGyoiThonを一度実行するだけで済みます。  

 * 非破壊テスト  
 GyoiThonは、**通常のアクセスのみ**を使用して対象Webサーバの情報を収集できます。  
 ただし、一部のオプションを使用すると、GyoiThonはエクスプロイトモジュールの送信などの異常なアクセスを実行します。  

 * 多様な情報の収集  
 GyoiThonには、Webクローラー、Google Custom Search API、Censys、デフォルトコンテンツの探索、クラウドサービスの調査など、さまざまなインテリジェンス収集エンジンがあります。収集した情報を**文字列パターンマッチング**と**機械学習**を用いて分析することで、GyoiThonは対象Webサーバで稼働している**製品/バージョン/CVE番号**、**不要なHTMLコメント**/**デバッグメッセージ**、**ログインページ**などを特定できます。  

 * 実際の脆弱性の調査  
 GyoiThonはMetasploitを使用して特定された製品に対してエクスプロイトモジュールを実行できます。  
 その結果、**対象Webサーバの実際の脆弱性を調査**できます。  

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

| 注意 |
|:-----|
| ご興味があれば、**ご自身の管理下の環境で自己責任でご利用ください**。 |

## <a name='Installation'>インストール</a>
1. GyoiThonのリポジトリをgit cloneします。```
root@kali:~# git clone https://github.com/gyoisamurai/GyoiThon.git
  1. python3-pip をインストールしてください。``` root@kali:# apt-get update root@kali:# apt-get install python3-pip
root@kitploit:~
3. 必要なPythonパッケージをインストールしてください。```
root@kali:~# cd GyoiThon
root@kali:~/GyoiThon# pip3 install -r requirements.txt
root@kali:~/GyoiThon# apt install python3-tk
  1. GyoiThonのconfig.iniを編集してください。
    自分の config.ini を編集する必要があります。
    詳細は使い方を参照してください。

使い方

オプションなしのデフォルトモードや、複数のオプションの組み合わせを使用することで、GyoiThonは対象Webサーバの様々な情報を収集できます。``` 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:~
### 準備.
1. 対象ファイル `host.txt` を編集します。
`host.txt` に対象のWebサーバーを記述する必要があります。
記述形式は `protocol FQDN(またはIPアドレス) 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/

root@kitploit:~
| 注意 |
|:-----|
| ルートパスの先頭と末尾に`/`を挿入します。 |

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

デフォルトモードでは、以下の最小限の情報を収集します。

  1. WebクローリングによるHTTPレスポンスの収集。
  2. 文字列パターンマッチングによる製品/バージョンの特定。
  3. 特定された製品に対するCVE番号(NVDから)の調査。
  4. 不要なHTML/JavaScriptコメントの調査。
  5. 不要なデバッグメッセージの調査。
  6. ログインページの調査。
  • クローリング設定
    GyoiThonはPythonライブラリのScrapyを使用しています。
    config.iniのパラメータを変更することで、Scrapyの設定を変更できます。
  • 検査速度設定
    検査数とHTTPレスポンスサイズは検査時間に大きく影響します。
    config.iniのパラメータを変更することで、検査速度を調整できます。
注意
検査速度と精度はトレードオフの関係にあります。

2. クラウドサービスモードの検査。```

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

root@kitploit:~
`-s` オプションを追加することで、GyoiThon はデフォルトモードに加えて、対象の Web サーバーがクラウドサービスを使用しているかどうかを識別します。  
実行前に、`config.ini` の以下のパラメータを変更する必要があります。  

|カテゴリ|パラメータ|説明|
|:----|:----|:----|
|CloudChecker|azure_ip_range|Azure データセンター IP 範囲のソース URL。 |

このパラメータは、Azure データセンター IP 範囲のソース URL です。この URL は 1 日に数回変更されます。そのため、GyoiThon を実行する前に、ページ「[Microsoft Azure Datacenter IP Ranges](https://www.microsoft.com/en-us/download/confirmation.aspx?id=41653)」のリンク「click here to download manually」から最新の URL を取得し、上記のパラメータに設定する必要があります。  

#### 3. 機械学習分析モード。```
root@kali:~/GyoiThon# python3 gyoithon.py -m

-m オプションを追加することで、GyoiThon はデフォルトモードに加えて機械学習(Naive Bayes)を使用して製品/バージョンを識別します。

4. Google Hacking モード.```

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

root@kitploit:~
`-g`オプションを追加することで、GyoiThonはデフォルトモードに加えてGoogle Custom Search APIを使用して製品/バージョンを識別します。実行前に、以下のパラメータに[APIキー](https://console.cloud.google.com/apis/dashboard)と[検索エンジンID](https://support.google.com/customsearch/answer/2649143?hl=ja)を設定する必要があります。  

|カテゴリ|パラメータ|説明|
|:----|:----|:----|
|GoogleHack|api_key|Google Custom Search APIのAPIキー。|
||search_engine_id|Google検索エンジンID。|

| 注意 |
|:-----|
| 1日あたり100回のクエリを無料で使用できるGoogle Custom Search APIを利用できます。ただし、100回を超えて使用する場合は、Google Custom Search APIサービスの料金を支払う必要があります。 |

#### 5. デフォルトコンテンツモードの探索。```
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_time探索の遅延時間。デフォルト値は 1 (秒) です。
Note
このオプションを使用すると、GyoiThonが対象のWebサーバーに対して多数のアクセス(数百のアクセス)を行うため、サーバーに高負荷がかかる可能性があります。また、多数の404エラーログがアクセスログに書き込まれるため、SOC(セキュリティオペレーションセンター)に検知される可能性があります。そのため、このオプションを使用する場合は、SOCや管理者などの関係者に事前に通知し、管理下の環境で自己責任で使用してください。

6. Censys連携モード。```

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

root@kitploit:~
`-c`オプションを追加することで、GyoiThonは[Censys](https://censys.io/)を使用して開放ポート番号とサーバー証明書を検査します。  
実行前に、以下のパラメータにAPIキーとシークレットキーを設定する必要があります。  

|カテゴリ|パラメータ|説明|
|:----|:----|:----|
|Censys|api_id|CensysのAPIキー。 |
||secret|Censysのシークレットキー。 |

#### 7. Metasploit連携モード。```
root@kali:~/GyoiThon# python3 gyoithon.py -p

By add -p option, GyoiThon examines real vulnerabilities such as DoS and backdoor using Metasploit in addition to default mode.
「-p」オプションを追加することで、GyoiThonはデフォルトモードに加えて、Metasploitを使用してDoSやバックドアなどの実際の脆弱性を調査します。
Before execution, you must launch RPC server of Metasploit and set below parameters in config.ini.
実行前に、MetasploitのRPCサーバーを起動し、config.iniに以下のパラメータを設定する必要があります。

Note
When you use this option, may be heavily affected to server operation because of GyoiThon execute the exploit against the target web server. In addition, this option may be caught by SOC (Security Operation Center) because of exploits are like a real attacks. So, if you use this option, please notify person concerned such as SOC, administrator and use them in an environment under your control and at your own risk and.
このオプションを使用すると、GyoiThonが対象のWebサーバーに対してエクスプロイトを実行するため、サーバー運用に大きな影響を与える可能性があります。また、このオプションはエクスプロイトが実際の攻撃に似ているため、SOC(セキュリティオペレーションセンター)に検知される可能性があります。したがって、このオプションを使用する場合は、SOCや管理者などの関係者に連絡し、管理下の環境で自己責任で使用してください。

8. Stored logs based analysis mode.

8. 保存されたログに基づく分析モード。```

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

root@kitploit:~
`-l`オプションを追加することで、GyoiThonはWebクローリングを行わずに、保存されたHTTPレスポンスを使用して様々な検査を実行します。  

このモードは、GyoiThonがWebクローリングを実行できないWebアプリケーションを想定しています。  
GyoiThonは、ローカルプロキシツールによって収集された保存済みHTTPレスポンスを使用して、デフォルトモードのWebクローリングと同様の様々な検査を実行できます。  

| 注意 |
|:-----|
| ログファイルの拡張子は`.log`です。 |

#### <a name='complex_mode'>9. 複数のオプションの組み合わせ</a>.  
##### 「クラウドサービス検査モード」と「機械学習分析モード」の組み合わせ。```
root@kali:~/GyoiThon# python3 gyoithon.py -s -m
「クラウドサービスモードの検査」と「Googleハッキングモード」の組み合わせ。```

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

root@kitploit:~
##### 「クラウドサービスモードの検証」、「機械学習分析モード」、「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"

root@kitploit:~
#### <a name='generating_sig'>10. シグネチャ/トレインデータ生成モード</a>.```
root@kali:~/GyoiThon# python3 gyoithon.py -d --category=CMS --vendor=joomla! [email protected]@_origin.tar.zip

-dオプションを追加することで、GyoiThonは対象Webサーバー上で動作するWeb製品を検出するためのシグネチャ/訓練データを生成します。
オプションは以下の通りです。

レポートの確認

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

root@kitploit:~
GyoiThon は以下の2種類のレポートを生成します。

 * `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` です。  
 各カラムの詳細は以下の通りです。

|Column|Description|Example|
|:----|:----|:----|
|fqdn|対象WebサーバのFQDN|`www.gyoithon.example.com`|
|ip_addr|対象WebサーバのIPアドレス|`192.168.220.129`|
|port|対象Webサーバのポート番号|`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ヘッダ|`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` です。  
 各カラムの詳細は以下の通りです。

|Column|Description|Example|
|:----|:----|:----|
|fqdn|対象WebサーバのFQDN|`www.gyoithon.example.com`|
|ip_addr|対象WebサーバのIPアドレス|`192.168.220.129`|
|category|情報カテゴリ|`Server Info` または `Certification Info`|
|open_port|公開Webポート|`443`|
|protocol|公開Webポートのプロトコル|`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

root@kitploit:~
|Type|Field#|Description|例|
|:---|:---|:---|:---|
|Required|1|製品カテゴリ。|`CMS`|
|Required|2|ベンダー名。|`drupal`|
|Required|3|製品名。|`drupal`|
|Optional|4|このシグネチャにバインドされたバージョン。|`8.0`|
|Required|5|製品を識別する正規表現。|`.*(X-Generator: Drupal 8).*`|

オプションフィールドが不要な場合は、このフィールドに `*` を設定する必要があります。

* 例```
CMS@wordpress@wordpress@*@.*(WordPress ([0-9]+[\.0-9]*[\.0-9]*)).*
CMS@drupal@[email protected]@.*(X-Generator: Drupal 8).*
注記
製品バージョンを抽出したい場合は、2つの正規表現グループを記述します(2番目の正規表現はバージョン抽出に使用されます)。

signature_default_content.txt

これは、デフォルトコンテンツモードの探索における製品識別のための文字列一致パターンです。
新しい文字列一致パターンを追加したい場合は、以下のような形式で記述する必要があります。``` Format: field1@field2@field3@field4@field5@field6@field7@field8

root@kitploit:~
|型|フィールド#|説明|例|
|:---|:---|:---|:---|
|必須|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
注記
製品バージョンを抽出したい場合は、2つの正規表現グループを記述します(2つ目の正規表現はバージョン抽出に使用されます)。
注記
GyoiThonがExplore pathだけでは製品を確認できない場合は、Regex of to confirm productフィールドを指定する必要があります。GyoiThonはExplore pathが示すURLにアクセスし、Regex of to confirm productを使用してHTTPレスポンスを検証します。この正規表現が一致した場合、GyoiThonは製品が存在すると判断します。

signature_search_query.txt

これは、Google Hackingモードにおける製品識別のためのGoogleカスタム検索クエリです。
新しいクエリを追加したい場合は、以下のような形式で記述する必要があります。``` Format: field1@field2@field3@field4@field5@field6@field7@field8

root@kitploit:~
|タイプ|フィールド#|説明|例|
|:---|:---|:---|:---|
|オプション|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
注意
製品バージョンを抽出したい場合は、2つの正規表現グループを記述します(2つ目の正規表現はバージョン抽出に使用されます)。
注意
GyoiThonがGoogle Custom Search queryだけでは製品を確認できない場合、Regex of to confirm productフィールドを指定する必要があります。GyoiThonはGoogle Custom Search APIの実行結果に含まれるURLにアクセスし、Regex of to confirm productを使用してHTTPレスポンスを検査します。この正規表現が一致した場合、GyoiThonは製品が存在すると判断します。

signature_comment.txt

これは、デフォルトモードにおける不要なコメントを識別するための文字列一致パターンです。
新しい文字列一致パターンを追加したい場合は、以下のような形式で記述する必要があります。``` Format: field1

root@kitploit:~
|Type|Field#|Description|
|:---|:---|:---|
|Required|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

root@kitploit:~
|種類|フィールド#|説明|
|:---|:---|:---|
|必須|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

root@kitploit:~
|Type|Field#|Description|
|:---|:---|:---|
|必須||1|ページタイプ。|
|必須||2|ページタイプを識別する正規表現。|

* 例```
Login@.*(login|log_in|logon|log_on|signin|sign_in).*
注意
上記のベンダー名と製品名は、CPE形式の名前と一致している必要があります。

2. 学習データを手動で追加する方法

modules/train_data/ パスには、機械学習用の2つの訓練データが含まれています。``` root@kali:~/GyoiThon/modules/train_data/ ls train_cms_in.txt train_page_type.txt

root@kitploit:~
#### `train_cms_in.txt`  
これは、<a name='machine_learning_mode'>Machine Learning mode</a>における機械学習分析のためのトレーニングデータです。  
新しいトレーニングデータを追加したい場合は、次のような形式で記述する必要があります。```
Format: field1@field2@field3@field4

オプションフィールドが必要ない場合は、このフィールドに * を設定する必要があります。

  • 例``` 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:~
|注記|
|:---|
|上記のベンダー名と製品名は、[CPE形式](https://en.wikipedia.org/wiki/Common_Platform_Enumeration)の名前と一致する必要があります。|

#### `train_page_type.txt`  
これは、<a name='default_mode'>デフォルトモード</a>で機械学習を使用してページタイプを識別するための訓練データです。  
新しい訓練データを追加する場合は、以下の形式で記述する必要があります。```
Format: field1@field2
タイプフィールド#説明
必須1カテゴリ。
必須2正規表現で表現されるページの特徴。
  • 例``` Login@.*(<input.type=["']text["'].name=["']user|uid|username|user_name|name["']).> Login@.(<input.type=["']password["']).>
root@kitploit:~
### 3. "Exploit module's option"の変更方法
GyoiThonがエクスプロイトを実行する際、Exploitモジュールオプションの**デフォルト値**を使用します。  
オプション値を変更したい場合は、以下のように`exploit_tree.json`内の`"user_specify"`に任意の値を入力してください。```
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/"
        },

上記の例は、エクスプロイトモジュール「exploit/unix/webapp/joomla_media_upload_exec」の TARGETURI オプションの値を「/joomla」から「/my_original_dir/」に変更するものです。

4. プロキシサーバー経由でのアクセス方法

GyoiThonはプロキシサーバー経由でターゲットサーバーにアクセスできます。
プロキシサーバーを使用する場合は、config.iniにプロキシサーバー情報を入力してください。

カテゴリパラメータ
注意
現在、GyoiThonはBasic認証のみ実装されています。

動作確認環境

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

ライセンス

Apache License 2.0

お問い合わせ

[email protected]

  • Masafumi Masuya
    https://twitter.com/gyoizamurai
  • Toshitsugu Yoneyama
    https://twitter.com/yoneyoneyo
  • Isao Takaesu
    https://twitter.com/bbr_bbq
ツールをダウンロード
番号ドメインサブドメインIPアドレスアクセス状態 (http)ロケーション (http)アクセス状態 (https)ロケーション (https)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--
カテゴリパラメータ説明
Spiderdepth_limitクローリングの最大深度。デフォルト値は2層です。
delay_timeクローリングの遅延時間。デフォルト値は3(秒)です。
time_outスパイダー終了オプション。クローリングのタイムアウト。デフォルト値は600(秒)です。
item_countスパイダー終了オプション。最大アイテム数。デフォルト値は300です。
page_countスパイダー終了オプション。1ページあたりの最大アイテム数。デフォルト値は0(制限なし)です。
error_countスパイダー終了オプション。最大エラー数。デフォルト値は0(制限なし)です。
カテゴリパラメータ説明
共通max_target_url最大検査URL数。Webクローリングで収集したURL数がこのパラメータ値を超えた場合、超過分は破棄されます。デフォルト値は100です。0は無制限です。
max_target_byte最大検査レスポンスサイズ。レスポンスサイズがこのパラメータ値を超えた場合、超過分は破棄されます。デフォルト値は10000バイトです。0は無制限です。
scrambleWebクローリングで収集したURLリストをランダムに並び替えます。デフォルト値は1(有効)です。0は無効です。
CategoryParameterDescription
Exploitserver_hostAllocated IP address to the RPC Server (msgrpc).
RPCサーバー(msgrpc)に割り当てられたIPアドレス。
server_portAllocated port number to the RPC Server (msgrpc).
RPCサーバー(msgrpc)に割り当てられたポート番号。
msgrpc_userUser ID for authorization of msgrpc.
msgrpcの認証用ユーザーID。
msgrpc_passPassword for authorization of msgrpc.
msgrpcの認証用パスワード。
LHOSTAllocated IP address to the RPC Server (msgrpc).
RPCサーバー(msgrpc)に割り当てられたIPアドレス。
オプション説明例
--categoryシグネチャ/訓練データにおける製品カテゴリ。OS、WEB、FRAMEWORK、CMSのいずれか。
--vendorシグネチャ/訓練データにおける製品ベンダー名。wordpress、joomla!、drupal。
--packageインポートするターゲットパッケージファイル名。製品名、バージョン、拡張子の3つのフィールドを@で区切る必要があります。[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}=.*);
説明
Commonproxyプロキシサーバー情報。フォーマットはscheme://hostname:port(例:http://proxy-example:8083)。
proxy_userプロキシ認証が必要な場合は、認証ユーザーを入力してください。
proxy_passプロキシ認証が必要な場合は、認証パスワードを入力してください。