GyoiThon
GyoiThon 是一款基于机器学习的智能渗透测试工具,专注于自动化发现 Web 服务器暴露的子域名并评估其安全性。它通过远程访问目标服务器,快速识别服务器运行的产品类型(如操作系统、Web 服务、数据库等),并主动扫描开放端口、检测潜在漏洞,尤其擅长处理大规模资产的安全审计任务。
针对传统渗透测试中手动扫描效率低、子域名管理复杂等问题,GyoiThon 提供了自动化解决方案。通过集成 Google 自定义搜索 API,它能高效抓取互联网上与目标域名关联的子域名列表,并对每个子域名执行非破坏性的健康检查,包括 HTTP/HTTPS 状态检测、IP 地址解析、Whois 信息收集及基础漏洞评估。这种自动化流程显著减少了人工排查时间,同时降低了误操作风险。
工具主要面向网络安全研究人员、渗透测试工程师及 DevOps 团队。其机器学习能力可逐步优化资产识别模型,而模块化设计允许开发者扩展检测规则。对于需要定期进行安全合规检查的企业,GyoiThon 能提供结构化报告,帮助快速定位高风险资产。由于依赖 Python 3 环境且提供详细文档,具备基础编程能力的用户即可上手使用。
使用场景
某网络安全团队在为一家电商公司进行渗透测试时,需要快速识别目标域名下的所有子域名并评估其安全性。由于目标域名包含大量隐藏子域名,传统工具扫描效率低下且漏检率高。
没有 GyoiThon 时
- 手动枚举耗时:需逐个猜测子域名,平均每个域名需2小时完成基础扫描
- 漏洞检测盲区:无法自动识别Web服务类型,导致常见CMS漏洞(如WordPress插件漏洞)无法快速定位
- 结果碎片化:IP地址、访问状态、地理位置等信息分散在多个工具报告中,需人工整合
- 误报率高:传统工具误判率达40%,需投入大量时间验证真实漏洞
使用 GyoiThon 后
- 自动化枚举提速:通过Google自定义搜索API 15分钟内完成200+子域名发现
- 智能产品识别:自动识别出3个运行Shopify的子域名,精准定位电商系统漏洞
- 结构化输出:单次扫描生成包含IP地址、HTTP/HTTPS状态码、地理位置的完整表格
- 零误报评估:基于机器学习的健康检查准确识别出2个未修复的SSL/TLS漏洞
通过将Google搜索能力与机器学习结合,GyoiThon实现了子域名发现与漏洞评估的自动化闭环,使渗透测试效率提升8倍且误报率降至5%以下。
运行环境要求
- Linux
未说明
未说明

快速开始
GyoiThon: 下一代渗透测试工具
日文页面请见此处.
演示记录
- 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
文档
Slack
新功能!!
新版 GyoiThon(版本 0.0.4)可以列出您对外暴露的子域名。如果子域名作为 Web 服务发布,则 GyoiThon 会执行非破坏性的漏洞评估健康检查。
| 注意 |
|---|
| 新功能使用 Google 定制搜索 API(Google Custom Search API)。因此,如果您要使用新功能,则需要准备 Google 定制搜索的 API 密钥。 |
- 示例) 列出您的子域名。
首先,您需要准备如下格式的domain_list.csv:
"Domain Name"
mbsd.jp
然后执行以下命令:
root@kali:~/GyoiThon# python3 gyoithon.py -i --domain_list
结果将获得与指定域名关联的子域名列表。
| 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 | - | - |
- 示例) 列出子域名并执行健康检查。
GyoiThon 会列出您的子域名,并且如果子域名作为 Web 服务发布(端口 80 或 443 开放),则 GyoiThon 会执行非破坏性的漏洞评估健康检查。
root@kali:~/GyoiThon# python3 gyoithon.py -i --domain_list --through_health_check --safety
结果将获得子域名列表和评估报告。
| 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 | - | - | *** |
概述
GyoiThon 是一个 Web 服务器情报收集工具(Intelligence Gathering tool)。
GyoiThon 会执行 远程访问(remote access)目标 Web 服务器,并 识别服务器上运行的产品,如 CMS、Web 服务器软件、框架、编程语言等。此外,它可以通过 Metasploit 对识别出的产品 执行利用模块(exploit modules)。GyoiThon 可以 全自动执行上述操作。
GyoiThon 的主要功能如下:
远程访问/全自动
GyoiThon 可以仅通过 远程访问 就 全自动 收集目标 Web 服务器的信息。您只需运行一次 GyoiThon 即可完成操作。非破坏性测试
GyoiThon 通过 正常访问 收集目标 Web 服务器的信息。
但,当您使用某些选项时,GyoiThon 会执行异常访问,例如发送利用模块。收集多种信息
GyoiThon 包含多种情报收集引擎,如网络爬虫、Google 定制搜索 API、默认内容探索器、云服务检查等。通过使用 字符串模式匹配 和 机器学习 分析收集到的信息,GyoiThon 可以识别目标 Web 服务器上运行的 产品/版本/CVE 编号、不必要的 HTML 注释/调试信息、登录页面 等。实际漏洞检查
GyoiThon 可以通过 Metasploit 对识别出的产品执行利用模块。
因此,它可以 检查目标 Web 服务器的实际漏洞。

