fangzhan:安卓平台上的综合性侦查测试利器

admin 2026-03-09 01:54:22 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: fangzhan是一款基于Flutter开发的安卓端综合性渗透测试工具,集成了网站克隆、数据捕获、内网穿透及探针功能。它支持智能仿站、实时监控用户交互、FRP内网穿透及设备信息收集。文章详细剖析了其项目架构、核心模块与技术栈,并提供了安装部署指南,为移动端安全评估提供了高效便捷的解决方案。 综合评分: 88 文章分类: 渗透测试,安全工具,移动安全,内网渗透,社会工程学


cover_image

fangzhan:安卓平台上的综合性侦查测试利器

原创

子午猫 子午猫

网络侦查研究院

2026年3月8日 08:26 湖南

#

在网络侦查领域,针对安卓平台的渗透测试工具对于保障移动应用和网络环境的安全至关重要。fangzhan,一款由荧惑师傅开发的基于Flutter的综合性渗透测试工具,以其丰富的功能和先进的技术架构,为安全研究人员提供了强大的支持。

0x00项目概况

fangzhan的项目地址为https://github.com/yiyihuohuo/fangzhan ,它以“荧惑社工仿站”为名称,展现了其在社工渗透测试方面的独特定位。该工具基于Flutter开发,旨在打造一个功能全面的移动端渗透测试平台,涵盖网站克隆、数据捕获、内网穿透等核心功能,助力安全研究人员合法地开展渗透测试与安全评估工作。

0x01界面与核心特性

0x0101直观的界面设计

fangzhan拥有多个功能界面,为用户提供了清晰便捷的操作体验:

  1. 主控制台:作为整个工具的核心操作区域,用户可以在这里对各项功能进行总体把控和调度。
  2. 仿站管理:集中管理网站克隆相关的操作,从目标选择到克隆后的站点管理,都能在此完成。
  3. 数据捕获:负责监控和收集用户与仿制网站交互过程中的各种数据,是获取关键信息的重要模块。
  4. 隧道配置:用于设置内网穿透相关的参数和连接,确保在不同网络环境下能够实现数据的有效传输。
  5. 设置:用户可以在该界面进行系统设置,包括一些功能的开关、参数调整等。

0x0102强大的核心特性

  1. 网站仿制功能
  • 智能克隆:通过自动下载并重构目标网站的完整结构,能够快速复制出与原网站相似度极高的副本。这一过程不仅涉及页面的基本架构,还包括深层次的结构细节,确保仿制网站在外观和功能上尽可能接近原网站。
  • 资源处理:对CSS、JS、图片等静态资源进行智能处理。它会分析这些资源在原网站中的引用关系和作用,然后在仿制过程中进行相应的调整和整合,保证资源在新环境下的正常加载和使用。
  • 链接重写:自动修正相对路径和绝对路径,使得在本地搭建的仿制网站中,所有链接都能正确指向相应的资源和页面。这一功能解决了网站克隆过程中常见的路径混乱问题,确保用户在访问仿制网站时不会出现页面无法打开或资源加载失败的情况。
  • 代理注入:无缝集成数据捕获代码,在用户访问仿制网站时,能够实时捕获用户的操作数据,为后续的分析提供有力支持。这种注入方式巧妙地隐藏在网站运行过程中,不影响用户正常使用网站的体验。
  1. 数据捕获系统
  • 全方位监控:涵盖表单提交、网络请求、用户输入等所有与用户交互相关的数据捕获。无论是简单的登录表单,还是复杂的AJAX请求,都能被精准捕获。
  • 实时捕获:支持实时输入监控和表单快照,能够即时获取用户在输入框中的每一个字符,以及表单提交瞬间的完整数据。这对于分析用户行为和获取关键信息非常重要。
  • 智能过滤:自动过滤无用数据,只保留有价值的信息。在大量的用户交互数据中,存在许多系统字段和无意义的信息,通过智能过滤,能够将重点聚焦在对安全研究有价值的数据上,提高分析效率。
  • 多格式支持:支持POST、GET、PROBE等多种数据类型分类,适应不同类型的网络请求和数据传输方式,确保无论目标网站采用何种数据交互模式,都能有效捕获。
  • 数据导出:支持JSON格式数据导出和分析,JSON格式具有良好的可读性和通用性,方便与其他数据分析工具或平台进行对接,进一步挖掘数据背后的信息。
  1. 内网穿透服务
  • FRP集成:内置Fast Reverse Proxy客户端,借助FRP的强大功能实现内网穿透。FRP在网络穿透领域具有高效、稳定的特点,为在不同网络环境下建立连接提供了可靠保障。
  • 多协议支持:支持HTTP、HTTPS、TCP等多种协议,能够适应不同类型的网络服务和应用场景。无论是基于HTTP的网页服务,还是基于TCP的自定义应用,都能通过内网穿透实现访问。
  • 配置管理:提供灵活的服务器配置和隧道参数设置,用户可以根据实际需求调整服务器地址、端口、认证信息等参数,以及隧道的协议类型、本地端口映射等设置,满足多样化的使用需求。
  • 状态监控:实时显示隧道连接状态和流量信息,让用户随时了解内网穿透的运行情况。通过直观的状态展示,用户可以及时发现连接异常或流量异常等问题,并采取相应措施进行解决。
  1. 探针功能
  • GPS定位:获取目标设备地理位置信息,这在一些涉及地理定位相关的安全研究中具有重要意义。例如,分析特定地区用户的访问行为或检测应用是否存在地理位置相关的安全漏洞。
  • 设备信息:收集设备硬件和系统信息,包括设备型号、操作系统版本、CPU架构等,帮助安全研究人员了解目标设备的基本情况,为后续的漏洞分析和测试提供参考。
  • 剪贴板监控:监控剪贴板内容变化,及时捕获用户复制粘贴的信息。在某些场景下,用户可能会将敏感信息复制到剪贴板,通过监控可以发现潜在的信息泄露风险。
  • 摄像头检测:检测设备摄像头权限状态,了解设备的摄像头使用情况,防止恶意应用未经授权调用摄像头,保护用户隐私。

