跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

基于 Fofa 与 Rad 的自动化漏洞扫描实战流程

一种基于 Fofa、Rad、Burp 和 Xray 的自动化漏洞扫描流程。首先利用 Fofa 采集目标资产,通过 Python 脚本清洗 URL 格式;其次配置 Burp Suite 作为代理,设置被动扫描插件及流量转发端口;最后结合 Xray 被动扫描器,使用 Python 脚本批量调用 Rad 爬虫进行自动化探测。该方案实现了从资产发现到漏洞检测的全链路自动化,适用于安全测试场景下的效率提升。

片刻发布于 2025/2/6更新于 2026/8/336 浏览
基于 Fofa 与 Rad 的自动化漏洞扫描实战流程

原理

本方案的核心原理是利用资产采集工具批量获取目标域名或 IP,通过爬虫工具(Rad)将流量转发至 Burp Suite,再经由 Burp 的被动扫描插件将数据包透传给 Xray 进行漏洞检测。通过 Python 脚本实现资产清洗与批量执行,达到自动化批量扫描的目的。

使用到的工具

  • Fofa:用于批量采集目标资产(如 edu 域名)。
  • Rad:浏览器爬虫工具,支持自动抓取页面并发送请求。
  • Burp Suite:作为中间代理,配置被动扫描插件及流量转发。
  • Xray:被动扫描器,接收来自 Burp 的流量进行深度分析。
  • Python:用于编写资产处理脚本及批量执行命令。

步骤一:资产采集与清洗

1. 资产采集

使用 Fofa 采集目标资产。以教育类域名(edu)为例,可根据实际需求调整查询语句。采集结果通常为 IP 列表。

2. 资产格式整理

