目前渗透测试中使用的目录扫描工具,已经非常丰富了,就拿御剑、DirBuster来说吧,知名度高,功能全面。
其他的小“轮子”就不说了,有这些“车子”都已经够用了。
但是,我们需要一个跑得更快、更省油的“车子”。
它可能是这样的:
- 多引擎并发
- 能使用字典
- 能纯爆破
- 能爬取页面并动态生成字典
- 能 fuzz 扫描
- 可自定义请求
- 可自定义响应结果处理
- ...
Dirmap
一个高级web目录、文件扫描工具,功能将会强于DirBuster、Dirsearch、cansina、御剑。
项目地址?: https://github.com/H4ckForJob/dirmap
那它就是“传说级跑车”了?
它的作者给出了它的一大波功能特点
- 支持 n 个 target*n 个 payload 并发
- 支持递归扫描
- 支持自定义需要递归扫描的状态码
- 支持(单|多)字典扫描
- 支持自定义字符集爆破
- 支持爬虫动态字典扫描
- 支持自定义标签 fuzz 目标 url
- 自定义请求 User-Agent
- 自定义请求随机延时
- 自定义请求超时时间
- 自定义请求代理
- 自定义正则表达式匹配假性 404 页面
- 自定义要处理的响应状态码
- 自定义跳过大小为 x 的页面
- 自定义显示 content-type
- 自定义显示页面大小
- 按域名去重复保存结果
看上去是挺全面的,但实际效果如何,还是要用了才知道。
上车 (环境:Windows、python3)
直接下载 GitHub 项目 https://github.com/H4ckForJob/dirmap (不知道啥抽风服务器,一直报错,下了五六次才搞定)
装第三方依赖。。。
pip install gevent
pip install progressbar
好吧,作者给了 requirement.txt(刚才没注意),一键安装就好了。。。
pip install -r requirement.txt
然后,总算跑起来了
起步
单目标扫描
python dirmap.py -i https://xxx.com -lcf
python dirmap.py -i x.x.x.x -lcf
emmm 可能是字典问题?只扫出来3个,不过正好是后台。。。
多个目标
python dirmap.py -iF urls.txt -lcf
扫描完成后的结果呢???
结果将自动保存在项目根目录下的 output 文件夹中,每一个目标生成一个 txt,命名格式为 目标域名.txt。结果会自动去重复,不用担心产生大量冗余。
子网(CIDR格式)
python dirmap.py -i 192.168.1.0/24 -lcf
网络范围
python dirmap.py -i 192.168.1.1-192.168.1.100 -lcf
踩油门
可以自定义 dirmap 配置,开启 dirmap 更多高级功能。
配置
编辑项目根目录下的 dirmap.conf,进行配置
简单讲解一下,一共分为 八大模块
- 递归扫描处理配置
- 扫描模式处理配置(4个模式,1次只能选择1个)
- 字典模式
- 爆破模式
- 爬虫模式
- Fuzz模式
- 处理payload配置(暂未实现)
- 处理请求配置
- 处理响应配置
- 代理选项
- Debug选项(打印payloads并退出)
- update选项(github获取更新,暂未实现)
字典文件都存储在 data 目录下
- dict_mode_dict.txt “字典模式”字典,使用dirsearch默认字典
- crawl_mode_suffix.txt “爬虫模式”字典,使用FileSensor默认字典
- fuzz_mode_dir.txt “fuzz模式”字典,使用DirBuster默认字典
- fuzz_mode_ext.txt “fuzz模式”字典,使用常见后缀制作的字典
- dictmult 该目录为“字典模式”默认多字典文件夹,包含:BAK.min.txt(备份文件小字典),BAK.txt(备份文件大字典),LEAKS.txt(信息泄露文件字典)
- fuzzmult 该目录为“fuzz模式”默认多字典文件夹,包含:fuzz_mode_dir.txt(默认目录字典),fuzz_mode_ext.txt(默认后缀字典)
如果需要使用自己的字典,也需要将字典放在 data 目录下,然后在dirmap.conf 中进行配置。
字典模式(test)
设置开启字典模式
开始扫描
其运行过程为:
结果:
换备胎
- “爬虫模式”只爬取了目标的当前页面,用于生成动态字典。项目未来会将“爬虫模块”与“生成动态字典功能”分离。
- 关于 bruter.py 中 bar.log.start() 出错。
解决方案:安装 progressbar2卸载 progressbar防止导入同名模块
python -m pip uninstall progressbar
python -m pip install progressbar2
原文转自:https://zhuanlan.zhihu.com/p/91927546?utm_source=wechat_session