解决问题

现在现存的 cnvd 挖掘脚本判断逻辑都较为简陋

都是通过公司名称搜索,之后获取一个标题进行判断是否为通用系统

存在较大的误报情况

此脚本在此基础上增加通过 fofa 自带的参数 fid 进行搜索获取

进一步精准获取符合条件的通用系统,方便挖掘 cnvd 证书。

(FID(FeatureID)是 FOFA 自己设定的指纹信息)

CNVD 证书获取的条件

1、对于中危及中危以上通用型漏洞(CVSS2.0 基准评分超过 4.0 分)(除小厂商的产品、非重要 APP、黑盒测试案例不满 10 起等不颁发证书)。(中危漏洞,公司资产大于 5000w,并且通用系统大于 10 个)

2、涉及电信行业单位(中国移动、中国联通、中国电信及中国铁塔公司)和中央部委级别(不含直属事业单位)的高危事件型漏洞,CNVD 将给予原创漏洞证明(即 CNVD 漏洞证书,电子版),该证明可通过编号在 CNVD 官方网站进行查询跟踪。

具体用法

前期资产搜索:

通过企查查、爱企查、小蓝本等平台获取资产数大于 5000w 的资产

因为普通会员每次最多查询的数量是 10000 条左右,所以筛选时加上城市,做到全面的探测

一般的筛选条件是,拥有软件著作权,资产大于 5000w,有官网

将获取到的结果导入 companys.txt 文件中

注:需要有 fofa 的高级会员!!!




将fofa的emile和apikey导入config.ini文件中
直接运行脚本python3 main.py

如果碰到资产数大于10的资产,会进行fid参数搜索,如果fid参数搜索的结果也大于10,会把结果输出到result.csv文件中

其中第一列为fofa的搜索输入内容fid=”xxxxx==”,第二列公司名称,第三列是获取到的前五个标题

原理说明

通过fofa平台(有会员)的api进行筛选:

第一部分的判断逻辑为fofa搜索到的存活资产大于10,即可保留结果,这块可自行判断资产大于多少收录

因为资产大于10就可能存在通用系统,这种判断方法比较粗糙,但也有效。

筛选下来的系统通过fofa的统计聚合接口

https://fofa.info/api/v1/search/stats?fields=fid&qbase64=

可以通过该接口判断fid,如果fid大于10则判断为存在通用系统,此处接口5秒可调用一次。

当然fofa的fid拔下来之后还是有很多的误报,比如会有菠菜,或者是fid为nginx之类的基本没啥可能挖到新漏洞的通用系统,所以在结果中输出了前五个结果的标题,可自行判断是否为通用系统。

接下来就可以愉快的挖洞了,附上通过该脚本挖到的一些证书~

脚本下载地址

https://github.com/bxxiaoxiong/cnvd_fofa_assets

本文由mdnice多平台发布


momo安全
1 声望0 粉丝