
GyoiThon es una herramienta de prueba de penetración en crecimiento que utiliza Machine Learning.

La página en japonés está aquí.
El nuevo GyoiThon (versión 0.0.4) puede listar sus subdominios expuestos en Internet. Y si el subdominio se publica como un servicio web, GyoiThon ejecuta una verificación de estado que es una evaluación de vulnerabilidad no destructiva.
| Nota |
|---|
| La nueva función utiliza una API de búsqueda personalizada de Google. Por lo tanto, si usa la nueva función, debe preparar una clave API de Búsqueda personalizada de Google. |
domain_list.csv de la siguiente manera: ```
"Domain Name"
mbsd.jpY ejecutas el siguiente comando. ```
root@kali:~/GyoiThon# python3 gyoithon.py -i --domain_list
Como resultado, obtienes una lista de subdominios asociados al dominio especificado.
Como resultado, obtendrá una lista de subdominios y un informe de evaluación.
|Índice|Dominio|Subdominio|Dirección IP|Estado de acceso (http)|Ubicación (http)|Estado de acceso (https)|Ubicación (https)|Registros Whois|Resultados de evaluación|
|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
|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|-|-|***|
## Descripción general
GyoiThon es una **herramienta de recopilación de inteligencia** para servidores web.
GyoiThon ejecuta **acceso remoto** al servidor web objetivo e **identifica el producto que opera en el servidor**, como CMS, software de servidor web, framework, lenguaje de programación, etc. Además, puede **ejecutar módulos de explotación** contra los productos identificados utilizando Metasploit. GyoiThon **ejecuta de forma totalmente automática** las acciones anteriores.
Las principales características de GyoiThon son las siguientes.
* Acceso remoto / total automatización
GyoiThon puede **recopilar de forma totalmente automática** la información del servidor web objetivo utilizando solo **acceso remoto**. Solo necesita ejecutar GyoiThon una vez para su operación.
* Prueba no destructiva
GyoiThon puede recopilar información del servidor web objetivo utilizando **solo acceso normal**.
Pero, cuando utiliza una parte de las opciones, GyoiThon ejecuta acceso anómalo, como el envío de módulos de explotación.
* Recopilación de diversas informaciones
GyoiThon dispone de varios motores de recopilación de inteligencia, como rastreador web, API de búsqueda personalizada de Google, Censys, explorador de contenido predeterminado, examen de servicios en la nube, etc. Al analizar la información recopilada mediante **coincidencia de patrones de cadenas** y **aprendizaje automático**, GyoiThon puede identificar **producto/versión/número de CVE** que operan en el servidor web objetivo, **comentarios HTML innecesarios**/**mensajes de depuración**, **página de inicio de sesión**, etc.
* Examen de vulnerabilidades reales
GyoiThon puede ejecutar módulos de explotación contra los productos identificados utilizando Metasploit.
Como resultado, puede **examinar vulnerabilidades reales del servidor web objetivo**.

| Nota |
|:-----|
| Si está interesado, **por favor, úselos en un entorno bajo su control y bajo su propio riesgo**. |
## <a name='Installation'>Instalación</a>
1. Clone el repositorio de GyoiThon con git.```
root@kali:~# git clone https://github.com/gyoisamurai/GyoiThon.git
3. instale los paquetes de Python requeridos.```
root@kali:~# cd GyoiThon
root@kali:~/GyoiThon# pip3 install -r requirements.txt
root@kali:~/GyoiThon# apt install python3-tk
config.ini.Usando el modo por defecto sin opciones y combinación de varias opciones, GyoiThon puede recopilar diversa información del servidor web objetivo.``` 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.
### Preparación.
1. Edita el archivo objetivo `host.txt`.
Debes escribir el servidor web objetivo en el `host.txt`.
El formato de escritura es `protocol FQDN(or IP address) Port Crawling_root_path`.
* Ejemplo.```
https gyoithon.example.com 443 /
Si quieres indicar información de múltiples objetivos, debes escribir abajo.``` https gyoithon.example.com 443 / http 192.168.220.129 80 /vicnum/ https www.example.com 443 /catalog/
| Nota |
|:-----|
| Inserta `/` al principio y al final de la Ruta Raíz. |
2. Edita el archivo de configuración `config.ini`.
Los parámetros que el usuario debe cambiar están definidos en el archivo de configuración `config.ini`.
Si deseas cambiar los parámetros, edita `config.ini`.
Los detalles de `config.ini` están [aquí](https://github.com/gyoisamurai/GyoiThon/wiki/Configure).
### Ejecución de GyoiThon.
#### <a name='default_mode'>1. Modo por defecto.</a>```
root@kali:~/GyoiThon# python3 gyoithon.py
El modo predeterminado recopila la siguiente información mínima.
Scrapy, la biblioteca de Python.config.ini, puede modificar la configuración de Scrapy.config.ini, puede ajustar la velocidad de examen.| Nota |
|---|
| La velocidad y la precisión del examen son un equilibrio. |
root@kali:~/GyoiThon# python3 gyoithon.py -s
Al agregar la opción `-s`, GyoiThon identifica si el servidor web objetivo utiliza un servicio en la nube o no, además del modo predeterminado.
Antes de la ejecución, debes cambiar el siguiente parámetro de `config.ini`.
|Categoría|Parámetro|Descripción|
|:----|:----|:----|
|CloudChecker|azure_ip_range|URL de origen de los rangos de IP del Centro de Datos de Azure. |
Este parámetro es la URL de origen del rango de IP del Centro de Datos de Azure. Esta URL cambia varias veces al día. Por lo tanto, debes obtener la URL más reciente desde el enlace "haga clic aquí para descargar manualmente" de la página "[Microsoft Azure Datacenter IP Ranges](https://www.microsoft.com/en-us/download/confirmation.aspx?id=41653)" y configurarla en el parámetro anterior antes de ejecutar GyoiThon.
#### 3. Modo de análisis de Machine Learning.```
root@kali:~/GyoiThon# python3 gyoithon.py -m
Al agregar la opción -m, GyoiThon identifica productos/versiones usando Machine Learning (Naive Bayes) además del modo predeterminado.
root@kali:~/GyoiThon# python3 gyoithon.py -g
Al agregar la opción `-g`, GyoiThon identifica productos/versiones utilizando la API de Google Custom Search además del modo predeterminado. Antes de la ejecución, debe configurar la [clave de API](https://console.cloud.google.com/apis/dashboard) y el [ID del motor de búsqueda](https://support.google.com/customsearch/answer/2649143?hl=ja) en los siguientes parámetros.
|Categoría|Parámetro|Descripción|
|:----|:----|:----|
|GoogleHack|api_key|Clave de API de Google Custom Search API. |
||search_engine_id|ID del motor de búsqueda de Google. |
| Nota |
|:-----|
| Puede usar la API de Google Custom Search gratuita de 100 consultas por día. Pero, si desea usar más de 100 consultas, debe pagar la tarifa del servicio de la API de Google Custom Search. |
#### 5. Exploración del modo de contenidos predeterminado.```
root@kali:~/GyoiThon# python3 gyoithon.py -e
Al agregar la opción -e, GyoiThon explora los contenidos predeterminados de productos como CMS, software de servidor web, además del modo predeterminado.
Al cambiar los parámetros en config.ini, puede cambiar la configuración de la exploración.
| Categoría | Parámetro | Descripción |
|---|---|---|
| ContentExplorer | delay_time | Tiempo de retardo de la exploración. El valor predeterminado es 1 (seg). |
| Nota |
|---|
| Cuando use esta opción, puede verse afectado por una carga pesada del servidor debido a que GyoiThon ejecuta numerosos accesos (cientos de accesos) contra el servidor web objetivo. Además, debido a que numerosos registros de error 404 se escriben en el registro de acceso, puede ser detectado por el SOC (Centro de Operaciones de Seguridad). Por lo tanto, si usa esta opción, notifique a la persona correspondiente, como el SOC, administrador, y utilícela en un entorno bajo su control y bajo su propio riesgo y. |
root@kali:~/GyoiThon# python3 gyoithon.py -c
Al agregar la opción `-c`, GyoiThon examina el número de puerto abierto y la certificación del servidor usando [Censys](https://censys.io/).
Antes de la ejecución, debes configurar la clave API y la clave secreta en los siguientes parámetros.
|Categoría|Parámetro|Descripción|
|:----|:----|:----|
|Censys|api_id|Clave API de Censys. |
||secret|Clave secreta de Censys. |
#### 7. Modo de cooperación con Metasploit.```
root@kali:~/GyoiThon# python3 gyoithon.py -p
Al agregar la opción -p, GyoiThon examina vulnerabilidades reales como DoS y backdoor usando Metasploit además del modo predeterminado.
Antes de la ejecución, debes iniciar el servidor RPC de Metasploit y configurar los siguientes parámetros en config.ini.
| Note |
|---|
| Cuando uses esta opción, el funcionamiento del servidor puede verse gravemente afectado porque GyoiThon ejecuta el exploit contra el servidor web objetivo. Además, esta opción puede ser detectada por el SOC (Centro de Operaciones de Seguridad) porque los exploits se asemejan a ataques reales. Por lo tanto, si utilizas esta opción, notifica a las personas pertinentes, como el SOC y los administradores, y úsala en un entorno bajo tu control y bajo tu propia responsabilidad. |
root@kali:~/GyoiThon# python3 gyoithon.py -l --log_path="Full path of stored logs"
Al agregar la opción `-l`, GyoiThon ejecuta varios exámenes utilizando respuestas HTTP almacenadas sin rastreo web.
Este modo asume la aplicación web para la cual GyoiThon no puede ejecutar rastreo web.
GyoiThon puede ejecutar varios exámenes similares al rastreo web del modo predeterminado utilizando respuestas HTTP almacenadas recopiladas por la herramienta proxy local.
| Nota |
|:-----|
| La extensión del archivo de registro es `.log`. |
#### <a name='complex_mode'>9. Combinación de múltiples opciones</a>.
##### Combinación del "Modo de examen de servicios en la nube" y el "Modo de análisis de aprendizaje automático".```
root@kali:~/GyoiThon# python3 gyoithon.py -s -m
root@kali:~/GyoiThon# python3 gyoithon.py -s -g
##### Combinación de "Examen del modo de servicios en la nube", "Modo de análisis de aprendizaje automático" y "Modo de 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. Modo de generación de datos de firma/entrenamiento</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.
Después de finalizar la ejecución de GyoiThon, se generan informes de cada objetivo en la siguiente ruta.``` 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 genera los siguientes dos tipos de informes.
* `gyoithon_report_target FQDN(or IP address)_Port number_Root Path.csv`.
Este es el informe principal que incluye principalmente nombre de producto, versión, cve, etc.
El formato del informe es `gyoithon_report_target FQDN(or IP address)_Port number_Root Path.csv`.
El detalle de cada columna es el siguiente.
|Columna|Descripción|Ejemplo|
|:----|:----|:----|
|fqdn|FQDN del servidor web objetivo.|`www.gyoithon.example.com`|
|ip_addr|Dirección IP del servidor web objetivo.|`192.168.220.129`|
|port|Número de puerto del servidor web objetivo.|`80`|
|cloud_type|Nombre del servicio en la nube (Azure, AWS, GCP o Desconocido).|`AWS`|
|method|Método de examen de GyoiThon.|`Crawling`|
|url|URL accedida.|`http://192.168.220.129:80/WackoPicko/admin/index.php?page=login`|
|vendor_name|Nombre del fabricante de los productos identificados.|`apache`|
|prod_name|Productos identificados.|`http_server`|
|prod_version|Versión de los productos identificados.|`2.2.14`|
|prod_trigger|Disparador de los productos identificados.|`Apache/2.2.14`|
|prod_type|Categoría del producto (Web, CMS, Framework, etc.).|`Web`|
|prod_vuln|Número CVE según los productos identificados (desc. puntuación CVSS).|`CVE-2017-3167, CVE-2017-3169, CVE-2017-7668` ...|
|origin_login|La página de inicio de sesión existe o no (Log: análisis mediante Machine Learning, Url: análisis mediante coincidencia de patrones de cadena en la URL).|`Log : 37.5 %\nUrl : 100.0 %`|
|origin_login_trigger|Disparador de la página de inicio de sesión identificada.|`Log : name",<input type="password"\nUrl : login`|
|wrong_comment|Comentarios innecesarios identificados.|`パスワードは「password1234」です。`|
|error_msg|Mensajes de depuración innecesarios identificados.|`Warning: mysql_connect() ..snip.. in auth.php on line 38`|
|server_header|Cabecera del servidor de la respuesta HTTP.|`Server: Apache/2.2.14 (Ubuntu) mod_mono/2.4.3 PHP/5.3.2`|
|log|Ruta de los datos brutos.|`/usr/home/~snip~/http_192.168.220.129_80_20181112170525765.log`|
|date|Fecha del examen.|`2018/11/12 17:05:25`|
* `gyoithon_censys_report_target FQDN(or IP address)_Port number_Root Path.csv`.
Este es el informe de resultados de búsqueda usando Censys que incluye puertos abiertos, información de certificación, etc.
El formato del informe es `gyoithon_censys_report_target FQDN(or IP address)_Port number_Root Path.csv`.
El detalle de cada columna es el siguiente.
|Columna|Descripción|Ejemplo|
|:----|:----|:----|
|fqdn|FQDN del servidor web objetivo.|`www.gyoithon.example.com`|
|ip_addr|Dirección IP del servidor web objetivo.|`192.168.220.129`|
|category|Categoría de la información.|`Server Info` o `Certification Info`|
|open_port|Puerto web abierto.|`443`|
|protocol|Protocolo del puerto web abierto.|`https`|
|sig_algorithm|Algoritmo de firma de la certificación.|`SHA256-RSA`|
|cname|Nombre común de la certificación.|`www.gyoithon.example.com`|
|valid_start|Fecha de inicio de validez de la certificación.|`2018-08-15T00:00:00Z`|
|valid_end|Fecha de fin de validez de la certificación.|`2019-09-16T12:00:00Z`|
|organization|Nombre de la organización de la certificación.|`GyoiThon coorporation, Inc.`|
|date|Fecha del examen.|`2018/11/22 11:19:36`|
| Nota |
|:-----|
| Debido a que Censys necesita varios días a varias semanas para examinar todo Internet, la información obtenida de Censys puede no estar actualizada.|
## <a name='Tips'>Consejos</a>
### 1. Cómo agregar manualmente una nueva firma (patrones de coincidencia de cadenas).
La ruta `signatures` incluye los siguientes archivos.```
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.txtEstos son patrones de coincidencia de cadenas para la identificación del producto en default mode.
Si deseas agregar un nuevo patrón de coincidencia de cadenas, debes escribirlo en el siguiente formato.``` Format: field1@field2@field3@field4@field5
|Tipo|Campo#|Descripción|Ejemplo|
|:---|:---|:---|:---|
|Requerido|1|Categoría de producto.|`CMS`|
|Requerido|2|Nombre del proveedor.|`drupal`|
|Requerido|3|Nombre del producto.|`drupal`|
|Opcional|4|Versión vinculada con esta firma.|`8.0` |
|Requerido|5|Regex de identificación del producto.|`.*(X-Generator: Drupal 8).*`|
Si no necesitas el campo opcional, debes establecer `*` en este campo.
* Ejemplo```
CMS@wordpress@wordpress@*@.*(WordPress ([0-9]+[\.0-9]*[\.0-9]*)).*
CMS@drupal@[email protected]@.*(X-Generator: Drupal 8).*
| Nota |
|---|
| Si deseas extraer la versión del producto, debes escribir dos grupos de regex (el segundo regex se utiliza para la extracción de la versión). |
signature_default_content.txtEstos son patrones de coincidencia de cadenas para la identificación del producto en Exploración del modo de contenido predeterminado.
Si deseas agregar un nuevo patrón de coincidencia de cadenas, debes escribirlo en el siguiente formato.```
Format: field1@field2@field3@field4@field5@field6@field7@field8
|Type|Field#|Description|Example|
|:---|:---|:---|:---|
|Required|1|Categoría del producto.|`CMS`|
|Required|2|Nombre del proveedor.|`sixapart`|
|Required|3|Nombre del producto.|`movabletype`|
|Optional|4|Versión vinculada con esta firma.|`*` |
|Required|5|Ruta de exploración|`/readme.html`|
|Optional|6|Expresión regular para confirmar el producto.|`.*(Movable Type).*`|
|Optional|7|Expresión regular para identificar la versión.|`(v=([0-9]+[\.0-9]*[\.0-9]*))`|
|Required|8|Página de inicio de sesión o no.|La página de inicio de sesión es `1`, la página que no es de inicio de sesión es `0`|
Si no necesita un campo opcional, debe establecer `*` en este campo.
* Ejemplo```
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
| Nota |
|---|
| Si quieres extraer la versión del producto, escribe dos grupos de expresiones regulares (la segunda expresión regular se usa para la extracción de la versión). |
| Nota |
|---|
Si GyoiThon no puede confirmar el producto solo con Explore path, debes indicar el campo Regex of to confirm product. GyoiThon accede a la URL de Explore path y examina la respuesta HTTP utilizando Regex of to confirm product. Si esta expresión regular coincide, GyoiThon determina que el producto existe. |
signature_search_query.txtEste es el archivo de consulta de Google Custom Search para la identificación del producto en Modo Google Hacking.
Si quieres agregar una nueva consulta, debes escribirla en el siguiente formato.```
Format: field1@field2@field3@field4@field5@field6@field7@field8
|Tipo|Campo#|Descripción|Ejemplo|
|:---|:---|:---|:---|
|Opcional|1|Categoría del producto.|`CMS`|
|Opcional|2|Nombre del proveedor.|`sixapart`|
|Opcional|3|Nombre del producto.|`movabletype`|
|Opcional|4|Versión vinculada a esta firma.|`*` |
|Requerido|5|Consulta de búsqueda personalizada de Google|`inurl:/readme.html`|
|Opcional|6|Expresión regular para confirmar el producto.|`.*(Movable Type).*`|
|Opcional|7|Expresión regular para identificar la versión.|`(v=([0-9]+[\.0-9]*[\.0-9]*))`|
|Opcional|8|Página de inicio de sesión o no.|La página de inicio de sesión es `1`, no es página de inicio de sesión es `0`|
Si no necesitas un campo opcional, debes establecer `*` en ese campo.
* Ejemplo```
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 deseas extraer la versión del producto, debes escribir dos grupos de expresiones regulares (la segunda expresión regular se usa para la extracción de la versión). |
| Note |
|---|
Si GyoiThon no puede confirmar el producto solo con la consulta de búsqueda personalizada de Google, debes indicar el campo Expresión regular para confirmar el producto. GyoiThon accede a la URL incluida en el resultado de ejecución de la API de Búsqueda Personalizada de Google y examina la respuesta HTTP utilizando la Expresión regular para confirmar el producto. Si esta expresión regular coincide, GyoiThon determina que el producto existe. |
signature_comment.txtEstos son patrones de coincidencia de cadenas para la identificación de comentarios innecesarios en modo predeterminado.
Si deseas agregar un nuevo patrón de coincidencia de cadenas, debes escribirlo en el siguiente formato.```
Format: field1
|Tipo|Field#|Descripción|
|:---|:---|:---|
|Obligatorio|1|Expresión regular de comentario innecesario.|
* Ejemplo```
(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.txtEsto son patrones de coincidencia de cadenas para la identificación de mensajes de depuración innecesarios en el modo predeterminado.
Si desea agregar un nuevo patrón de coincidencia de cadenas, debe escribirlo en el siguiente formato.```
Format: field1
|Type|Field#|Description|
|:---|:---|:---|
|Requerido|1|Expresión regular de mensaje de depuración innecesario.|
* Ejemplo```
(ORA-[0-9a-zA-Z\.])
(fail|error|notice|parse|warning|fatal)[^\n]*line[^\n]*[0-9]+
signature_page_type_from_url.txtEsto son patrones de coincidencia de cadenas para la identificación del tipo de página basada en URL en modo predeterminado.
Si deseas agregar un nuevo patrón de coincidencia de cadenas, debes escribirlo en el siguiente formato.```
Format: field1@field2
|Tipo|Campo#|Descripción|
|:---|:---|:---|
|Requerido|1|Tipo de página.|
|Requerido|2|Regex de identificación del tipo de página.|
* Ejemplo```
Login@.*(login|log_in|logon|log_on|signin|sign_in).*
| Nota |
|---|
| El nombre del proveedor y el nombre del producto anteriores deben coincidir con un nombre en formato CPE. |
La ruta modules/train_data/ incluye dos datos de entrenamiento para Machine Learning.```
root@kali:~/GyoiThon/modules/train_data/ ls
train_cms_in.txt
train_page_type.txt
#### `train_cms_in.txt`
Estos son datos de entrenamiento para análisis de Machine Learning en <a name='machine_learning_mode'>Modo Machine Learning</a>.
Si deseas agregar nuevos datos de entrenamiento, debes escribirlos en el siguiente formato.```
Format: field1@field2@field3@field4
Si no necesita un campo opcional, debe establecer * en dicho campo.
|Nota|
|:---|
|El nombre del proveedor y el nombre del producto anteriores deben coincidir con un nombre en [CPE format](https://en.wikipedia.org/wiki/Common_Platform_Enumeration).|
#### `train_page_type.txt`
Estos son datos de entrenamiento para identificar el tipo de página usando Machine Learning en <a name='default_mode'>modo predeterminado</a>.
Si deseas agregar nuevos datos de entrenamiento, debes escribirlos en el siguiente formato.```
Format: field1@field2
| Tipo | Campo# | Descripción |
|---|---|---|
| Requerido | 1 | Categoría. |
| Requerido | 2 | Característica de la página expresada por regex. |
### 3. Cómo cambiar "la opción del módulo Exploit".
Cuando GyoiThon explota, utiliza **valores predeterminados** de las opciones del módulo Exploit.
Si desea cambiar los valores de las opciones, ingrese cualquier valor en `"user_specify"` en `exploit_tree.json` de la siguiente manera.```
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/"
},
El ejemplo anterior es para cambiar el valor de la opción TARGETURI en el módulo de exploit exploit/unix/webapp/joomla_media_upload_exec de /joomla a /my_original_dir/.
GyoiThon puede acceder al servidor objetivo a través de un servidor proxy.
Si desea usar un servidor proxy, introduzca la información del servidor proxy en config.ini.
| Nota |
|---|
| Actualmente, GyoiThon solo implementa Autenticación Básica. |
| Índice | Dominio | Subdominio | Dirección IP | Estado de acceso (http) | Ubicación (http) | Estado de acceso (https) | Ubicación (https) | Registros 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 | - | - |
| Categoría | Parámetro | Descripción |
|---|
| Spider | depth_limit | Profundidad máxima de rastreo. El valor predeterminado es 2 capas. |
| delay_time | Tiempo de retraso de rastreo. Valor predeterminado 3 (seg). | |
| time_out | Opción de cierre de Spider. Tiempo de espera de rastreo. Valor predeterminado 600 (seg). | |
| item_count | Opción de cierre de Spider. Elementos máximos. Valor predeterminado 300. | |
| page_count | Opción de cierre de Spider. Elementos máximos por página. Valor predeterminado 0 (sin límite). | |
| error_count | Opción de cierre de Spider. Errores máximos. Valor predeterminado 0 (sin límite). |
| Categoría | Parámetro | Descripción |
|---|
| Común | max_target_url | Número máximo de URL de examen. Si el número de URL recopiladas mediante rastreo web supera este valor de parámetro, el exceso se descarta. Valor predeterminado 100. 0 es ilimitado. |
| max_target_byte | Tamaño máximo de respuesta de examen. Si el tamaño de respuesta supera este valor de parámetro, el exceso se descarta. Valor predeterminado 10000 bytes. 0 es ilimitado. | |
| scramble | La lista de URL recopilada mediante rastreo web se ordena aleatoriamente. Valor predeterminado 1 (válido). 0 es inválido. |
| Category | Parameter | Description |
|---|
| Exploit | server_host | Dirección IP asignada al servidor RPC (msgrpc). |
| server_port | Número de puerto asignado al servidor RPC (msgrpc). | |
| msgrpc_user | ID de usuario para la autorización de msgrpc. | |
| msgrpc_pass | Contraseña para la autorización de msgrpc. | |
| LHOST | Dirección IP asignada al servidor RPC (msgrpc). |
| Option | Description | Example |
|---|
| --category | Categoría del producto en los datos de firma/entrenamiento. | OS or WEB or FRAMEWORK or CMS. |
| --vendor | Nombre del proveedor del producto en los datos de firma/entrenamiento. | wordpress, joomla!, drupal. |
| --package | Nombre del archivo de paquete a importar. Debes separar tres campos: nombre del producto, versión y extensión usando @. | [email protected]@.tar.gz, [email protected]@_origin.tar.zip, [email protected]@.tar.gz. |
| Tipo | Campo# | Descripción | Ejemplo |
|---|
| Requerido | 1 | Nombre del proveedor. | joomla |
| Requerido | 2 | Nombre del producto. | joomla\! |
| Opcional | 3 | Versión asociada a estos datos de entrenamiento. | * |
| Requerido | 4 | Característica del producto expresada mediante regex. | (Set-Cookie: [a-z0-9]{32}=.*); |
| Categoría | Parámetro | Descripción |
|---|
| Común | proxy | Información del servidor proxy. El formato es scheme://hostname:port (ej: http://proxy-ejemplo:8083). |
| proxy_user | Si necesita autenticación proxy, introduzca el usuario de autenticación. | |
| proxy_pass | Si necesita autenticación proxy, introduzca la contraseña de autenticación. |