Rad 爬虫需要标准的 URL 格式(http:// 或 https://)。原始采集数据往往缺少协议头,需进行批量处理。

Python 脚本示例

以下脚本用于读取包含 IP 的文件,并为每一行添加 http:// 前缀:

import os

def add_protocol(input_file, output_file):
    with open(input_file, 'r', encoding='utf-8') as f_in:
        lines = f_in.readlines()
    
    processed_lines = []
    for line in lines:
        ip = line.strip()
        if ip and not ip.startswith('http'):
            # 默认添加 http,实际可根据情况判断是否加 https
            processed_lines.append(f'http://{ip}\n')
        else:
            processed_lines.append(line)
    
    with open(output_file, 'w', encoding='utf-8') as f_out:
        f_out.writelines(processed_lines)

if __name__ == '__main__':
    add_protocol('assets.txt', )
'assets_cleaned.txt'

运行脚本后,生成的 assets_cleaned.txt 文件可直接放入 Rad 工作目录供后续调用。

步骤二:Burp 配置

为了配合 Rad 和 Xray 的联动,需要对 Burp Suite 进行如下配置:

  1. 安装插件:建议安装 Passive Scan 相关插件以提高漏扫覆盖率,例如 Passive HTTP Scanner 等。
  2. 设置代理:
    • 监听端口:8080(与 Rad 响应端口一致)。
    • 确保 Burp 处于 Running 状态。
  3. 配置流量出口:
    • 设置 Proxy Listener 监听 7777 端口,用于接收 Burp 转发的数据包给 Xray。
    • 在 Burp 的 Proxy Options 中,添加新的 Listener,绑定地址为 0.0.0.0,端口 7777。

步骤三:Xray 与 Rad 联动

1. 开启 Xray 被动扫描

修改 Xray 的配置文件 config.yaml,启用被动扫描模式并指定监听端口。

# config.yaml 片段
mode: passive
listen: 7777
# 注意:部分版本默认不扫描 edu 域名,需根据规则调整
rules:
  - name: scan_edu
    matchers:
      - type: regex
        expression: \.edu$

启动 Xray 服务:

xray server -c config.yaml

2. 批量执行爬虫

由于命令行无法直接循环输入大量 URL,需编写 Python 脚本批量调用 Rad 命令。

批量执行脚本示例
import subprocess
import time

def run_rad_scan(url_list_file, thread_num=5):
    with open(url_list_file, 'r', encoding='utf-8') as f:
        urls = [line.strip() for line in f if line.strip()]
    
    print(f"Total URLs: {len(urls)}, Threads: {thread_num}")
    
    for url in urls:
        try:
            # 假设 rad 命令结构,实际路径请根据安装位置调整
            cmd = f"rad -u {url} --proxy http://127.0.0.1:8080"
            result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
            if result.returncode != 0:
                print(f"Error scanning {url}: {result.stderr}")
            else:
                print(f"Scanned {url}")
            
            # 控制频率,避免被封禁
            time.sleep(1)
        except Exception as e:
            print(f"Exception occurred: {e}")

if __name__ == '__main__':
    # 第 28 行对应资产文件名,第 30 行对应线程数
    run_rad_scan('assets_cleaned.txt', thread_num=5)

3. 运行效果

脚本运行后,Rad 会依次访问每个 URL,流量经过 Burp 代理,最终由 Xray 进行被动分析。扫描结果可在 Xray 的控制台或日志文件中查看。

注意事项

  1. 合规性:仅对授权的目标进行测试,严禁对未授权网站进行扫描。
  2. 稳定性:批量扫描可能导致目标服务器压力过大,建议控制并发线程数。
  3. 配置检查:确保 Burp 与 Xray 的端口未被占用,且防火墙允许相应端口的通信。
  4. 规则调整:Xray 默认可能过滤特定域名,需根据实际情况修改 config.yaml 中的匹配规则。

目录

  1. 原理
  2. 使用到的工具
  3. 步骤一:资产采集与清洗
  4. 1. 资产采集
  5. 2. 资产格式整理
  6. Python 脚本示例
  7. 步骤二:Burp 配置
  8. 步骤三:Xray 与 Rad 联动
  9. 1. 开启 Xray 被动扫描
  10. config.yaml 片段
  11. 注意:部分版本默认不扫描 edu 域名,需根据规则调整
  12. 2. 批量执行爬虫
  13. 批量执行脚本示例
  14. 3. 运行效果
  15. 注意事项
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • OpenClaw 多机器人多 Agent 模式:构建 AI 助手团队
  • Agent AI 探索多模态交互前沿领域综述(一)
  • AI 大模型入门教程:从零基础到精通
  • DeepSeek-R1 如何用 29 万美元成本改写 AI 推理规则
  • 本地搭建简易 AI 问答系统:Java 核心与 Python 辅助
  • Python 基础:列表与元组的区别及操作
  • 贪心算法实战:柠檬水找零、数组减半与最大数拼接
  • AI 编程工具选型:Copilot、Cursor、Codex 核心差异
  • 腾讯混元图像 3.0 图生图模型开源,LMArena 评测跻身全球第一梯队
  • Java 并发性能优化:如何避免伪共享
  • 员工管理系统设计与实现
  • HDFS 存储原理:冗余策略、数据存取与错误恢复
  • 数据结构:栈和队列的相互实现
  • 亮数据爬虫 API 深度评测:高并发采集与反爬绕过方案
  • FPGA 摄像头采集处理显示指南:OV5640 至 HDMI 实时显示
  • 小厂架构师实战:AI Agent 辅助 Bug 定位与修复
  • 大模型基础教程:核心概念与学习路径详解
  • 使用 AI 生成个性化头像的完整技术指南
  • Qwen2 大模型指令微调入门实战(附完整代码)
  • OpenClaw 本地部署与远程监控实操教程
  • 相关免费在线工具

    • curl 转代码

      解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

    • Base64 字符串编码/解码

      将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

    • Base64 文件转换器

      将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

    • Markdown转HTML

      将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

    • HTML转Markdown

      将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

    • JSON 压缩

      通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online