安全工程师必备:用Fofax+Fx语法打造专属资产探测规则(避坑指南)

张开发
2026/4/16 13:58:33 15 分钟阅读

分享文章

安全工程师必备:用Fofax+Fx语法打造专属资产探测规则(避坑指南)
安全工程师必备用FofaxFx语法打造专属资产探测规则避坑指南在网络安全攻防对抗中资产探测的精准度直接决定了后续渗透测试的效率。传统工具往往面临两大痛点一是面对海量数据时难以有效过滤噪声二是针对特定场景缺乏灵活的规则定制能力。Fofax作为FoFa的命令行增强版通过引入Fx语法和YAML配置机制为安全工程师提供了从基础查询到高级规则编写的完整解决方案。1. 环境配置与核心参数解析1.1 安装优化实践Linux环境下推荐使用以下命令链完成安装与配置wget https://github.com/xiecat/fofax/releases/download/v0.2.1/fofax_v0.2.1_linux_amd64.tar.gz tar -zxvf fofax*.tar.gz -C /usr/local/bin/ chmod x /usr/local/bin/fofax mkdir -p ~/.config/fofax配置文件~/.config/fofax/fofax.yaml需要特别注意两个关键字段fofa-email: your_registered_emaildomain.com # 注册于fofa.info的账号 fofa-key: 32位API_KEY # 从个人中心获取常见配置陷阱密钥泄露风险切勿将配置文件上传至公开Git仓库权限问题chmod 600保护配置文件代理设置国际版用户需配置proxy: http://127.0.0.1:80801.2 参数组合技实战通过管道符实现复杂查询是Fofax的特色优势echo titleAdmin countryUS | fofax -fs 50 -ec -fto关键参数对照表参数作用典型场景-e排除蜜罐红队渗透-ec排除中国IP海外资产测绘-ffi提取完整URL漏洞影响面评估-fto仅显示标题目标快速筛选-fs结果数量控制数据量2. Fx语法深度应用2.1 规则编写范式新建规则模板生成命令fofax -g ~/.config/fofax/rules/custom_rule.yaml典型YAML规则结构示例name: SpringBoot Actuator Exposure description: Detect exposed SpringBoot actuators query: headerX-Application-Context bodymanagement tags: [springboot, exposure] author: your_team risk_level: high规则设计要点使用组合多个特征条件优先选择header等低误报字段通过tags实现分类管理设置risk_level便于后续处理2.2 复合规则实战案例针对Log4j2漏洞的增强型检测规则name: Log4j2 RCE Potential query: (headerjndi: || body${jndi:) (port8080 || port8443) filter: -countryCN tags: [rce, critical]该规则实现了漏洞特征检测JNDI字符串常见端口限定国内IP排除风险等级标记3. 高级过滤技巧3.1 智能去重方案结合jq处理JSON输出实现多维去重fofax -q appJenkins -json | jq -r .results[] | [.ip, .port] | tsv | sort -u去重维度对比表维度命令适用场景IPPortjq -r [.ip, .port]基础服务发现证书HASHjq -r .cert企业资产梳理标题文本jq -r .title应用识别IconHashjq -r .icon_hash子域名关联3.2 动态结果处理实时处理管道示例fofax -q fxredis_unauth -ffi | \ while read url; do redis-cli -h ${url%:*} -p ${url##*:} INFO | grep redis_version done这个流程实现了使用Fx规则检测Redis未授权提取完整URL自动连接获取版本信息输出漏洞验证结果4. 典型场景解决方案4.1 蜜罐识别体系构建分层检测规则# 初级检测协议特征 name: Honeypot Basic Detection query: protocolhoneypot || titleHoneypot # 高级检测行为特征 name: Advanced Honeypot Check query: response_time10 bodyfake_login tags: [honeypot]配合排除参数使用fofax -q appMySQL -e -fs 1004.2 海外资产测绘地理定位组合查询echo appExchange (countryUS || countryDE) | \ fofax -ec -fs 200 -ffi overseas_exchange.txt结果增强技巧cat overseas_exchange.txt | \ xargs -I{} sh -c echo -n {} ; curl -sI {} | grep Server:4.3 漏洞影响面评估以Spring Cloud Gateway漏洞为例name: CVE-2022-22947 query: headerSpring Cloud Gateway port8080 reference: https://nvd.nist.gov/vuln/detail/CVE-2022-22947影响统计命令fofax -q fxCVE-2022-22947 | wc -l5. 性能优化与错误处理5.1 查询效率提升分页策略for i in {1..5}; do fofax -q appWordPress -fs 100 -page $i results.txt sleep 1 done缓存利用mkdir -p ~/.cache/fofax fofax -q domaintarget.com -o ~/.cache/fofax/target_scan.json5.2 常见错误排查错误现象解决方案API限额耗尽添加-t 30设置请求间隔证书验证失败配置skip_verify: true结果不完整检查-fs与-page配合使用规则加载失败验证YAML文件缩进格式在最近一次金融行业攻防演练中通过组合使用-ec参数和自定义Fx规则我们成功将海外分支机构的暴露面从300个IP缩减到27个关键系统大幅提高了红队行动效率。特别值得注意的是当处理百万级数据量时建议将结果导入Elasticsearch进行可视化分析这比直接处理文本效率提升至少10倍。

更多文章