GyoiThon:基于机器学习的渗透测试工具

简介

GyoiThon是一款基于机器学习的渗透测试工具。

GyoiThon根据学习数据识别安装在Web服务器上的软件(操作系统,中间件,框架,CMS等)。之后,GyoiThon为已识别的软件执行有效的攻击。最终,GyoiThon会自动生成扫描结果报告。上述处理均由GyoiThon自动执行。

处理步骤

GyoiThon会自动执行上述“Step1”-“Step4”。

用户唯一的操作就是在GyoiThon中,输入目标web服务器的首页URL。

这非常的简单,几乎不花费你任何的时间和精力,就能让你轻松的识别Web服务器上的漏洞。

处理流程

第1步:收集HTTP响应。

GyoiThon在抓取时会收集目标网站的几个HTTP响应。以下是GyoiThon获取的HTTP响应示例。

示例1

示例2

示例3

第2步:识别产品名称

GyoiThon使用以下两种方法,来识别安装在Web服务器上的产品名称。

1.基于机器学习

通过使用机器学习(朴素贝叶斯),GyoiThon基于每个软件的略微不同的特征(ETAG值、Cookie值、特定HTML标签等)的组合来进行识别。朴素贝叶斯使用以下示例(训练数据)的训练数据来学习。与签名库不同的是,当在一个特征中不能识别软件时,朴素贝叶斯是基于HTTP响应中包含的各种特征随机识别的。

示例1

GyoiThon可以识别Web服务器软件Apache。

这是因为GyoiThon学习了Apache的特性,例如“Etag头值(409ed-183-53c5f732641c0)”。在我们的研究测试中发现,Apache使用数字和小写字母的组合作为Etag值。并且,Etag值分开4-5位和3-4位和12位,最终位在多数情况下为0。

示例2

GyoiThon可以识别CMS Joomla !

这是因为GyoiThon学习了Joomla的特性!如“Cookie名称(f00e6 … 9831e)”和“Cookie值(0eba9 … 7f587)”。在我们研究测试中发现,Joomla!在多数情况下使用32个小写字母作为Cookie名称以及Cookie值。

训练数据(示例)

Joomla! (CMS)

HeartCore (日本知名CMS)

Apache (Web服务器软件)

2.基于字符串匹配。

当然,GyoiThon也可以通过传统渗透测试工具中使用的字符串匹配来识别软件。示例如下。

示例3

GyoiThon可以识别CMS Drupal。

这很容易。

第3步:使用Metasploit进行利用。

GyoiThon使用Metasploit执行与识别软件相对应的漏洞利用,并检查软件是否受此漏洞影响。

运行示例

第4步:生成扫描报告。

GyoiThon生成汇总漏洞的报告。

报告的样式为html。

样板

视频演示:https://www.youtube.com/watch?v=jmi43eZOE9w

使用

Step.0初始化Metasploit DB

首先,使用msfdb命令初始化metasploit db(postgreSQL)。

Step.1启动Metasploit框架

你可以在安装Metasploit Framework的远程服务器(如Kali Linux)上启动Metasploit。

Step.2启动RPC服务器

启动Metasploit的RPC服务器。

Step.3编辑配置文件。

你必须在config.ini中更改以下值

Step.4编辑目标(target)文件。

GyoiThon使用host.txt访问目标服务器。

所以,你必须在执行GyoiThon之前编辑host.txt。

host.txt的样本

target server => 192.168.220.148

target port => 80

target path => /oscommerce/catalog/

你必须使用空格分隔IP地址,端口号和目标路径。

Step.5运行GyoiThon

执行命令如下。

Step.6查看扫描报告

使用任意浏览器打开并查看报告。

提示

1.如何添加字符串匹配模式。

签名路径包括对应于每个产品类别的四个文件。

signature_cms.txt

这个文件包含CMS的字符串匹配模式。

signature_framework.txt

这个文件包含FrameWork的字符串匹配模式。

signature_os.txt

这个文件包含操作系统的字符串匹配模式。

signature_web.txt

这个文件包含Web服务器软件的字符串匹配模式。

如果你想添加新的字符串匹配模式,你可以在每个文件的最后一行添加新的字符串匹配模式。

例如)在signature_cms.txt中添加CMS的新字符串匹配模式。

注意

以上新产品名称必须是Metasploit可识别的名称。你必须使用@分隔新产品名称和正则表达式模式。

2.如何添加学习数据。

签名路径包括对应于每个产品类别的四个文件。

train_cms_in.txt

这个文件包含CMS的学习数据。

train_framework_in.txt

这个文件包含FrameWork的学习数据。

train_os_in.txt

这个文件包含操作系统的学习数据。

train_web_in.txt

这个文件包含Web服务器软件的学习数据。

如果你想添加新的学习数据,你可以在每个文件的最后一行添加学习数据。

例如)在train_cms_in.txt中添加CMS的新学习数据。

注意

以上新产品名称必须是Metasploit可识别的名称。你必须使用@分隔新产品名称和正则表达式模式。

你必须删除训练过的数据(* .pkl)。

3.如何更改“利用模块的选项”。

当GyoiThon利用时,它会使用Exploit模块选项的默认值。

如果你想更改选项值,请在exploit_tree.json中输入任意值到“user_specify”,如下所示。

上面的例子是将exploit模块“exploit/unix/webapp/joomla_media_upload_exec”中的TARGETURI选项的值更改为“/joomla”中的“/my_original_dir/”。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180611B1GOAR00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券