Fscan流程详解
main.main
- 初始化日志系统
- 创建HostInfo对象
- 解析命令行参数(common.Flag)
- 解析配置文件(common.Parse)
- ParseUser - 解析用户名
- ParsePass - 解析密码
- ParseURLs - 解析URL
- ParseHosts - 解析主机
- ParsePorts - 解析端口
- 初始化输出系统(Common.Initoutput)
- 执行扫描(Core.Scan)
- 检查主机存活(Core.CheckLive)
- ICMP检测(Core.probewitthICMP)
- Ping扫描(core.Runping)
- 处理存活主机(core.parsePluginList)
- 获取插件列表(Core.parsePluginList)
- ActiveMQ扫描(Plugins.ActiveMQScan)
- Cassandra扫描(plugins.cassandraScan)
- Redis扫描
- MySQL扫描
- SSH扫描
- ……
- Web扫描(webscan)
- 加载POC(webscan.LoadPoc)
- 执行POC(webscan.executePoc)
- 执行规则(webscan.executeRules)
- 保存结果(common.SaveResult)Core模块解析
主机服务扫描
- 基于IP/域名的展开式扫描
- 以
corre SCAN模块为主机发现入口,先通过ICMP、SYN半开放扫描等方式探测主机,再对存活主机进行端口扫描 - 对识别出来的
HTTP/HTTPS服务,会自动拼接协议头,进入Web扫描流程
- 以
- Web漏洞检测
- 直接基于Url的Web专项扫描,若用户直接输入指定URL,FX杆会跳过主机存活、端口扫描等前置步骤,直接对URL进行Web扫描,加载并检测对应Web的POC
Plugins与WebScan模块解析
Plugins模块
覆盖服务:ActiveMQ \ Cassandra \ Redis \ MySQL \ SSH \ FTP等
核心能力:凭证爆破、服务连接、漏洞检测
WebScan模块
功能:加载多类Web漏洞POC
核心函数:LoadPoc \ executePoc \ CheckMuitiPoc
免杀核心思路
核心目标
- 绕过静态查杀:特征码、字符串、导入表
- 绕过动态查杀:行为检测、内存特征
特征码混淆
- 加密/替换核心函数名、字符串
- 重命名敏感变量
导入表清理
- 移除不必要的
Kernel2函数导入 - 动态加载API,避免导入表中敏感函数被特征匹配