分享

FoFaX,一款让FoFa动起来的命令行工具

 冲天香阵 2022-02-25
图片

图片

XieCat,一群想为信息安全做点微末贡献的理想主义者。

0x01 简介

FoFaX 是一款使用 GO 编写的命令行 FoFa 查询工具,在支持 FoFa 查询规则的基础上增加了独有的 Fx 语法来方便使用者编写自己的查询规则,目前已经内置了部分常用的规则。除此之外还有联动其他安全工具在内的多个实用功能。

主要的功能有:

  • 基本 FoFa 语法查询

  • Icon Hash 本地/在线计算查询

  • URL 证书计算查询

  • 排除国内资产

  • 一键浏览器中打开

  • 联动其他安全工具

  • 更多(等待您使用后的反馈)……

除此之外,用户可以通过 yaml 格式的配置文件编写自己的特定 Fx 查询规则来自定义 Fx 语法查询。

0x02 下载配置

2.1 下载

 按照自己的系统架构选择相应的发行版本下载:

下载地址:https://github.com/xiecat/fofax/releases

注:也可以编译安装
go install -v github.com/xiecat/fofax/cmd/fofax@latest

2.2  配置

FoFa 账号的配置分为两种第一种可以通过环境变量配置。第二种可以直接在配置文件中填写账号密码:

  • 环境变量配置

FOFA_EMAIL=xxx@xxx.xxFOFA_KEY=xxxxxxxxxxxxxxxxxxxxxxxxx

环境变量配置后 fofax -h 会看到默认参数中有此值

  • 文件配置

第一次运行 FoFaX 命令 windows 下会在同级目录下生成一个 fofax.yaml 的配置文件,Linux下位于 ~/.config/fofax/fofax.yaml

一般来说只需要配置完 emailkey 就可以了。

# fofa api emailfofa-email: ******@gmail.com
# fofa api keyfofakey: ***************

0x03 快速使用

FoFaX 支持的输入源有管道、参数、文件。输入类型有 FoFa 语句、 Fx 语句、icon 文件,icon URL、cert URL 和从 FoFa 网站上下载的数据文件(csv/json)格式。

3.1  FoFa 语句查询

FoFaX 命令行参数可以分为四种配置项、输入源、过滤参数、输出格式:

fofax [option] [input] [filter] [output]
fofax [[-email -key]/-config] [-q/-uc/-iu/-if/-fcf/-qf/-ucf/-iuf] [-fs/-i/-ec] [-ffi/-fto/-ff]

FoFa 语句支持从管道、参数、文件中输出。

  • 从管道中查询

查询 app='APACHE-Solr',指定输出 10 条(不加参数默认输出 100 条)并且排除中国资产:

echo 'app='APACHE-Solr'' | fofax -fs 10 -ec #查询 app='APACHE-Solr',排除中国资产并指定输出10条(不加参数默认输出100条)
  • 从参数中查询

查询 app='APACHE-Solr',指定输出 10 条(不加参数默认输出 100 条)并且排除中国资产:

fofax -q 'app='APACHE-Solr'' -fs 10 -ec
  • 从文件中查询

cat query.txtapp='APACHE-Solr'fofax -qf query.txt -fs 10 -e


3.2 icon 查询

  • 从 URL 中查询

fofax -iu https://www.baidu.com/favicon.ico -fs 5
  • 直接计算本地 icon 文件进行查询

wget https://www.baidu.com/favicon.icofofax -if favicon.ico -fs 5
  • 从 icon URL 文件列表中计算

fofax -iuf icon_url.txt


3.3 网站证书查询

  • 从 URL 中计算 cert 查询

fofax -fs 5 -uc https://www.baidu.com/
  • 从 URL 文件列表中计算

fofax -ucf cert_url.txt

所有的功能官方文档已经做了详尽的说明,其他更多功能和使用方法请移步:https://fofax./guide/

0x04 特色功能

4.1  工具联动

FoFaX 的一大特色功能是能够将通过 FoFaX 查询的结果与常见的漏洞探测工具进行联动,使用一条命令行就能实现从信息收集到漏洞的探测。下图以 Xray 为例,使用 FoFaX 进行批量检测 shiro 反序列化漏洞:

图片

目前,FoFaX 已测试了 httpx、Xray、Nuclei 等在内的 5 款常用工具,可以正常联动,更多测试过的工具持续更新中。详细的联动语法见:https://fofax./link/