0x02项目架构剖析

fangzhan的项目架构设计合理,各个模块分工明确,协同工作:

  1. lib/目录:是整个项目的核心代码所在:
  • main.dart:作为应用入口,负责启动整个应用程序,初始化相关配置和服务。
  • providers/:用于状态管理,其中app_provider.dart负责管理全局应用状态,确保各个界面和功能模块之间的数据一致性和交互顺畅。
  • screens/:包含了所有的用户界面,如dashboard_screen.dart(主控制台界面)、site_management_screen.dart(仿站管理界面)等,每个界面都对应着特定的功能模块,为用户提供操作接口。
  • services/:核心服务层,涵盖了网站克隆(site_service.dart)、数据捕获(capture_service.dart)、HTTP服务器(server_service.dart)、内网穿透(tunnel_service.dart)等各种核心功能的实现。同时还包括数据库操作(database_helper.dart)、配置文件管理(config_file_service.dart)等辅助服务。
  • theme/:用于主题配置,app_theme.dart定义了应用的整体外观风格,包括颜色、字体等设置,提升用户体验。
  1. assets/目录:存放一些示例文件和原生库:
  • sample_site/:包含示例网站文件,如index.html(测试登录页面)和test_capture.html(数据捕获测试页面),方便用户了解和测试工具的功能。
  • ngrok/:存放Ngrok原生库(针对Android平台),虽然文档中未详细提及Ngrok的使用,但它可能作为内网穿透的备用方案或补充功能。
  • frp.ini:FRP配置模板,为用户配置FRP服务器提供了一个初始的框架,用户可以根据实际需求进行修改。
  1. android/目录:主要是Android平台相关的配置,其中**frpc_native/**存放原生FRP客户端,用户可能需要根据实际情况对原生库文件进行配置,以适配不同的设备和网络环境。

0x03功能模块深度解析

  1. 网站仿制系统
  • 目标分析:在克隆网站之前,先对目标网站的结构和资源依赖进行深入分析。通过解析HTML文档,了解页面的层次结构、元素关系以及对CSS、JS、图片等资源的引用情况,为后续的资源下载和路径重写提供基础。
  • 内容下载:根据目标分析的结果,批量下载HTML、CSS、JS、图片等资源。在下载过程中,会根据资源的类型和引用关系,合理安排下载顺序和存储位置,确保资源的完整性和可用性。
  • 路径重写:智能处理相对路径和绝对路径转换,这是网站克隆中的关键步骤。它会分析原网站中路径的表示方式,根据本地搭建的仿制网站的结构和访问方式,对路径进行调整。例如,将原网站中基于域名的绝对路径转换为相对路径,或者根据新的服务器配置修改路径中的端口号等信息。
  • 代码注入:在仿制网站的页面中无缝注入数据捕获和探针代码。通过在HTML文档的特定位置插入JavaScript代码片段,实现对用户操作的监控和数据捕获。同时,探针代码可以收集一些设备和环境相关的信息,为安全分析提供更多维度的数据。
  • 本地服务:为了让仿制网站能够在本地环境中正常访问,提供HTTP/HTTPS本地服务器。通过配置服务器的端口、域名等参数,使得用户可以通过浏览器访问本地搭建的仿制网站,模拟真实的网络访问场景。
  1. 数据捕获引擎
  • 表单监控:实时监控所有表单提交行为,当用户在仿制网站上填写并提交表单时,捕获引擎会拦截表单数据,包括表单中的各个字段及其对应的值。通过分析表单数据,可以了解用户输入的信息,如用户名、密码、联系方式等,从而发现潜在的安全风险。
  • 输入捕获:不仅能够捕获用户在输入框中的实时输入,还能记录输入的时间、顺序等信息。这对于分析用户的输入习惯和行为模式非常有帮助,例如检测是否存在暴力破解密码的行为。
  • 网络拦截:拦截并记录所有AJAX/Fetch请求,随着现代网页应用越来越多地使用AJAX和Fetch进行数据交互,这一功能能够捕获到网页与服务器之间传输的各种数据,包括请求参数、响应结果等。通过分析这些数据,可以发现应用在数据传输过程中是否存在安全漏洞,如敏感信息泄露、未授权访问等问题。
  • 点击追踪:记录用户的点击行为和交互路径,用户在仿制网站上的每一次点击都会被捕获引擎记录下来,包括点击的元素、点击的顺序以及页面跳转情况等。通过分析用户的点击行为,可以了解用户的操作习惯和对网站功能的使用情况,发现潜在的安全隐患,如某些功能是否存在越权访问的风险。
  • 智能过滤:在捕获大量数据的基础上,自动过滤系统字段和无价值数据。系统字段通常是一些与安全分析无关的信息,如浏览器自动生成的一些标识字段。无价值数据可能包括一些重复的、无意义的信息。通过智能过滤,可以减少数据量,提高数据分析的效率和准确性。
  1. 内网穿透管理
  • 服务器配置:允许用户管理多个FRP服务器配置,用户可以根据不同的测试需求和网络环境,添加、修改或删除FRP服务器的相关信息,如服务器地址、端口、认证令牌等。通过灵活配置服务器,可以选择最适合的内网穿透方案。
  • 隧道创建:支持多种协议的隧道创建,根据实际需求选择HTTP、HTTPS、TCP等协议创建隧道。在创建隧道时,需要配置本地端口映射、远程端口等参数,确保本地服务能够通过外网访问。
  • 状态监控:实时监控隧道连接状态,包括连接是否正常、延迟情况、带宽使用等信息。通过直观的状态展示,用户可以及时发现隧道连接出现的问题,如连接中断、带宽不足等,并采取相应的措施进行解决。
  • 日志记录:详细记录连接日志和错误信息,当隧道连接出现问题时,日志可以帮助用户快速定位问题所在。例如,记录连接失败的时间、错误代码、服务器返回的错误信息等,方便用户进行故障排除和问题分析。
  1. 探针系统
  • 地理定位:利用设备的GPS功能获取设备的地理位置信息,在一些涉及地理位置相关的安全测试中,这一功能可以帮助安全研究人员了解目标用户的大致位置,分析特定地区的安全情况,或者检测应用是否存在基于地理位置的安全漏洞。
  • 设备指纹:收集设备硬件和浏览器信息,包括设备的品牌、型号、操作系统版本、浏览器类型、版本等。设备指纹可以唯一标识一台设备,通过分析设备指纹信息,可以了解目标设备的基本情况,为后续的漏洞分析和测试提供参考。
  • 权限检测:检测各种敏感权限状态,如摄像头权限、麦克风权限、存储权限等。通过检测权限状态,可以发现应用是否存在未经授权获取敏感权限的行为,保护用户的隐私和设备安全。
  • 环境分析:分析目标网络环境信息,包括网络类型(WiFi、移动数据等)、网络速度、IP地址等。这些信息可以帮助安全研究人员了解目标设备所处的网络环境,发现潜在的网络安全风险,如网络是否存在中间人攻击的风险等。

0x04技术栈与开发环境

0x0401丰富的技术栈

  1. 核心框架:采用Flutter 3.8+作为跨平台移动应用框架,Flutter以其高效的开发效率、丰富的UI组件库和良好的性能表现,为fangzhan的开发提供了坚实的基础。同时搭配Dart 3.0+编程语言,Dart语言简洁明了,与Flutter框架紧密结合,能够快速实现各种功能需求。
  2. 状态管理:使用Provider ^6.1.2作为状态管理解决方案,它能够方便地在不同界面和功能模块之间共享数据和状态,确保应用程序的状态一致性和数据的高效传递。
  3. 主要依赖:涵盖了多个方面的功能库:
  • dio ^5.4.0:用于HTTP客户端操作,方便与网络进行数据交互,无论是下载网站资源还是发送捕获的数据,都离不开它的支持。
  • sqflite ^2.3.0:实现本地数据库操作,用于存储捕获的数据、配置信息等,方便在本地进行数据管理和查询。
  • webview_flutter ^4.4.1:提供WebView组件,用于在应用内显示网页,特别是在网站仿制和数据捕获过程中,WebView起到了重要的作用,它能够加载仿制的网站页面,并与数据捕获代码进行交互。
  • shared_preferences ^2.2.2:用于本地存储一些简单的配置信息和用户设置,方便应用在不同启动周期之间保存和读取相关数据。
  • path_provider ^2.1.1:辅助进行路径管理,在处理文件存储和资源访问时,能够准确获取不同平台下的文件路径,确保文件操作的正确性。
  • flutter_local_notifications ^17.2.2:实现本地通知功能,当有重要的数据捕获或系统事件发生时,通过本地通知提醒用户,提高用户对工具运行状态的关注度。
  • file_picker ^10.2.0:方便用户选择本地文件,例如在导入配置文件或导出数据时,提供友好的文件选择界面。
  • url_launcher ^6.2.6:用于启动URL,当需要在应用内打开网页链接或调用其他应用时,该库能够实现相应的功能。
  • html ^0.15.4:用于HTML解析,在网站仿制过程中,对目标网站的HTML文档进行解析,提取页面结构和资源信息,离不开这个库的支持。
  • crypto ^3.0.3:提供加密算法,用于对敏感数据进行加密存储,确保数据的安全性。
  • uuid ^4.3.3:生成唯一标识符,在数据管理和跟踪过程中,为不同的数据记录生成唯一的标识,方便进行区分和查询。
  • mime ^1.0.4:处理MIME类型,在处理文件上传、下载和资源类型判断时,能够准确识别文件的MIME类型,确保数据处理的正确性。
  • basic_utils ^5.8.2:提供一些基础工具函数,如字符串处理、日期时间处理等,为项目开发提供便利。
  • toml ^0.16.0:用于TOML配置解析,在处理FRP配置文件等TOML格式的配置文件时,能够准确解析文件内容,获取相关配置信息。

0x0402明确的开发环境要求

  1. Flutter SDK:需要3.8.0或更高版本,以确保能够充分利用Flutter框架的最新功能和优化,同时保证与项目中使用的其他依赖库的兼容性。
  2. Dart SDK:3.0.0或更高版本,与Flutter SDK相匹配,提供稳定的编程语言支持。
  3. Android Studio:2022.1或更高版本,作为Android开发的主要集成开发环境,为项目的开发、调试和打包提供全面的支持。
  4. Android API:要求21+(Android 5.0+),确保应用能够在较新的Android设备上运行,同时也能够利用一些新的Android系统特性和功能。

0x05安装、配置与使用

0x0501安装部署

  1. 环境准备
  • 首先通过flutter doctor命令检查Flutter环境是否配置正确,该命令会检查Flutter SDK、Dart SDK、Android Studio等相关开发环境的安装和配置情况,并提示可能存在的问题。
  • 使用git clone <repository-url>克隆项目到本地,将项目代码下载到指定目录,然后进入项目目录cd shegongfangzhan
  • 执行flutter pub get安装项目所需的依赖库,该命令会根据项目的pubspec.yaml文件,下载并配置所有依赖的库

END


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:网络侦查研究院 子午猫 子午猫《fangzhan:安卓平台上的综合性侦查测试利器》

评论:0   参与:  0