| 注意 |
|---|
| 如果您感兴趣,请 在您控制的环境中自行承担风险使用。 |
安装
- 克隆 GyoiThon 的仓库。
root@kali:~# git clone https://github.com/gyoisamurai/GyoiThon.git
- 安装 python3-pip。
root@kali:~# apt-get update
root@kali:~# apt-get install python3-pip
- 安装所需的 Python 包。
root@kali:~# cd GyoiThon
root@kali:~/GyoiThon# pip3 install -r requirements.txt
root@kali:~/GyoiThon# apt install python3-tk
- 编辑 GyoiThon 的 config.ini。
您需要编辑自己的config.ini文件。
更多信息请参见使用方法。
用法
通过使用默认模式(无需选项)和多种选项组合,GyoiThon可以收集目标Web服务器的各种信息。
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 可选 : 检查云服务。
-m 可选 : 通过机器学习(Machine Learning)分析HTTP响应以识别产品/版本。
-g 可选 : 使用Google自定义搜索识别产品/版本。
-e 可选 : 探索产品的默认路径。
-c 可选 : 使用Censys发现开放端口和SSL证书错误。
-p 可选 : 使用Metasploit执行利用模块。
-l 可选 : 基于HTTP响应日志分析识别产品/版本。
-d 可选 : 签名和训练数据的开发。
-i 可选 : 探索与目标FQDN相关的其他FQDN。
-h --help 显示此帮助信息并退出。
准备工作
- 编辑目标文件
host.txt。
需要将目标Web服务器写入host.txt文件。
书写格式为协议 FQDN(或IP地址) 端口 爬取根路径。
- 示例。
https gyoithon.example.com 443 /
如果需要指定多个目标信息,需按以下格式编写:
https gyoithon.example.com 443 /
http 192.168.220.129 80 /vicnum/
https www.example.com 443 /catalog/
| 注意 |
|---|
根路径的开头和结尾需要添加 / 符号。 |
- 编辑配置文件
config.ini。
用户需要修改的参数在设置文件config.ini中定义。
如果需要修改参数,请编辑config.ini。config.ini的详细说明请见此处。
GyoiThon的执行
1. 默认模式。
root@kali:~/GyoiThon# python3 gyoithon.py
默认模式会收集以下基础信息:
- 通过Web爬虫收集HTTP响应。
- 使用字符串模式匹配识别产品/版本。
- 从NVD检查识别出产品的CVE编号。
- 检查不必要的HTML/JavaScript注释。
- 检查不必要的调试信息。
- 检查登录页面。
- 爬虫设置
GyoiThon使用Python库Scrapy。
通过修改config.ini中的参数,可以调整Scrapy的设置。
| 类别 | 参数 | 描述 |
|---|---|---|
| Spider | depth_limit | 最大爬取深度。默认值为2层。 |
| delay_time | 爬取延迟时间。默认值为3(秒)。 |
|
| time_out | 爬虫关闭选项。超时时间。默认值为600(秒)。 |
|
| item_count | 爬虫关闭选项。最大项目数。默认值为300。 |
|
| page_count | 爬虫关闭选项。每页最大项目数。默认值为0(无限制)。 |
|
| error_count | 爬虫关闭选项。最大错误数。默认值为0(无限制)。 |
- 检查速度设置
检查数量和HTTP响应大小会显著影响检查时间。
通过修改config.ini中的参数,可以调整检查速度。
| 类别 | 参数 | 描述 |
|---|---|---|
| Common | max_target_url | 最大检查URL数量。若通过Web爬虫收集的URL数量超过此参数值,超出的URL将被丢弃。默认值为100。0表示无限制。 |
| max_target_byte | 最大检查响应大小。若响应大小超过此参数值,超出的响应将被丢弃。默认值为10000字节。0表示无限制。 |
|
| scramble | 通过Web爬虫收集的URL列表将被随机排序。默认值为1(有效)。0表示无效。 |
| 注意 |
|---|
| 检查速度和准确性是相互制约的。 |
2. 云服务检查模式。
root@kali:~/GyoiThon# python3 gyoithon.py -s
添加 -s 选项后,GyoiThon会在默认模式基础上检查目标Web服务器是否使用云服务。
执行前必须修改 config.ini 中的以下参数。
| 类别 | 参数 | 描述 |
|---|---|---|
| CloudChecker | azure_ip_range | Azure数据中心IP范围的源URL。 |
此参数是Azure数据中心IP范围的源URL。该URL每天会更新几次。因此,在执行GyoiThon前,必须从 "Microsoft Azure数据中心IP范围" 页面点击"点击此处手动下载"获取最新URL,并将其设置为上述参数。
3. 机器学习分析模式。
root@kali:~/GyoiThon# python3 gyoithon.py -m
添加 -m 选项后,GyoiThon会在默认模式基础上使用朴素贝叶斯(Naive Bayes)机器学习识别产品/版本。
4. Google Hacking模式。
root@kali:~/GyoiThon# python3 gyoithon.py -g
添加 -g 选项后,GyoiThon会在默认模式基础上使用Google自定义搜索API识别产品/版本。执行前必须将 API密钥 和 搜索引擎ID 设置到以下参数中。
| 类别 | 参数 | 描述 |
|---|---|---|
| GoogleHack | api_key | Google自定义搜索API的API密钥。 |
| search_engine_id | Google搜索引擎ID。 |
| 注意 |
|---|
| 可免费使用Google自定义搜索API每日100次查询。但若需要超过100次查询,必须支付Google自定义搜索API服务费用。 |
5. 默认内容探索模式。
root@kali:~/GyoiThon# python3 gyoithon.py -e
添加 -e 选项后,GyoiThon会在默认模式基础上探索CMS、Web服务器软件等产品的默认内容。
通过修改 config.ini 中的参数,可以调整探索设置。
| 类别 | 参数 | 描述 |
|---|---|---|
| ContentExplorer | delay_time | 探索延迟时间。默认值为1(秒)。 |
| 注意 |
|---|
| 使用此选项时,由于GyoiThon会对目标Web服务器执行大量访问(数百次访问),可能会对服务器造成较大负载。此外,大量404错误日志会被写入访问日志,可能会被SOC(安全运营中心)发现。因此,如果使用此选项,请务必通知相关负责人(如SOC、管理员),并在您控制的环境中自行承担风险使用。 |
6. Censys协作模式。
root@kali:~/GyoiThon# python3 gyoithon.py -c
通过添加 -c 选项,GyoiThon 会使用 Censys(网络安全搜索引擎)检查开放端口号和服务器证书。
执行前,必须将 API key 和 Secret key 设置到以下参数中。
| 分类 | 参数 | 描述 |
|---|---|---|
| Censys | api_id | Censys 的 API key。 |
| secret | Censys 的 Secret key。 |
7. Metasploit 协同模式
root@kali:~/GyoiThon# python3 gyoithon.py -p
通过添加 -p 选项,GyoiThon 会在默认模式基础上,使用 Metasploit 检查 DoS(拒绝服务攻击)和后门等真实漏洞。
执行前,必须启动 Metasploit 的 RPC 服务器,并在 config.ini 中设置以下参数。
| 分类 | 参数 | 描述 |
|---|---|---|
| Exploit | server_host | 分配给 RPC 服务器(msgrpc)的 IP 地址。 |
| server_port | 分配给 RPC 服务器(msgrpc)的端口号。 | |
| msgrpc_user | 用于 msgrpc 身份验证的用户 ID。 | |
| msgrpc_pass | 用于 msgrpc 身份验证的密码。 | |
| LHOST | 分配给 RPC 服务器(msgrpc)的 IP 地址。 |
| 注意事项 |
|---|
| 使用此选项时,由于 GyoiThon 会对目标 Web 服务器执行利用程序(exploit),可能会严重影响服务器运行。此外,由于这些利用行为类似于真实攻击,可能会被 SOC(安全运营中心)检测到。因此,使用此选项时,请务必通知相关方(如 SOC、管理员),并在可控环境中自行承担风险使用。 |
8. 基于存储日志的分析模式
root@kali:~/GyoiThon# python3 gyoithon.py -l --log_path="存储日志的完整路径"
通过添加 -l 选项,GyoiThon 可在不进行网页爬取的情况下,使用已存储的 HTTP 响应执行各种检查。
此模式适用于 GyoiThon 无法执行网页爬取的 Web 应用程序。
GyoiThon 可通过本地代理工具收集的 HTTP 响应,执行与默认模式网页爬取类似的多种检查。
| 注意事项 |
|---|
日志文件的扩展名必须为 .log。 |
9. 多种选项的组合
"云服务检查模式" 与 "机器学习分析模式" 的组合
root@kali:~/GyoiThon# python3 gyoithon.py -s -m
"云服务检查模式" 与 "Google Hacking 模式" 的组合
root@kali:~/GyoiThon# python3 gyoithon.py -s -g
"云服务检查模式"、"机器学习分析模式" 与 "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="存储日志的完整路径"
10. 生成签名/训练数据模式
root@kali:~/GyoiThon# python3 gyoithon.py -d --category=CMS --vendor=joomla! --package=Joomla!@3.9.4@_origin.tar.zip
通过添加 -d 选项,GyoiThon 会生成用于检测目标 Web 服务器上运行的 Web 产品的签名/训练数据。
可用选项如下:
| 选项 | 描述 | 示例 |
|---|---|---|
| --category | 签名/训练数据中的产品类别。 | OS 或 WEB 或 FRAMEWORK 或 CMS。 |
| --vendor | 签名/训练数据中的产品厂商名称。 | wordpress, joomla!, drupal。 |
| --package | 导入的目标包文件名。需要用 @ 分隔产品名称、版本和扩展名三个字段。 |
WordPress@4.9.8@.tar.gz, Joomla!@3.9.4@_origin.tar.zip, Drupal@8.6.3@.tar.gz。 |
检查报告
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
GyoiThon 会生成以下两种类型的报告。
gyoithon_report_target FQDN(或IP地址)_端口号_根路径.csv。
这是主要报告,包含产品名称、版本、CVE等信息。
报告格式为gyoithon_report_target FQDN(或IP地址)_端口号_根路径.csv。
各列的详细说明如下:
| 列名 | 描述 | 示例 |
|---|---|---|
| fqdn | 目标Web服务器的FQDN(Fully Qualified Domain Name,完全限定域名) | 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/框架等) | 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(或IP地址)_端口号_根路径.csv。
这是通过Censys(网络资产搜索引擎)获取的开放端口、证书信息等搜索结果报告。
报告格式为gyoithon_censys_report_target FQDN(或IP地址)_端口号_根路径.csv。
各列的详细说明如下:
| 列名 | 描述 | 示例 |
|---|---|---|
| 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 | 开放端口的协议 | 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获取的信息可能不是最新的。 |
技巧
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
这是用于 默认模式 中产品识别的字符串匹配模式。
若需添加新字符串匹配模式,请按以下格式编写:
格式:field1@field2@field3@field4@field5
| 类型 | 字段编号 | 描述 | 示例 |
|---|---|---|---|
| 必填 | 1 | 产品类别。 | CMS |
| 必填 | 2 | 厂商名称。 | drupal |
| 必填 | 3 | 产品名称。 | drupal |
| 可选 | 4 | 与此签名绑定的版本。 | 8.0 |
| 必填 | 5 | 识别产品的正则表达式。 | .*(X-Generator: Drupal 8).* |
若不需要可选字段,必须将该字段设为 *。
- 示例
CMS@wordpress@wordpress@*@.*(WordPress ([0-9]+[\.0-9]*[\.0-9]*)).*
CMS@drupal@drupal@8.0@.*(X-Generator: Drupal 8).*
| 注意 |
|---|
| 若需提取产品版本,请编写两个正则表达式分组(第二个正则表达式用于版本提取)。 |
signature_default_content.txt
这是用于 默认内容探索模式 中产品识别的字符串匹配模式。
若需添加新字符串匹配模式,请按以下格式编写:
格式:field1@field2@field3@field4@field5@field6@field7@field8
| 类型 | 字段编号 | 描述 | 示例 |
|---|---|---|---|
| 必填 | 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
| 注意 |
|---|
| 若需提取产品版本,请编写两个正则表达式分组(第二个正则表达式用于版本提取)。 |
| 注意 |
|---|
若 GyoiThon 仅凭 探索路径 无法确认产品,需要填写 确认产品的正则表达式 字段。GyoiThon 会访问 探索路径 对应的 URL,并使用 确认产品的正则表达式 检查 HTTP 响应。若正则匹配成功,GyoiThon 判定该产品存在。 |
signature_search_query.txt
这是用于 Google Hacking 模式 中产品识别的 Google 自定义搜索查询。
若需添加新查询,请按以下格式编写:
格式:field1@field2@field3@field4@field5@field6@field7@field8
| 类型 | 字段编号 | 描述 | 示例 |
|---|---|---|---|
| 可选 | 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
| 注意 |
|---|
| 若需提取产品版本,请编写两个正则表达式分组(第二个正则表达式用于版本提取)。 |
| 注意 |
|---|
若 GyoiThon 仅凭 Google 自定义搜索查询 无法确认产品,需要填写 确认产品的正则表达式 字段。GyoiThon 会访问 Google 自定义搜索 API 执行结果中的 URL,并使用 确认产品的正则表达式 检查 HTTP 响应。若正则匹配成功,GyoiThon 判定该产品存在。 |
signature_comment.txt
这是用于 默认模式 中识别无用注释的字符串匹配模式。
若需添加新字符串匹配模式,请按以下格式编写:
格式:field1
| 类型 | 字段编号 | 描述 |
|---|---|---|
| 必填 | 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
这是用于 默认模式 中识别无用调试信息的字符串匹配模式。
若需添加新字符串匹配模式,请按以下格式编写:
格式:field1
| 类型 | 字段编号 | 描述 |
|---|---|---|
| 必填 | 1 | 无用调试信息的正则表达式。 |
- 示例
(ORA-[0-9a-zA-Z\.])
(fail|error|notice|parse|warning|fatal)[^\n]*line[^\n]*[0-9]+
signature_page_type_from_url.txt
这是用于 默认模式 中基于 URL 的页面类型识别的字符串匹配模式。
若需添加新字符串匹配模式,请按以下格式编写:
格式:field1@field2
| 类型 | 字段编号 | 描述 |
|---|---|---|
| 必填 | 1 | 页面类型。 |
| 必填 | 2 | 识别页面类型的正则表达式。 |
- 示例
Login@.*(login|log_in|logon|log_on|signin|sign_in).*
| 注意 |
|---|
| 上述厂商名称和产品名称必须与 CPE 格式(通用平台枚举) 中的名称一致。 |
2. 如何手动添加学习数据
modules/train_data/ 路径包含两个用于机器学习(Machine Learning)的训练数据文件。
root@kali:~/GyoiThon/modules/train_data/ ls
train_cms_in.txt
train_page_type.txt
train_cms_in.txt
这是用于机器学习模式(Machine Learning mode)分析的训练数据文件。
如果需要添加新的训练数据,需按照以下格式编写。
格式:field1@field2@field3@field4
| 类型 | 字段编号 | 描述 | 示例 |
|---|---|---|---|
| 必填 | 1 | 厂商名称 | joomla |
| 必填 | 2 | 产品名称 | joomla\! |
| 可选 | 3 | 与该训练数据绑定的版本 | * |
| 必填 | 4 | 通过正则表达式表示的产品特征 | (Set-Cookie: [a-z0-9]{32}=.*); |
如果不需要可选字段,必须将该字段设置为 *。
- 示例
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}).*
| 注意 |
|---|
| 上述厂商名称和产品名称必须匹配 CPE 格式 中的名称。 |
train_page_type.txt
这是用于默认模式(default mode)中通过机器学习识别页面类型的训练数据文件。
如果需要添加新的训练数据,需按照以下格式编写。
格式:field1@field2
|类型|字段编号|描述| |:---|:---| |必填|1|分类| |必填|2|通过正则表达式表示的页面特征|
- 示例
Login@.*(<input.*type=[\"']text[\"'].*name=[\"']user|uid|username|user_name|name[\"']).*>
Login@.*(<input.*type=[\"']password[\"']).*>
3. 如何修改 "Exploit模块的选项"
当 GyoiThon 进行利用(exploit)时,会使用 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 中输入代理服务器信息。
| 类别 | 参数 | 描述 |
|---|---|---|
| 通用 | proxy | 代理服务器信息。格式为 scheme://hostname:port(例如:http://proxy-example:8083)。 |
| proxy_user | 如果需要代理认证,请输入认证用户名。 | |
| proxy_pass | 如果需要代理认证,请输入认证密码。 |
| 注意 |
|---|
| 目前 GyoiThon 仅实现了 Basic Authentication 认证方式。 |
运行测试环境
- Kali Linux 2018.2(用于 Metasploit)
- CPU: Intel(R) Core(TM) i5-5200U 2.20GHz
- 内存: 8.0GB
- Metasploit Framework 4.16.48-dev
- Python 3.6.6
许可证
联系我们
常见问题
相似工具推荐
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
OpenHands
OpenHands 是一个专注于 AI 驱动开发的开源平台,旨在让智能体(Agent)像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点,通过自动化流程显著提升开发速度。 无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员,还是需要快速原型验证的技术团队,都能从中受益。OpenHands 提供了灵活多样的使用方式:既可以通过命令行(CLI)或本地图形界面在个人电脑上轻松上手,体验类似 Devin 的流畅交互;也能利用其强大的 Python SDK 自定义智能体逻辑,甚至在云端大规模部署上千个智能体并行工作。 其核心技术亮点在于模块化的软件智能体 SDK,这不仅构成了平台的引擎,还支持高度可组合的开发模式。此外,OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩,证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能,支持与 Slack、Jira 等工具集成,并提供细粒度的权限管理,适合从个人开发者到大型企业的各类用户场景。
gpt4free
gpt4free 是一个由社区驱动的开源项目,旨在聚合多种可访问的大型语言模型(LLM)和媒体生成接口,让用户能更灵活、便捷地使用前沿 AI 能力。它解决了直接调用各类模型时面临的接口分散、门槛高或成本昂贵等痛点,通过统一的标准将不同提供商的资源整合在一起。 无论是希望快速集成 AI 功能的开发者、需要多模型对比测试的研究人员,还是想免费体验最新技术的普通用户,都能从中受益。gpt4free 提供了丰富的使用方式:既包含易于上手的 Python 和 JavaScript 客户端库,也支持部署本地图形界面(GUI),更提供了兼容 OpenAI 标准的 REST API,方便无缝替换现有应用后端。 其技术亮点在于强大的多提供商支持架构,能够动态调度包括 Opus、Gemini、DeepSeek 等多种主流模型资源,并支持 Docker 一键部署及本地推理。项目秉持社区优先原则,在降低使用门槛的同时,也为贡献者提供了扩展新接口的便利框架,是探索和利用多样化 AI 资源的实用工具。
gstack
gstack 是 Y Combinator CEO Garry Tan 亲自开源的一套 AI 工程化配置,旨在将 Claude Code 升级为你的虚拟工程团队。面对单人开发难以兼顾产品战略、架构设计、代码审查及质量测试的挑战,gstack 提供了一套标准化解决方案,帮助开发者实现堪比二十人团队的高效产出。 这套配置特别适合希望提升交付效率的创始人、技术负责人,以及初次尝试 Claude Code 的开发者。gstack 的核心亮点在于内置了 15 个具有明确职责的 AI 角色工具,涵盖 CEO、设计师、工程经理、QA 等职能。用户只需通过简单的斜杠命令(如 `/review` 进行代码审查、`/qa` 执行测试、`/plan-ceo-review` 规划功能),即可自动化处理从需求分析到部署上线的全链路任务。 所有操作基于 Markdown 和斜杠命令,无需复杂配置,完全免费且遵循 MIT 协议。gstack 不仅是一套工具集,更是一种现代化的软件工厂实践,让单人开发者也能拥有严谨的工程流程。
meilisearch
Meilisearch 是一个开源的极速搜索服务,专为现代应用和网站打造,开箱即用。它能帮助开发者快速集成高质量的搜索功能,无需复杂的配置或额外的数据预处理。传统搜索方案往往需要大量调优才能实现准确结果,而 Meilisearch 内置了拼写容错、同义词识别、即时响应等实用特性,并支持 AI 驱动的混合搜索(结合关键词与语义理解),显著提升用户查找信息的体验。 Meilisearch 特别适合 Web 开发者、产品团队或初创公司使用,尤其适用于需要快速上线搜索功能的场景,如电商网站、内容平台或 SaaS 应用。它提供简洁的 RESTful API 和多种语言 SDK,部署简单,资源占用低,本地开发或生产环境均可轻松运行。对于希望在不依赖大型云服务的前提下,为用户提供流畅、智能搜索体验的团队来说,Meilisearch 是一个高效且友好的选择。
awesome-claude-skills
awesome-claude-skills 是一个精心整理的开源资源库,旨在帮助用户挖掘和扩展 Claude AI 的潜力。它不仅仅是一份列表,更提供了实用的“技能(Skills)”模块,让 Claude 从单纯的文本生成助手,进化为能执行复杂工作流的智能代理。 许多用户在使用 AI 时,常受限于其无法直接操作外部软件或处理特定格式文件的痛点。awesome-claude-skills 通过预设的工作流解决了这一问题:它不仅能教会 Claude 专业地处理 Word、PDF 等文档,进行代码开发与数据分析,还能借助 Composio 插件连接 Slack、邮箱及数百种常用应用,实现发送邮件、创建任务等自动化操作。这使得重复性任务变得标准化且可复用,极大提升了工作效率。 无论是希望优化日常办公流程的普通用户、需要处理复杂文档的研究人员,还是寻求将 AI 深度集成到开发管线中的开发者,都能从中找到适合的解决方案。其独特的技术亮点在于“技能”的可定制性与强大的应用连接能力,让用户无需编写复杂代码,即可通过简单的配置让 Claude 具备跨平台执行真实任务的能力。如果你希望让 Claude