Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

完善的动态备份文件扫描工具 实现动态字典渲染、动态结果判断、自动字典记录、的敏感文件扫描器

Notifications You must be signed in to change notification settings

winezer0/DynaScan

Repository files navigation

DynaScan (戴拿)

dynamic Weak File Scanner 动态敏感文件扫描器 By NOVASEC && WINEZER0
本工具整体架构已迭代完毕, 目前已能够完整扫描备份文件, 
如果感觉字典太多, 请修改 config[GB_FREQUENCY_MIN]=10 或者指定 -fm=10 或更大数字

效果预览

-fm=10 扫描效果预览

0、前提摘要

0.1、严正声明:

本工具仅用于合法范围内进行企业防御测试,请勿用于违法活动, 否则所有产生后果由使用者自身负责!!!
本团队任何技术及文件仅用于学习研究,请勿用于任何违法活动,感谢大家的支持!!!

0.2、技术支持

欢迎大家提交扩展需求、Issue、命中记录文件、技术支持、使用反馈
紧急消息请在[NOVASEC]公众号后台联系。

0.3、更新记录

更新记录参考 历史更新记录.md

0.4、TODO

继续优化备份文件扫描字典频率
等待用户提交其他敏感文件扫描字典

1、程序说明

1.1、程序开发目的

1. 基于网站路径【动态检测】指定目录【根目录和当前目录】下的敏感文件,并支持自动过滤大部分不存在的路径。
2. 开发前主要关注于目录下的备份文件扫描,目前结构已支持结合dirsearch等工具的扫描结果进行敏感文件扫描。
3. 支持自动分割目录为多个基本URL进行扫描,但不支持自动递归扫描,可以联合dirsearch等工具的扫描结果进行深度使用。

1.2、功能描述:

1.根据规则生成动态字典文件,实现动态替换(日期、域名、路径等)属性
2.根据实时响应情况,自动筛选不存在的文件、重复的文件。(响应码、标题、命中文件CRC32值)
3.支持对中文和特殊字符的路径进行URL编码。(默认仅对中文进行编码)
4.添加字典频率筛选功能,仅加载频率在某一个阈值范围的字典.(默认加载频率10)
5.支持简单分析命中结果,便于实现字典的不断优化。

1.3、相关文件位置

1.runtime 日志文件
runtime/runtime_info.log 正常信息 
runtime/runtime_debug.log 调试信息 
runtime/runtime_error.log 错误信息
2.result 结果文件
result/{主机名}_result.csv 命中结果(需要关注)
result/{主机名}_ignore.csv 静态及动态特征过滤
3.dict_hit 命中记录
存放命中的扫描结果,便于实现字典的不断优化。

2、工具特点

2.1、扫描字典突出优势

1、支持多种动态规则来动态生成扫描路径

(通过基本变量替换+因变量替换+解析正则规则+解析自定义规则实现)。
(因变量支持域名、路径和自定义,基本变量支持从文件中读取替换。)
(由于规则解析的格式需要,因此对字典内容存在格式要求,具体规则编写办法参考下文)

2.2、HTTP请求配置

 1、对输入的目标URL自动进行格式分析、自动访问检测和协议头自动判断功能。
 简单输入——URL或URL文件,支持检测目标是否可以访问
 扩展输入——自动分析处理HOST格式[IP:PORT,Domain],自动检测分析请求协议
 2、默认启用中文路径或特殊字符会添加分别以【utf-8】作为基础编码进行URL编码。
 3、请求时大量的参数配置在setting_xxx.py中有描述和支持,用户可自定义大部分的参数配置。
 4、对已经访问过的URL可以进行过滤,不进行多次扫描。
 5、对输出的多级URL可选拆分为多个目标URL。
 情景1:直接获取用户输入的URL作为目标,拼接URL+字典路径进行扫描。 
 情景2:分别获取http://HOST:PORT、http://HOST:PORT/XXX/、http://HOST:PORT/XXX/YYY/等多个层级作为目标,然后拼接目标进行扫描。
 6、支持自动进行Refer头更新、HOST头更新,及配置Cookie等请求参数

2.3、HTTP响应配置

1、有效响应结果筛选可以选择多种筛选方案:

1、基本判断规则:
1. 响应状态码丢弃列表,判断响应状态码是否在丢弃列表内。
2、动态判断基准:
1. 响应内容前10字节,判断是否与随机测试路径响应内容的前十字节是否相同。
2. 响应内容Hash,判断是否与随机测试路径的响应全文Hash相同。
3. 响应内容实际返回大小,判断是否与随机测试路径的响应内容的实际返回大小相同。
4. 响应内容Content-Length,判断是否与随机测试路径的响应的Content-Length相同。
5. 响应内容Title,判断是否与随机测试路径的响应的标题字段相同。

更多使用配置参数详情参照 [setting.py]

3、字典目录结构

1. 字典文件的后缀默认设置为【.lst】,默认只读取目录下该后缀的字典文件。(该参数在setting_***.py中可以自定义)
2、每一行字典支持追加 【<-->XXX】 字段用于表明字典频率,用于阈值筛选来决定是否加载该路径。

3.1、dict_base目录

dict_base 存放基本变量字典,每个文件名或目录名都是一个基本变量,其内容是文件|目录所包好的文件的内容。
注意事项: 基础变量字典内,每一行规则仅且支持一条[{xxx:xx=xxxx}$]格式的动态替换规则,不支持基础变量。
基础变量名称由文件名自动提取,简述如下:
字典文件名 file_name.lst 
==> 删除后缀 
== > file_name 
== > %file_name%
==> 保存(基本替换规则)字典的键 
简单示例: 
1、dict_base目录下的字典文件【BACKUP_EXT.lst】会从文件名会提取出【%BACKUP_EXT%】作为替换关键字。
2、字典文件内容会在读取后转变为一个后缀列表 ['rar','zip',...]
3、字典文件名与内容会转变为一个替换字典 {"%BACKUP_EXT%": ['rar','zip',...],...}
4、然后会对后置列表内的每个元素的【{xxx=xx:xxxx}$】规则进行渲染。
5、然后在其他类型中进行直接替换,如【/admin.%BACKUP_EXT%】会变为【/admin.rar、/admin.zip、...】

3.2、dict_rule目录

dict_rule 存放扫描规则字典, 扫描字典添加支持两方案,不同的需求可以添加到不同的字典目录中。
1、base_root文件夹 添加直接拼接到URL根目录后的字典 
2、base_path文件夹 添加直接拼接到当前URL目录后的字典
dict_rule 目录下的文件名无特殊的命名要求,会读取目录下所有符合定义的自定后缀的文件内容。
dict_rule 目录存放的字典的规则内容会被【规则解析+基本变量替换+因变量替换】,然后根据所在目录类型,添加到URL当前目录或根目录之后。

4、字典文件内容编写规则

参考 动态规则编写.md

也可直接使用常规的目录字典进行爆破

NEED STAR And ISSUE

1、右上角点击Star支持更新.
2、ISSUE或NOVASEC提更新需求

NOVASEC

About

完善的动态备份文件扫描工具 实现动态字典渲染、动态结果判断、自动字典记录、的敏感文件扫描器

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /