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

admin 2022年5月7日12:38:40评论113 views字数 4175阅读13分55秒阅读模式

微信公众号:渊龙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 = [email protected]
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$ python3 fofamap.py -q 'title="Apache APISIX Dashboard"'


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

FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘
02
-o 自定义输出文件名(默认为fofa.xlsx)
1$ python3 fofamap.py -q 'title="Apache APISIX Dashboard"' -o 结果.xlsx

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

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

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

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

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

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

1$ python3 fofamap.py -ico 网站url

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

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

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

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

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

1$ 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$ 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$ python3 fofamap.py -q 'app="discuz"'   

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

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


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


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

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

原文始发于微信公众号(渊龙Sec安全团队):FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月7日12:38:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   FofaMap-实现资产探测到漏洞扫描的全流程漏洞发掘https://cn-sec.com/archives/983428.html

发表评论

匿名网友 填写信息