简介
FOFA是一款网络空间测绘的搜索引擎,旨在帮助用户以搜索的方式查找公网上的互联网资产。
FOFA的查询方式类似于谷歌或百度,用户可以输入关键词来匹配包含该关键词的数据。不同的是,这些数据不仅包括像谷歌或百度一样的网页,还包括像安全设备,摄像头、打印机、数据库、操作系统,中间件等资产。
网络空间测绘可以被认为是网络空间的“MAP”。就像谷歌地图或高德地图通过卫星图像对地形进行测绘,网络空间测绘也是通过技术探针(爬虫)对全球网络资产进行探测。
然而,网络空间分为公网和内网。FOFA主要针对公网上的资产进行探测,类似于谷歌地图上的建筑物(IP地址),虽然可以看到建筑物的外部结构和规模,但无法了解内部的情况。要想知道内部情况必须经过授权才行。
FOFA的作用之一就是对企业所有暴露在公网的暴露面进行梳理,帮助企业最大程度上保护自己的互联网资产。
举例来说,就像病毒可以通过多种渠道侵入人体,企业设备也可能存在漏洞被黑客攻击。虽然企业可以通过防护措施减少暴露面,如戴口罩和防护服,但黑客仍然可能通过"小伤口"或"气溶胶"入侵企业内网。类似地,企业设备也可能存在多种暴露面,从而存在被黑客攻击的风险。
类比于医生检测疾病的方法,当漏洞出现时,企业可以快速检测自己的资产是否受影响,并及时采取措施防止漏洞被不法分子利用。这有助于企业保护自己的网络安全。
当然除了企业自己对自己的资产进行梳理和保护外,有一批叫做白帽子的团体也会通过FOFA进行漏洞挖掘。他们就像一个个猎手一样,当他们发现某个产品有通用型漏洞的时候,可以通过FOFA的搜索快速地收集到这个产品在全网的资产总量和地区分布,对漏洞影响范围进行判断,并帮助企业应对其网络安全的问题。
语法
直接参考官方的即可:这个地方建议直接官网查看,因为可能会有更新
https://fofa.info/
直接输入查询语句,将从标题,html内容,http头信息,url字段中搜索
• title="abc" 从标题中搜索abc。例:标题中有北京的网站
• header="abc" 从http头中搜索abc。例:jboss服务器
• body="abc" 从html正文中搜索abc。例:正文包含Hacked by
• domain="qq.com" 搜索根域名带有qq.com的网站。例: 根域名是qq.com的网站
• host=".gov.cn" 从url中搜索.gov.cn,注意搜索要用host作为名称。例: 政府网站, 教育网站
• port="443" 查找对应443端口的资产。例: 查找对应443端口的资产
• ip="1.1.1.1" 从ip中搜索包含1.1.1.1的网站,注意搜索要用ip作为名称。例: 查询IP为220.181.111.1的网站; 如果想要查询网段,可以是: ip="220.181.111.1/24",例如查询IP为220.181.111.1的C网段资产
• protocol="https" 搜索指定协议类型(在开启端口扫描的情况下有效)。例: 查询https协议资产
• city="Hangzhou" 搜索指定城市的资产。例: 搜索指定城市的资产
• region="Zhejiang" 搜索指定行政区的资产。例: 搜索指定行政区的资产
• country="CN" 搜索指定国家(编码)的资产。例: 搜索指定国家(编码)的资产
• cert="google" 搜索证书(https或者imaps等)中带有google的资产。例: 搜索证书(https或者imaps等)中带有google的资产
• banner=users && protocol=ftp 搜索FTP协议中带有users文本的资产。例: 搜索FTP协议中带有users文本的资产
• type=service 搜索所有协议资产,支持subdomain和service两种。例: 搜索所有协议资产
• os=windows 搜索Windows资产。例: 搜索Windows资产
• server=="Microsoft-IIS/7.5" 搜索IIS 7.5服务器。例: 搜索IIS 7.5服务器
• app="海康威视-视频监控" 搜索海康威视设备,更多app规则。例: 搜索海康威视设备
• after="2017" && before="2017-10-01" 时间范围段搜索。例: 时间范围段搜索,注意: after是大于并且等于,before是小于,这里after="2017" 就是日期大于并且等于 2017-01-01 的数据,而 before="2017-10-01" 则是小于 2017-10-01 的数据
• asn="19551" 搜索指定asn的资产。例: 搜索指定asn的资产
• org="Amazon.com, Inc." 搜索指定org(组织)的资产。例: 搜索指定org(组织)的资产
• base_protocol="udp" 搜索指定udp协议的资产。例: 搜索指定udp协议的资产
• is_ipv6=true 搜索ipv6的资产,只接受true和false。例: 搜索ipv6的资产
• is_domain=true 搜索域名的资产,只接受true和false。例: 搜索域名的资产
• ip_ports="80,443" 或者 ports="80,443" 搜索同时开放80和443端口的ip资产(以ip为单位的资产数据)。例: 搜索同时开放80和443端口的ip
• ip_country="CN" 搜索中国的ip资产(以ip为单位的资产数据)。例: 搜索中国的ip资产
• ip_region="Zhejiang" 搜索指定行政区的ip资产(以ip为单位的资产数据)。例: 搜索指定行政区的资产
• ip_city="Hangzhou" 搜索指定城市的ip资产(以ip为单位的资产数据)。例: 搜索指定城市的资产
• ip_after="2019-01-01" 搜索2019-01-01以后的ip资产(以ip为单位的资产数据)。例: 搜索2019-01-01以后的ip资产
• ip_before="2019-01-01" 搜索2019-01-01以前的ip资产(以ip为单位的资产数据)。例: 搜索2019-01-01以前的ip资产
高级搜索:可以使用括号 和 && || !=等符号,如
title="powered by" && title!=discuz
title!="powered by" && body=discuz
( body="content=\"WordPress" || (header="X-Pingback" && header="/xmlrpc.php" && body="/wp-includes/") ) && host="gov.cn"
新增==完全匹配的符号,可以加快搜索速度,比如查找qq.com所有host,可以是domain=="qq.com"
相关搜索案例
搜索后台
title="后台管理"
从http头中搜索
header="weblogic"
header="apche"
header="nginx"
header="tomcat"
从html正文中搜索
body="注册"
从url中搜索关键字
host="jd.com"
搜索端口
port="7001"
搜索IP
ip="172.16.0.1" 从ip中搜索包含172.16.0.1的网站,注意搜索要用ip作为名称。
ip=”172.16.0.1/8″
ip=”172.16.0.1/16″
ip=”172.16.0.1/24″
搜索指定协议类型
protocol="ftp"
搜索指定城市的资产
city="Chengdu"
搜索指定行政区的资产
region="MianYang"
特别注意:搜索城市时填写城市的全称,首字母必须大写!
搜索指定国家(编码)的资产
country="CN"
搜索证书中带有的资产
cert="google"
搜索操作系统类型
os="Linux". 搜索Linux资产
搜索服务器版本
server=="Microsoft-IIS/7.5" # 搜索IIS 7.5服务器。
server="Apache" # Apach的高危漏洞,通过搜索去统计Apache
搜索指定设备名称
app="海康威视-视频监控" #搜索海康威视设备
搜索中国的ip资产
ip_city="Chengdu"
以上搜索都可以通过相关的运算符进行结合使用:
如:
body="loading-wrap" && body="balls" && is_domain=true && cert.is_valid=true
# 这个的意思就是:
# body 里面包含loading-wrap且饱含balls
# 且有域名
# 且有证书
# 这样的资产就比较靠谱
FOFA规则集
资产都有特征,如:IP地址、域名、网站标题、网站图标等等,FOFA对这些特征进行组合和整理,形成了一个个规则指纹集。只需要在搜索框里面输入关键字,就能弹出来,然后点击就能直接搜索:
Feature ID
除此之外,FOFA还有一个很棒的引擎功能,叫做FID,全称为Feature ID。
对于一个网站来说,它会拥有很多自己的信息,我们给他建立一个档案(FID),把他的”性别”、”年龄”、”工作类型” 等信息放在档案(FID)里面。再通过这个档案去匹配所有具备这些相似特征的网站。
FOFA平台上的FID特征是FOFA自己聚合多个关键特征形成的标签,而不是网站原有的标签。
FID能帮你找到更多拥有相同特征的资产。
随便点击一个,就会收集到相同指纹的资产:
找真实IP
大概思路:
title=“京东”,发现由很多IP地址访问网站,
查看证书(024fxxxxxxxxxxxx
证书转成10进制(3030723xxxxxxxxx)
cert=“3030723xxxxxxxxx”
转换:
搜索:
以上就是FOFA的一些使用技巧,后续还会继续更新!