
GyoiThon ist ein wachsendes Penetrationstest-Tool mit maschinellem Lernen.

Japanische Seite ist hier.
Das neue GyoiThon (Version 0.0.4) kann Ihre im Internet verfügbaren Subdomains auflisten. Und wenn die Subdomain als Webdienst veröffentlicht ist, führt GyoiThon einen Health-Check durch, der eine nicht-destruktive Schwachstellenbewertung darstellt.
| Hinweis |
|---|
| Die neue Funktion verwendet eine Google Custom Search API. Wenn Sie diese Funktion nutzen, müssen Sie daher einen API-Schlüssel für die Google Custom Search bereitstellen. |
domain_list.csv vorbereiten: ```
"Domain Name"
mbsd.jp"? But we are to output only the translation. So we output "Und Sie führen folgenden Befehl aus. " with two trailing spaces? Typically trailing spaces are significant in Markdown for line breaks. So we preserve.
But also consider the original might be part of a sentence. The chunk starts with "And you execute following command." So it's a standalone sentence. Translate as "Und Sie führen folgenden Befehl aus."
But ensure not to translate code or anything else. There is no code here.
Thus final output: "Und Sie führen folgenden Befehl aus. " (with two spaces at end). Also note the original had a period and then two spaces. Ensure the translation ends with period and two spaces.Und Sie führen folgenden Befehl aus. ```
root@kali:~/GyoiThon# python3 gyoithon.py -i --domain_list
Als Ergebnis erhalten Sie eine Liste von Subdomains, die mit der angegebenen Domain verknüpft sind.
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|-|-|***|
## Übersicht
GyoiThon ist ein **Intelligence Gathering Tool** für Webserver.
GyoiThon führt **Remote-Zugriff** auf den Ziel-Webserver durch und **identifiziert Produkte, die auf dem Server betrieben werden**, wie CMS, Webserver-Software, Framework, Programmiersprache usw. Außerdem kann es **Exploit-Module** für identifizierte Produkte mit Metasploit ausführen. GyoiThon führt die oben genannten Aktionen **vollautomatisch** durch.
Die Hauptfunktionen von GyoiThon sind die folgenden:
* Remote-Zugriff/Vollautomatisch
GyoiThon kann die Informationen des Ziel-Webservers **vollautomatisch** nur über **Remote-Zugriff** sammeln. Sie müssen GyoiThon nur einmal für Ihren Betrieb ausführen.
* Zerstörungsfreier Test
GyoiThon kann Informationen des Ziel-Webservers nur über **normalen Zugriff** sammeln.
Wenn Sie jedoch eine Teiloption verwenden, führt GyoiThor abnormale Zugriffe aus, wie z. B. das Senden von Exploit-Modulen.
* Sammeln verschiedener Informationen
GyoiThon verfügt über verschiedene Intelligence-Gathering-Engines wie Web-Crawler, Google Custom Search API, Censys, Explorer für Standardinhalte, Prüfung von Cloud-Diensten usw. Durch die Analyse der gesammelten Informationen mittels **String Pattern Matching** und **maschinellem Lernen** kann GyoiThon **Produkt/Version/CVE-Nummer** identifizieren, die auf dem Ziel-Webserver betrieben werden, **unnötige HTML-Kommentare**/**Debug-Meldungen**, **Login-Seite** usw.
* Prüfung echter Sicherheitslücken
GyoiThon kann Exploit-Module für identifizierte Produkte mit Metasploit ausführen.
Dadurch kann es **echte Sicherheitslücken des Ziel-Webservers untersuchen**.

| Hinweis |
|:--------|
| Falls Sie interessiert sind, **verwenden Sie sie bitte in einer von Ihnen kontrollierten Umgebung und auf eigenes Risiko**. |
## <a name='Installation'>Installation</a>
1. git clone GyoiThon's repository.```
root@kali:~# git clone https://github.com/gyoisamurai/GyoiThon.git
3. Installieren Sie die erforderlichen Python-Pakete.```
root@kali:~# cd GyoiThon
root@kali:~/GyoiThon# pip3 install -r requirements.txt
root@kali:~/GyoiThon# apt install python3-tk
config.ini bearbeiten.Durch die Verwendung des Standardmodus ohne Option und der Kombination mehrerer Optionen kann GyoiThon verschiedene Informationen über den Ziel-Webserver sammeln.``` 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.
### Vorbereitung.
1. Bearbeiten Sie die Zieldatei `host.txt`.
Sie müssen den Ziel-Webserver in die `host.txt` schreiben.
Das Schreibformat ist `protocol FQDN(oder IP-Adresse) Port Crawling_root_path`.
* Beispiel.```
https gyoithon.example.com 443 /
Wenn Sie mehrere Zielinformationen angeben möchten, müssen Sie unten schreiben.``` https gyoithon.example.com 443 / http 192.168.220.129 80 /vicnum/ https www.example.com 443 /catalog/
| Hinweis |
|:--------|
| Sie fügen `/` am Anfang und Ende des Root-Pfads ein. |
2. Bearbeiten Sie die Konfigurationsdatei `config.ini`.
Die vom Benutzer zu ändernden Parameter sind in der Einstellungsdatei `config.ini` definiert.
Wenn Sie Parameter ändern möchten, bearbeiten Sie `config.ini`.
Einzelheiten zu `config.ini` finden Sie [hier](https://github.com/gyoisamurai/GyoiThon/wiki/Configure).
### Ausführung von GyoiThon.
#### <a name='default_mode'>1. Standardmodus.</a>```
root@kali:~/GyoiThon# python3 gyoithon.py
Der Standardmodus sammelt die folgenden Mindestinformationen.
Scrapy, eine Python-Bibliothek.config.ini können Sie die Einstellungen von Scrapy ändern.config.ini können Sie die Untersuchungsgeschwindigkeit anpassen.| Hinweis |
|---|
| Untersuchungsgeschwindigkeit und -genauigkeit sind ein Kompromiss. |
root@kali:~/GyoiThon# python3 gyoithon.py -s
Mit der Option `-s` erkennt GyoiThon zusätzlich zum Standardmodus, ob der Ziel-Webserver einen Cloud-Dienst nutzt oder nicht.
Vor der Ausführung müssen Sie den folgenden Parameter in der `config.ini` ändern.
|Category|Parameter|Description|
|:----|:----|:----|
|CloudChecker|azure_ip_range|Quell-URL der Azure-Rechenzentrum-IP-Bereiche. |
Dieser Parameter ist die Quell-URL der Azure-Rechenzentrum-IP-Bereiche. Diese URL wird mehrmals täglich geändert. Daher müssen Sie die aktuelle URL über den Link „hier klicken, um manuell herunterzuladen“ auf der Seite „[Microsoft Azure-Rechenzentrum-IP-Bereiche](https://www.microsoft.com/en-us/download/confirmation.aspx?id=41653)“ abrufen und sie vor der Ausführung von GyoiThon im obigen Parameter setzen.
#### 3. Maschinelles Lernen-Analysemodus.```
root@kali:~/GyoiThon# python3 gyoithon.py -m
Durch Hinzufügen der Option -m identifiziert GyoiThon Produkte/Versionen mithilfe von maschinellem Lernen (Naive Bayes) zusätzlich zum Standardmodus.
root@kali:~/GyoiThon# python3 gyoithon.py -g
Durch Hinzufügen der Option `-g` identifiziert GyoiThon Produkte/Versionen mithilfe der Google Custom Search API zusätzlich zum Standardmodus. Vor der Ausführung müssen Sie [API-Schlüssel](https://console.cloud.google.com/apis/dashboard) und [Suchmaschinen-ID](https://support.google.com/customsearch/answer/2649143?hl=ja) in den folgenden Parametern festlegen.
|Kategorie|Parameter|Beschreibung|
|:----|:----|:----|
|GoogleHack|api_key|API-Schlüssel der Google Custom Search API. |
||search_engine_id|Google-Suchmaschinen-ID. |
| Hinweis |
|:-----|
| Sie können die kostenlose Google Custom Search API mit 100 Abfragen pro Tag nutzen. Wenn Sie jedoch mehr als 100 Abfragen verwenden möchten, müssen Sie für den Google Custom Search API-Dienst bezahlen. |
#### 5. Erkundung des Standardinhaltsmodus.```
root@kali:~/GyoiThon# python3 gyoithon.py -e
Mit der Option -e durchsucht GyoiThon zusätzlich zum Standardmodus die Standardinhalte von Produkten wie CMS, Web-Server-Software.
Durch Ändern der Parameter in config.ini können Sie die Einstellungen der Erkundung ändern.
| Category | Parameter | Description |
|---|---|---|
| ContentExplorer | delay_time | Verzögerungszeit der Erkundung. Standardwert ist 1 (Sek.). |
| Hinweis |
|---|
| Wenn Sie diese Option verwenden, kann es zu einer hohen Serverlast kommen, da GyoiThon zahlreiche Zugriffe (hunderte Zugriffe) auf den Ziel-Webserver ausführt. Außerdem werden durch die zahlreichen 404-Fehlerprotokolle, die in das Zugriffsprotokoll geschrieben werden, möglicherweise das SOC (Security Operation Center) aufmerksam. Wenn Sie diese Option verwenden, benachrichtigen Sie bitte die betroffenen Personen wie das SOC oder den Administrator und verwenden Sie sie nur in einer Umgebung, die Sie kontrollieren, und auf eigenes Risiko. |
root@kali:~/GyoiThon# python3 gyoithon.py -c
Durch Hinzufügen der Option `-c` untersucht GyoiThon offene Portnummern und Serverzertifikate mit [Censys](https://censys.io/).
Vor der Ausführung müssen Sie den API-Key und den Secret-Key in den folgenden Parametern festlegen.
|Kategorie|Parameter|Beschreibung|
|:----|:----|:----|
|Censys|api_id|API-Key von Censys. |
||secret|Secret-Key von Censys. |
#### 7. Metasploit-Kooperationsmodus.```
root@kali:~/GyoiThon# python3 gyoithon.py -p
Durch Hinzufügen der Option -p untersucht GyoiThon zusätzlich zum Standardmodus echte Schwachstellen wie DoS und Backdoor mit Metasploit.
Vor der Ausführung müssen Sie den RPC-Server von Metasploit starten und die folgenden Parameter in config.ini festlegen.
| Hinweis |
|---|
| Wenn Sie diese Option verwenden, kann der Serverbetrieb stark beeinträchtigt werden, da GyoiThon den Exploit gegen den Ziel-Webserver ausführt. Darüber hinaus kann diese Option vom SOC (Security Operation Center) erkannt werden, da Exploits echten Angriffen ähneln. Wenn Sie diese Option also verwenden, benachrichtigen Sie bitte die betroffenen Personen wie SOC oder Administrator und verwenden Sie sie in einer von Ihnen kontrollierten Umgebung auf eigenes Risiko. |
root@kali:~/GyoiThon# python3 gyoithon.py -l --log_path="Full path of stored logs"
Durch Hinzufügen der Option `-l` führt GyoiThon verschiedene Untersuchungen durch, die gespeicherte HTTP-Antworten verwenden, ohne Web-Crawling.
Dieser Modus setzt voraus, dass GyoiThon kein Web-Crawling ausführen kann.
GyoiThon kann mit den von einem lokalen Proxy-Tool gesammelten HTTP-Antworten ähnliche Untersuchungen wie im Standardmodus mit Web-Crawling durchführen.
| Hinweis |
|:--------|
| Die Erweiterung der Protokolldatei ist `.log`. |
#### <a name='complex_mode'>9. Kombination mehrerer Optionen</a>.
##### Kombination von "Examination of cloud services mode" und "Machine Learning analysis mode".```
root@kali:~/GyoiThon# python3 gyoithon.py -s -m
root@kali:~/GyoiThon# python3 gyoithon.py -s -g
##### Kombination von "Examination of cloud services mode", "Machine Learning analysis mode" und "Google Hacking mode".```
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. Signatur-/Trainingsdaten-Modus generieren</a>.```
root@kali:~/GyoiThon# python3 gyoithon.py -d --category=CMS --vendor=joomla! [email protected]@_origin.tar.zip
By add -d option, GyoiThon generates signatures/train data for detecting Web products operated on the target Web Server.
The options is following.
Nach Abschluss der Ausführung von GyoiThon werden Berichte für jedes Ziel unter dem folgenden Pfad erstellt.``` 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 erstellt die folgenden zwei Arten von Berichten.
* `gyoithon_report_target FQDN(or IP address)_Port number_Root Path.csv`.
Dies ist der Hauptbericht, der hauptsächlich Produktname, Version, CVE usw. enthält.
Das Berichtsformat ist `gyoithon_report_target FQDN(or IP address)_Port number_Root Path.csv`.
Die Details jeder Spalte sind wie folgt.
|Spalte|Beschreibung|Beispiel|
|:----|:----|:----|
|fqdn|FQDN des Ziel-Webservers.|`www.gyoithon.example.com`|
|ip_addr|IP-Adresse des Ziel-Webservers.|`192.168.220.129`|
|port|Portnummer des Ziel-Webservers.|`80`|
|cloud_type|Cloud-Dienstname (Azure oder AWS oder GCP oder Unbekannt).|`AWS`|
|method|Untersuchungsmethode von GyoiThon.|`Crawling`|
|url|Aufgerufene URL.|`http://192.168.220.129:80/WackoPicko/admin/index.php?page=login`|
|vendor_name|Herstellername der identifizierten Produkte.|`apache`|
|prod_name|Identifizierte Produkte.|`http_server`|
|prod_version|Version der identifizierten Produkte.|`2.2.14`|
|prod_trigger|Auslöser der identifizierten Produkte.|`Apache/2.2.14`|
|prod_type|Produktkategorie (Web oder CMS oder Framework usw.).|`Web`|
|prod_vuln|CVE-Nummer gemäß den identifizierten Produkten (absteigend CVSS-Score).|`CVE-2017-3167, CVE-2017-3169, CVE-2017-7668` ...|
|origin_login|Existenz einer Login-Seite (Log: Analyse mittels maschinellem Lernen, Url: Analyse mittels String-Mustervergleich in der URL.|`Log : 37.5 %\nUrl : 100.0 %`|
|origin_login_trigger|Auslöser der identifizierten Login-Seite.|`Log : name",<input type="password"\nUrl : login`|
|wrong_comment|Identifizierte unnötige Kommentare.|`パスワードは「password1234」です。`|
|error_msg|Identifizierte unnötige Debug-Meldungen.|`Warning: mysql_connect() ..snip.. in auth.php on line 38`|
|server_header|Server-Header der HTTP-Antwort.|`Server: Apache/2.2.14 (Ubuntu) mod_mono/2.4.3 PHP/5.3.2`|
|log|Pfad der Rohdaten.|`/usr/home/~snip~/http_192.168.220.129_80_20181112170525765.log`|
|date|Untersuchungsdatum.|`2018/11/12 17:05:25`|
* `gyoithon_censys_report_target FQDN(or IP address)_Port number_Root Path.csv`.
Dies ist der Suchergebnisbericht unter Verwendung von Censys, der offene Ports, Zertifikatinformationen usw. enthält.
Das Berichtsformat ist `gyoithon_censys_report_target FQDN(or IP address)_Port number_Root Path.csv`.
Die Details jeder Spalte sind wie folgt.
|Spalte|Beschreibung|Beispiel|
|:----|:----|:----|
|fqdn|FQDN des Ziel-Webservers.|`www.gyoithon.example.com`|
|ip_addr|IP-Adresse des Ziel-Webservers.|`192.168.220.129`|
|category|Informationskategorie.|`Server Info` oder `Certification Info`|
|open_port|Offener Web-Port.|`443`|
|protocol|Protokoll des offenen Web-Ports.|`https`|
|sig_algorithm|Signaturalgorithmus des Zertifikats.|`SHA256-RSA`|
|cname|Common Name des Zertifikats.|`www.gyoithon.example.com`|
|valid_start|Gültigkeitsbeginn des Zertifikats.|`2018-08-15T00:00:00Z`|
|valid_end|Gültigkeitsende des Zertifikats.|`2019-09-16T12:00:00Z`|
|organization|Organisationsname des Zertifikats.|`GyoiThon coorporation, Inc.`|
|date|Untersuchungsdatum.|`2018/11/22 11:19:36`|
| Hinweis |
|:---------|
| Da Censys mehrere Tage bis mehrere Wochen benötigt, um das gesamte Internet zu durchsuchen, können die von Censys erhaltenen Informationen möglicherweise nicht aktuell sein.|
## <a name='Tips'>Tipps</a>
### 1. So fügen Sie manuell neue Signaturen hinzu (String-Matching-Muster).
Der Pfad `signatures` enthält die folgenden Dateien.```
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.txtDies sind Zeichenketten-Matching-Muster zur Identifizierung von Produkten im Standardmodus.
Wenn Sie ein neues Zeichenketten-Matching-Muster hinzufügen möchten, müssen Sie es im folgenden Format schreiben.```
Format: field1@field2@field3@field4@field5
|Typ|Feld#|Beschreibung|Beispiel|
|:---|:---|:---|:---|
|Erforderlich|1|Produktkategorie.|`CMS`|
|Erforderlich|2|Herstellername.|`drupal`|
|Erforderlich|3|Produktname.|`drupal`|
|Optional|4|Version, die mit dieser Signatur gebunden ist.|`8.0` |
|Erforderlich|5|Regex zur Identifizierung des Produkts.|`.*(X-Generator: Drupal 8).*`|
Wenn Sie das optionale Feld nicht benötigen, müssen Sie `*` in dieses Feld setzen.
* Beispiel```
CMS@wordpress@wordpress@*@.*(WordPress ([0-9]+[\.0-9]*[\.0-9]*)).*
CMS@drupal@[email protected]@.*(X-Generator: Drupal 8).*
| Hinweis |
|---|
| Wenn Sie die Produktversion extrahieren möchten, schreiben Sie zwei Regex-Gruppen (der zweite Regex wird für die Versionsextraktion verwendet). |
signature_default_content.txtDies sind Zeichenfolgen-Matching-Muster zur Identifizierung des Produkts im Modus zur Erkundung des Standardinhalts.
Wenn Sie ein neues Zeichenfolgen-Matching-Muster hinzufügen möchten, müssen Sie es im folgenden Format schreiben.```
Format: field1@field2@field3@field4@field5@field6@field7@field8
|Typ|Feld#|Beschreibung|Beispiel|
|:---|:---|:---|:---|
|Erforderlich|1|Produktkategorie.|`CMS`|
|Erforderlich|2|Herstellername.|`sixapart`|
|Erforderlich|3|Produktname.|`movabletype`|
|Optional|4|Mit dieser Signatur gebundene Version.|`*` |
|Erforderlich|5|Erkundungspfad|`/readme.html`|
|Optional|6|Regex zur Bestätigung des Produkts.|`.*(Movable Type).*`|
|Optional|7|Regex zur Identifizierung der Version.|`(v=([0-9]+[\.0-9]*[\.0-9]*))`|
|Erforderlich|8|Login-Seite oder nicht.|Login-Seite ist `1`, Keine Login-Seite ist `0`|
Wenn Sie kein optionales Feld benötigen, müssen Sie `*` für dieses Feld setzen.
* Beispiel```
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
| Hinweis |
|---|
| Wenn Sie die Produktversion extrahieren möchten, schreiben Sie zwei Regex-Gruppen (der zweite Regex wird für die Versionsextraktion verwendet). |
| Hinweis |
|---|
Wenn GyoiThon das Produkt nicht allein durch Explore path bestätigen kann, müssen Sie das Feld Regex of to confirm product angeben. GyoiThon greift auf die URL von Explore path zu und untersucht die HTTP-Antwort mit Regex of to confirm product. Wenn dieser Regex übereinstimmt, bewertet GyoiThon, dass das Produkt existiert. |
signature_search_query.txtDies ist die Google Custom Search-Abfrage zur Identifizierung des Produkts im Google Hacking-Modus.
Wenn Sie eine neue Abfrage hinzufügen möchten, müssen Sie sie im folgenden Format schreiben.```
Format: field1@field2@field3@field4@field5@field6@field7@field8
|Typ|Feld#|Beschreibung|Beispiel|
|:---|:---|:---|:---|
|Optional|1|Produktkategorie.|`CMS`|
|Optional|2|Herstellername.|`sixapart`|
|Optional|3|Produktname.|`movabletype`|
|Optional|4|An diese Signatur gebundene Version.|`*` |
|Erforderlich|5|Google Custom Search-Abfrage|`inurl:/readme.html`|
|Optional|6|Regex zur Produktbestätigung.|`.*(Movable Type).*`|
|Optional|7|Regex zur Identifizierung der Version.|`(v=([0-9]+[\.0-9]*[\.0-9]*))`|
|Optional|8|Login-Seite oder nicht.|Login-Seite ist `1`, Keine Login-Seite ist `0`|
Wenn Sie kein optionales Feld benötigen, müssen Sie in diesem Feld `*` setzen.
* Beispiel```
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 |
|---|
| Wenn Sie die Produktversion extrahieren möchten, schreiben Sie zwei Regex-Gruppen (der zweite Regex wird für die Versionsextraktion verwendet). |
| Note |
|---|
Wenn GyoiThon das Produkt nicht nur mit der Google Custom Search query bestätigen kann, müssen Sie das Feld Regex of to confirm product angeben. GyoiThon greift auf die URL zu, die im Ausführungsergebnis der Google Custom Search API enthalten ist, und untersucht die HTTP-Antwort mit Regex of to confirm product. Wenn dieser Regex übereinstimmt, beurteilt GyoiThon, dass das Produkt existiert. |
signature_comment.txtDies sind Zeichenfolgenabgleichsmuster zur Identifizierung überflüssiger Kommentare im Standardmodus.
Wenn Sie ein neues Zeichenfolgenabgleichsmuster hinzufügen möchten, müssen Sie es im folgenden Format schreiben.```
Format: field1
|Typ|Feld#|Beschreibung|
|:---|:---|:---|
|Erforderlich|1|Regex des unnötigen Kommentars.|
* Beispiel```
(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.txtDies sind Zeichenketten-Matching-Muster zur Identifizierung unnötiger Debug-Nachrichten im Standardmodus.
Wenn Sie ein neues Zeichenketten-Matching-Muster hinzufügen möchten, müssen Sie es im folgenden Format schreiben.```
Format: field1
|Typ|Feld #|Beschreibung|
|:---|:---|:---|
|Erforderlich|1|Regex der unnötigen Debug-Nachricht.|
* Beispiel```
(ORA-[0-9a-zA-Z\.])
(fail|error|notice|parse|warning|fatal)[^\n]*line[^\n]*[0-9]+
signature_page_type_from_url.txtDies sind Zeichenfolgen-Matching-Muster zur URL-basierten Identifizierung des Seitentyps im Standardmodus.
Wenn Sie ein neues Zeichenfolgen-Matching-Muster hinzufügen möchten, müssen Sie es im folgenden Format schreiben.```
Format: field1@field2
|Typ|Feld#|Beschreibung|
|:---|:---|:---|
|Erforderlich|1|Seitentyp.|
|Erforderlich|2|Regex zur Identifizierung des Seitentyps.|
* Beispiel```
Login@.*(login|log_in|logon|log_on|signin|sign_in).*
| Hinweis |
|---|
| Der obige Anbietername und Produktname müssen mit einem Namen im CPE-Format übereinstimmen. |
Der Pfad modules/train_data/ enthält zwei Trainingsdaten für maschinelles Lernen.```
root@kali:~/GyoiThon/modules/train_data/ ls
train_cms_in.txt
train_page_type.txt
#### `train_cms_in.txt`
Dies sind Trainingsdaten für die Analyse mit maschinellem Lernen im <a name='machine_learning_mode'>Machine Learning-Modus</a>.
Wenn Sie neue Trainingsdaten hinzufügen möchten, müssen Sie diese im folgenden Format schreiben.```
Format: field1@field2@field3@field4
Falls kein optionales Feld benötigt wird, muss * in dieses Feld gesetzt werden.
|Note|
|:---|
|Der obige Herstellername und Produktname müssen mit einem Namen im [CPE-Format](https://en.wikipedia.org/wiki/Common_Platform_Enumeration) übereinstimmen.|
#### `train_page_type.txt`
Dies sind Trainingsdaten zur Identifizierung des Seitentyps mittels maschinellem Lernen im <a name='default_mode'>Standardmodus</a>.
Wenn Sie neue Trainingsdaten hinzufügen möchten, müssen Sie diese in folgendem Format schreiben.```
Format: field1@field2
| Typ | Feld# | Beschreibung |
|---|---|---|
| Erforderlich | 1 | Kategorie. |
| Erforderlich | 2 | Feature der Seite, ausgedrückt durch Regex. |
### 3. So ändern Sie die "Option des Exploit-Moduls".
Wenn GyoiThon Exploits ausführt, verwendet es die **Standardwerte** der Exploit-Moduloptionen.
Wenn Sie die Optionswerte ändern möchten, geben Sie bitte einen beliebigen Wert in `"user_specify"` in `exploit_tree.json` wie folgt ein.```
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/"
},
Das obige Beispiel dient dazu, den Wert der Option TARGETURI im Exploit-Modul "exploit/unix/webapp/joomla_media_upload_exec" von "/joomla" auf "/my_original_dir/" zu ändern.
GyoiThon kann über einen Proxy-Server auf den Zielserver zugreifen.
Wenn Sie einen Proxy-Server verwenden möchten, geben Sie bitte die Proxy-Server-Informationen in config.ini ein.
| Hinweis |
|---|
| Derzeit ist in GyoiThon nur die Basic-Authentifizierung implementiert. |
| Index | Domain | Subdomain | IP-Adresse | Zugriffsstatus (http) | Ort (http) | Zugriffsstatus (https) | Ort (https) | Whois-Einträge |
|---|
| 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 | - | - |
| Kategorie | Parameter | Beschreibung |
|---|
| Spider | depth_limit | Maximale Crawling-Tiefe. Standardwert ist 2 Ebenen. |
| delay_time | Verzögerungszeit des Crawlings. Standardwert ist 3 (Sek.). | |
| time_out | Spider-Schließoption. Timeout des Crawlings. Standardwert ist 600 (Sek.). | |
| item_count | Spider-Schließoption. Maximale Elemente. Standardwert ist 300. | |
| page_count | Spider-Schließoption. Maximale Elemente pro Seite. Standardwert ist 0 (kein Limit). | |
| error_count | Spider-Schließoption. Maximale Fehler. Standardwert ist 0 (kein Limit). |
| Kategorie | Parameter | Beschreibung |
|---|
| Common | max_target_url | Maximale Anzahl zu untersuchender URLs. Wenn die durch Web-Crawling gesammelte Anzahl an URLs diesen Parameterwert überschreitet, werden die überschüssigen URLs verworfen. Standardwert ist 100. 0 bedeutet unbegrenzt. |
| max_target_byte | Maximale Größe der Untersuchungsantwort. Wenn die Antwortgröße diesen Parameterwert überschreitet, wird die überschüssige Größe verworfen. Standardwert ist 10000 Byte. 0 bedeutet unbegrenzt. | |
| scramble | Die durch Web-Crawling gesammelte URL-Liste wird zufällig geordnet. Standardwert ist 1 (gültig). 0 ist ungültig. |
| Kategorie | Parameter | Beschreibung |
|---|
| Exploit | server_host | Dem RPC-Server (msgrpc) zugewiesene IP-Adresse. |
| server_port | Dem RPC-Server (msgrpc) zugewiesene Portnummer. | |
| msgrpc_user | Benutzer-ID zur Autorisierung von msgrpc. | |
| msgrpc_pass | Passwort zur Autorisierung von msgrpc. | |
| LHOST | Dem RPC-Server (msgrpc) zugewiesene IP-Adresse. |
| Option | Description | Example |
|---|
| --category | Produktkategorie in den Signaturen/Trainingsdaten. | OS or WEB or FRAMEWORK or CMS. |
| --vendor | Produkt-Herstellername in den Signaturen/Trainingsdaten. | wordpress, joomla!, drupal. |
| --package | Name der zu importierenden Paketdatei. Sie müssen drei Felder (Produktname, Version und Erweiterung) mit @ trennen. | [email protected]@.tar.gz, [email protected]@_origin.tar.zip, [email protected]@.tar.gz. |
| Typ | Feld# | Beschreibung | Beispiel |
|---|
| Erforderlich | 1 | Name des Anbieters. | joomla |
| Erforderlich | 2 | Produktname. | joomla\! |
| Optional | 3 | Mit diesen Trainingsdaten verknüpfte Version. | * |
| Erforderlich | 4 | Funktion des Produkts, ausgedrückt als regulärer Ausdruck. | (Set-Cookie: [a-z0-9]{32}=.*); |
| Kategorie | Parameter | Beschreibung |
|---|
| Allgemein | proxy | Proxy-Server-Informationen. Format ist scheme://hostname:port (z.B. http://proxy-example:8083). |
| proxy_user | Wenn Sie die Proxy-Authentifizierung benötigen, geben Sie den Auth-Benutzer ein. | |
| proxy_pass | Wenn Sie die Proxy-Authentifizierung benötigen, geben Sie das Auth-Passwort ein. |