扫描技术细节
本章节会分享w15scan所使用的扫描技术细节。本章展示了为什么会选择这个技术,技术优劣的考虑,扫描技术SOTA实践等。
WEB端与分布式扫描端
系统架构设计
- web端登录地址可选(随机),默认首页404(防止被空间引擎探测)
- 最简易的部署
- web端只需要部署到公网
- 扫描端任意部署,配置项只需要输入web端地址
- 以红队隐蔽性考虑,扫描端只与WEB通信,不和其他第三方组件通信
隐蔽性设计
- 防溯源:随机登录路径,默认404页面
- 单点通信:扫描端只与web端通信
- 无额外依赖:扫描端单二进制文件部署
DNS收集技术
暴力破解
基于ksubdomain的无状态扫描
基于 ksubdomain 的无状态扫描技术:
- 性能优势:2分钟可暴力扫描10w字典
- 技术特点:
- 无状态优势:快
- 无状态劣势:不准确
- w15scan解决方案:使用自建状态表增强无状态扫描的准确度
字典优化
- w15scan内置10w+子域名字典
- ksubdomain+gotator 组合,效果嘎嘎猛
第三方API集成
- subfinder:被动子域名收集
- bbot:blacklanternsecurity/bbot 被动源
漏洞检测
DNS安全检测
- 域传输漏洞检测
- MX记录接管检测
- CNAME域名接管检测
攻击面扩展
- SPF记录分析,邮箱信息收集
- CDN打标签 🏷️
- IP CIDR聚合分析
- 内外网IP打标签 🏷️
端口扫描技术
自研无状态端口探测
性能对比
- 传统基于socket探测:探测一个IP的65535端口需要10分钟
- 无状态端口扫描:十分钟能扫完一个C段的全端口
技术优化
- 无状态优势:快
- 无状态劣势:不准确
- w15scan解决方案:准确是w15scan第一考量,使用自建状态表增强无状态扫描的准确度
指纹识别
- 自研指纹规则,基于nmap指纹
- 去除nmap特征,避免被检测
- 规则来源:nmap service detection
被动探测补充
- 基于fofa web记录进行被动端口探测补充(可选功能)
- 多源数据融合,提高端口发现覆盖率
WEB扫描技术
HTTP客户端优化
- Go http client指纹去除
- HTTP基础信息收集
- 请求特征伪装
Web指纹识别
技术演进
第一代: - 基于goby指纹 - 只需要访问一次首页 - 速度极快
第二代: - 一些指纹需要单独发包请求,如shiro - 需要子目录探测 - 基于 FingerprintHub 编写golang版本指纹识别器
指纹规则
- 多源指纹库:集成多个开源指纹库
- 自定义规则:支持用户自定义指纹规则
- 动态更新:指纹库支持在线更新
爬虫扫描技术
第三方API
- GAU:被动URL收集
基于DOM相似度的爬虫
- 智能去重:基于DOM相似度算法
- 深度控制:可配置爬虫深度
- 效率优化:避免重复爬取相似页面
爬虫抓取规则
云资产发现
- 云服务识别:识别各种云服务资产
- 云配置检测:检测云服务配置错误
JS分析
- JS文件收集
- JS中的接口收集
- API端点提取
敏感信息收集
- AK/SK收集:云服务密钥泄露检测
- 邮箱收集:从页面中提取邮箱信息
- URL规则匹配:基于规则的敏感URL发现
资产扩展
- 发现更多资产,自动加入到DNS、domain、port模块
- 关联分析:分析资产间的关联关系
漏洞扫描集成
- xscan集成:集成XSS扫描功能
- 联动扫描:爬虫发现的URL自动进行漏洞扫描
PoC扫描技术
基于nuclei-templates
- 模板库:基于 nuclei-templates
- 规则丰富:覆盖各种漏洞类型
- 持续更新:跟随上游更新
敏感文件扫描
- 常见敏感文件检测
- 目录遍历检测
- 备份文件发现
漏洞扫描策略
- 指纹关联:根据识别到的指纹对应漏洞poc扫描
- 智能匹配:自动匹配合适的PoC规则
- 减少误报:多重验证确保漏洞真实性
变更监控技术
Diff算法
- 资产变更检测:监控资产状态变化
- 增量更新:只处理变更的部分
- 历史记录:保存变更历史
监控策略
- 定时监控:定期检查资产变更
- 实时监控:关键资产实时监控
- 智能告警:重要变更及时通知
攻击面分析
占坑:该模块正在开发中,将提供:
- 攻击路径分析
- 风险评估模型
- 攻击面可视化
- 威胁情报关联
技术优势总结
性能优势
- 无状态扫描:大幅提升扫描速度
- 分布式架构:支持水平扩展
- 并发优化:高并发处理能力
准确性保障
- 自建状态表:提升无状态扫描准确性
- 多源验证:多种技术手段交叉验证
- 误报控制:严格的误报控制机制
隐蔽性设计
- 防溯源:多重防溯源措施
- 特征伪装:去除工具特征
- 通信加密:安全的通信机制