1. 首页
  2. 下载

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

【推荐学习】暗月渗透测试培训 十多年渗透经验,体系化培训渗透测试 、高效学习渗透测试,欢迎添加微信好友aptimeok 咨询。

微信公众号:渊龙Sec安全团队
为国之安全而奋斗,为信息安全而发声!
如有问题或建议,请在公众号后台留言
如果你觉得本文对你有帮助,欢迎在文章底部赞赏我们

0x00 工具概述

项目开源地址:https://github.com/asaotomo/FofaMap

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

FofaMap是由团队成员Asaotomo编写的,一款基于Python3开发的跨平台FOFA数据采集器。用户可以通过修改配置文件,定制化的采集Fofa数据,并导出生成对应的Excel表格或TXT扫描目标

Nuclei是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性

我们将Fofamap和Nuclei进行联动,通过Fofamap查询到资产目标后,自动调用Nuclei对发现目标进行漏洞扫描,实现资产探测到漏洞扫描的全流程漏洞发掘工作,极大的提升了白帽子挖掘SRC的效率

这是小迪师傅在公众号发表的工具推荐演示视频,推文链接如下:

项目分享-FofaMap自动化扫洞测评

0x01 安装说明

  1. 工具使用Python3开发,请确保您的电脑上已经安装了Python3环境;
  2. 首次使用请使用 python3 -m pip install -r requirements.txt 命令,来安装必要的外部依赖包;
  3. fofa.ini为Fofamap的配置文件,可以通过修改配置文件内容来定制化采集FOFA数据;
  4. 在使用该工具前,请先填写用户信息[userinfo]中的emailkey
  5. 适配情况:目前FofaMap已经适配了macOS、Windows、Kali Linux、Ubuntu等主流操作系统;
  6. 不同用户使用Fofamap调用Fofa全网资产收集与检索系统API查询次数如下(用户可以根据自己的账号类型设置对应的查询页数):

企业会员 免费前100,000条/次
高级会员 免费前10000条/次
普通会员 免费前100条/次
注册用户 1F币(最多10,000条)/次

  1. 项目文件结构:
 1├── README.md ##使用说明
 2├── fofa.ini ##fofa配置文件
 3├── fofa.py ##fofa api调用类
 4├── fofamap.py ##fofamap主程序
 5├── nuclei ##nuclei主程序,若nuclei主程序有更新,可去https://github.com/projectdiscovery/nuclei/releases下载替换
 6│   ├── linux ##linux版主程序
 7│   │   ├── nuclei_386
 8│   │   ├── nuclei_amd
 9│   │   ├── nuclei_arm
10│   │   └── nuclei_armv6
11│   ├── macos ##macos版主程序
12│   │   ├── nuclei_amd
13│   │   └── nuclei_arm
14│   └── windows ##windows版主程序
15│       ├── nuclei_386.exe
16│       └── nuclei_amd.exe
17├── nuclei.py ##nuclei api调用类
18├── requirements.txt ##依赖包要求

fofa.ini配置文件说明如下:

 1[userinfo]#用户信息
 2#注册和登录时填写的email
 3email = xxxxx@qq.com
 4#会员到个人资料可得到key,为32位的hash
 5key = 001xxxxxxxxxxxxxxxxxxxxx8b2dc5
 6
 7[fields]#查询内容选项
 8#默认查询内容为:ip、端口、网站标题、国家和城市
 9fields = ip,port,title,country,city
10
11#fields可选项有:['host''title''ip''domain''port''country''province''city''country_name''header''server''protocol''banner''cert''isp''as_number''as_organization''latitude''longitude''structinfo','icp''fid''cname']
12
13[page]#查询页数
14#查询启始页数
15start_page = 0
16#查询结束页数
17end_page = 1

0x02 工具使用方法

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘
01
-q 使用FOFA查询语句查询数据

关于命令说明:

如果用户想要使用Fofa联合查询语句,例如:app="grafana" && country="US"

Linux和macOS用户直接使用python3 fofamap.py -q 'app="grafana" && country="US"'即可成功查询。

Windows用户因为系统原因,需要使用python3 fofamap.py -q "app="grafana" && country="CN""系统才可成功识别(即Windows用户需要对查询命令内部的”使用进行转义,否则系统识别错误)

1

