卷积神经网络在Pentest截图分析中的应用

2019-10-10 16:10:46 浏览数 (1)

Eyeballer

Eyeballer这款强大的工具基于卷积神经网络实现,可利用卷积神经网络来帮助研究人员对获取到的屏幕截图进行渗透测试与安全分析,并给研究人员提供目标截图的快速概览。

Eyeballer适用于大规模的网络渗透测试活动中,我们需要从一组大规模基于Web的主机中搜索感兴趣的目标,然后使用我们常用的截图工具(例如EyeWitness或GoWitness),接下来在Eyeballer的帮助下,我们就可以知道目标系统可能存在(或不存在)哪些安全漏洞了。

工具运行截图

老款网站:

登录页面:

网站主页:

错误404页面:

工具安装

Eyeballer使用了Tensorflow 2.0的TK.keras,该版本目前仍处于Beta测试版本阶段。如果安装的是常规的1.0版本,它可能会与现有的TensorFlow安装起冲突。但是Google方面表示,2.0版本很快就会推出正式发布的稳定版本,因此这个问题应该可以在短期内由用户自行解决。

通过pip命令下载所需的代码包:

sudo pip3 install -r requirements.txt

或者,如果你需要GPU支持的话,请使用下列命令:

sudo pip3 install -r requirements-gpu.txt

请注意:为TensorFlow添加GPU支持已经超出了本文所要讨论的内容,配置过程需要涉及到很多复杂的东西。

训练数据

我们可以点击【这里】获取所需的训练数据。

接下来,我们还会增加一套TensorFlow数据集,到时候我们就不需要单独去下载训练数据了,而且还会便于我们对数据进行版本分类。但是现在,我们仍需要单独处理这些数据。针对训练数据,我们还需要注意以下几点:

1、“images/”目录中包含了所有的屏幕截图,截图大小降低到了224x140,之后会添加全尺寸截图; 2、“labels.csv”中包含有所有的截图标签; 3、“bishop-fox-pretrained-v1.h5”是一份预先经过数据模型训练的大型文件,我们可以选择直接使用它。

在使用工具之前,我们可以先将这三分文件拷贝到Eyeballer代码目录的根路径。

预测标签

如果你想先查看目标的部分截图,可以直接用“predict”(预测)模式运行Eyeballer:

代码语言:javascript复制
eyeballer.py --weights YOUR_WEIGHTS.h5 predict YOUR_FILE.png

如果你想查看整个目录的文件,可以运行下列命令:

代码语言:javascript复制
eyeballer.py --weights YOUR_WEIGHTS.h5 predict PATH_TO/YOUR_FILES/
代码语言:javascript复制

Eyeballer将会对结果进行分类,并将分析数据转换为人类可读的形式-results.html呈现给用户,同时还会生成机器可读的格式文件-results.csv文件。

数据训练

如需训练新的模型,请运行下列命令:

代码语言:javascript复制
eyeballer.py train
代码语言:javascript复制

如果你设备的GPU计算能力足够强大,那么训练时间就会减少很多。命令运行后的输出为一个新的模型文件,默认为weights.h5。

评估

如果你刚刚训练了一个新的模型,我们还需要使用不同指标来对其进行评估,以判断其表现:

eyeballer.py可以对模型权重进行计算,并输出每个程序标签的查全率和查准率。

0 人点赞