4.2  Fx 语法

不少 FoFa 工程师在使用过程中基本都会总结不少的查询语句。我相信很多人在使用过程中都要粘贴复制,十分麻烦。我们在 FoFaX 设计过程中就考虑到这个情况,出于使用者对 FoFa 语法已经熟悉,我们直接解析了 FoFa 的语法,在语法中直接嵌入了 Fx 语句,显而易见,这样我们在使用过程中就可以把 Fx 语句混用到 FoFa 语法中,极大提高了语句的灵活性。相信在使用过程中大家会发现它的便利性。

FoFaX 语法库截图如下,目前已经内置 103 条规则语法,其中包含了多种未授权访问漏洞资产、log4j2 漏洞资产等语法。

图片
  • FoFaX 中使用 Fx

Fx 语句可以出现在任何可以使用 FoFa 作为输入源的地方但是必须加上 -fe 参数来指明使用了 Fx 语句Fx 可以接受的值除了 id 以外还有 query 字段:

fofax -q 'fx='fx-2021-1015'' -fe -fs 2fofax -q 'fx='redis-unauth'' -fe -fs 2
  • 列出 Fx 规则

fofax -l
  • 搜索 Fx 规则

fofax -s 'unauth'

搜索中共有几个标签可以使用分别为:

idquery # 简写为 qruleName # 简写为 rruleEnglish #简写为 reauthor #简写为 atag # 简写为 t

他们之间用分号分开,其中考虑到 idquerytag 的特殊性这里使用全匹配的模式。他们之间是 and 的关系。

  • 搜索 tag 为 unauthFx 语句

fofax -s 'tag=unauth'
  • 显示 Fx 规则详情

使用 -ss 参数可以接受的内容为 id  的值或者 query 值。

  • 显示 query 名称为 redis-unauth 语句的详情

fofax -ss 'redis-unauth'

更多 Fx 语法的查询、使用以及编写见:https://fofax./fx/search.html

  • 浏览器打开

在查询时可以随时加 -open 参数一键打开 FoFa 网站访问所需内容。

0x05 F&Q

5.1  windows下的转义问题

在windows下使用一定要注意转义,windows下的输入 '' 加转义会被吃掉:

fofax -q 'app='Grafana'' # 输入的内容FoFa input Query of: app=Grafana #程序实际接收的内容

解决这个问题需要转义:

fofax -q 'app=\'Grafana\'' -debug # 输入的内容FoFa input Query of: app=Grafana #程序实际接收的内容


5.2  提示语法错误

➜ Desktop ./fofax -q fx='redis-unauth'2021/12/30 19:53:47 [INFO] Please add the -fe parameter to use the fofa extended syntax2021/12/30 19:53:47 [ERRO] FoFa Response ErrMsg: 查询语法错误

一般有几种情况。第一种是使用 Fx 语句未加 -fe 参数。第二种自己写的语句有问题,可以使用 -open 打开 FoFa 网站试一下。

0x06 写在最后

FoFaX 是 XieCat 正式发布的第二款安全工具,我们和大多数用户使用 FoFa 的最终目的一样:为了获取各种各样的数据,然后进行分析,得到有用的结果。但发现这个过程有两个问题:一个是语句积累,一个是数据格式。有时候,因为对于语法的不熟悉,自己找不到相关数据,需要在互联网中查询相关的搜索语法;另外一方面找到了想要的数据之后还要进行格式转换以导入到其他工具中来进行下一步的分析;再者,不同的工具输入的格式也不尽相同...于是 FoFaX 工具为了解决这些问题应运而生:一是容易探索,二是易于对接工具。

现阶段,FoFaX 致力于通用规则整理和联动工具对接上,争取让数据无障碍的输出到主流工具中进行分析和探索。下阶段,我们着重在整理的数据中进行二次探索,最大化、最少次的获取数据的同时能关联到更多有趣的数据,让数据的输出更准确。

我们欢迎每个人参与进来,一起打造一个自己的 FoFa 语法库。除了提交语法之外,更多的第三方工具联动您也可以参与进来,将联动方式提交给我们。最后如果有什么有趣的新功能或者新需求,也都可以通过提 issues / FoFaX / Xiecat 公众号后台提交给 Xiecat 团队,我们经过评估之后下个版本就可能实现你要的功能。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多