nbsp;python3 fofamap.py -q 'title="Apache APISIX Dashboard"'

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘
02
-o 自定义输出文件名(默认为fofa.xlsx)
1

nbsp;python3 fofamap.py -q 'title="Apache APISIX Dashboard"' -o 结果.xlsx

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

输出的结果.xlsx内容如下:

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘
03
-ico 使用网站图标Hash值进行查询

FofaMap新版支持网站图标查询(仅支持Fofa高级会员及以上用户)

用户可通过填入任意一网站地址,Fofamap会自动获取该网站的favicon.ico图标文件,并计算其hash值。

1

nbsp;python3 fofamap.py -ico 网站url

例如我们查询含有必应(bing)图标的网站:

1python3 fofamap.py -ico https://www.bing.com`

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘
04
-bq 批量查询数据

FofaMap支持批量查询,用户可新建一个记事本文件,如bat.txt,然后将准备查询的fofa语句写入其中,运行以下命令即可进行批量查询

1

nbsp;python3 fofamap.py -bq bat.txt

bat.txt文件内容:

1domain="youku.com"   
2server=="Microsoft-IIS/7.0" 
3ip="211.45.30.16/24"
4icp="京ICP备10036305号"

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

查询完成后,系统会自动根据任务顺序为每个任务生成一个Excel版的查询结果文件,如下:

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘
05
-s 输出扫描格式

使用输出扫描格式功能时,系统只会获取目标host字段,并自动做去重处理

输出结果同时会自动保存为txt文件,方便后面nuclei进行目标调用扫描

1

nbsp;python3 fofamap.py -q 'title="Apache APISIX Dashboard"' -s  

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘
06
使用 -s -n 调用nuclei对资产进行漏扫
1python3 fofamap.py -q 'title="Apache APISIX Dashboard"' -s  -n

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

0x03 FofaMap扫描模式

FofaMap支持全功能扫描和自定义扫描两种模式

全功能扫描: 根据提示输入“N”,对目标进行全扫描,默认内置全部PoC

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

自定义扫描: 根据提示输入“Y”,启动自定义扫描,通过设置过滤器对目标进行自定义扫描,只使用指定的PoC

0x04 FofaMap自定义扫描方式

FofaMap支持三个基本过滤器来自定义扫描方式

  1. 标签(-tags)根据模板中可用的标签字段进行筛选。如:cev、cms、tech等
  2. 严重级别(-severity)根据模板中可用的严重级别字段进行筛选。如:critical、high、medium等
  3. 作者(-author)根据模板中可用的作者字段进行筛选。如:geeknik、pdteam、pikpikcu等
  4. 自定义 (customize)用户可以根据需求使用nuclei的其它高级命令对目标进行扫描。如:-tags cve -severity critical,high -author geeknik

例如:我们使用自定义扫描的tags过滤器,tags的内容为tech,那么fofamap只会调用nuclei的tech-detect模板对网站进行检测,扫描结果为网站所使用的中间件、数据库、操作系统版本等系统

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

更多Nuceli用法可以这篇文章:

https://blog.csdn.net/asaotomo/article/details/122395708

另外FofaMap会对扫描后的结果进行统计,并将结果保存在scan_result.txt

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

scan_result.txt文件内容:

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

在获得scan_result.txt后系统会提取scan_result.txt中的IP地址和域名,并调用fofa api去查询其其域名和备案信息,辅助用户了解资产归属情况

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

0x05 控制Fofamap输出内容

我们可以通过修改fofa.ini配置文件中的fields值,来控制工具输出的顺序与字段

例如:我们将 fields = ip,port,title,country,city 改为 fields = protocol,ip,port,title,icp

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

接着执行以下命令

1

nbsp;python3 fofamap.py -q 'app="discuz"'   

输出内容就会变为协议、IP地址、端口、网站标题、ICP备案号

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘


本工具仅提供给安全测试人员进行安全自查使用
用户滥用造成的一切后果与作者无关
使用者请务必遵守当地法律
本程序不得用于商业用途,仅限学习交流


我是Asaotomo,我在渊龙Sec安全团队等你
微信公众号:渊龙Sec安全团队
欢迎关注我,一起学习,一起进步~
本篇文章为团队成员原创文章,请不要擅自盗取!

原创文章,作者:mOon,如若转载,请注明出处:https://www.moonsec.com/4890.html

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息