DAVScan 是一个快速轻量的 WebDAV 扫描器,用于发现启用 DAV 的 Web 服务器上隐藏的文件和文件夹。 该扫描器利用权限过高或配置错误的 WebDAV 服务器,或存在各种信息泄露或认证绕过漏洞的服务器进行工作。 扫描器会尝试对目标服务器进行指纹识别,然后基于根 PROPFIND 请求的结果爬取服务器。
如果你真的花时间阅读我这堆烂代码,你会注意到我决定改变 davscan 的一些核心部分,改用 Beautiful Soup,这需要 libxml。我这样做是因为遇到了一个非常糟糕的 DAV 配置,它返回了近 500MB 的 XML 数据,导致 xmltree 库崩溃。BS 嗯……能够处理那么多 BS(废话)。虽然收集和解析所有内容会花费稍长的时间,但现在 DAVScan 应该能够处理你扔进去的任何垃圾(假设你不会耗尽内存)。
服务器头部指纹识别 — 如果 Web 服务器返回一个服务器头部,davscan 可以基于响应搜索公开的漏洞利用。
使用 PROPFIND 进行基础 DAV 扫描 — 快速扫描,找出 DAV 可见的任何内容。
IIS/6.0 Unicode 认证绕过 — 使用 GET 获取文件,使用 PROPFIND 获取文件夹。尚未充分测试,请双倍确认结果。
排除 DoS 漏洞利用结果 — 可以从 searchsploit 结果中排除拒绝服务漏洞利用。
从漏洞利用结果中排除 MSF 模块 — 本仓库中包含了自定义的 searchsploit。要么覆盖现有 searchsploit,要么备份并替换。此功能可能不会最终出现在真正的 searchsploit 脚本中。
支持代理 — 你可以指定一个 HTTP(S) 代理。这将直接把代理传递给 requests session。我添加这个是因为 NTLM 认证的需求,目前 requests 还无法处理。
认证 — 目前只支持基本认证。如果你需要任何类似令牌化或奇怪的东西,请告诉我,我会处理。不过这不是当前优先级最高的事情。大多数一次性的认证需求可以通过 Burp 和代理标志来处理。
X 头部指纹识别 — 代码里是有的,但还没正常工作。现在可能已经能用了,但尚未充分测试。
我正常编写文档的能力 — 当我将原生 XML 替换为 Beautiful Soup 时,附带了一些依赖项,我忘了告诉你。你需要安装它以及 C 库 libxml,因为这样运行更快。而且如果你给它喂半 G 的 WebDAV XML,它也不会崩溃。尽管来问我怎么发现这个的吧。
可能还有很多我没测试过的,以及 GitHub 上可能存在的各种问题,假设人们愿意告诉我哪里有问题的话……
构建一个 SQLite 数据库而不是平面文件 — 当前输出写入文件,同时屏幕上显示一些简短信息,表明它在工作。
成为一名战斗机飞行员! — 我看过一次《壮志凌云》,现在我对加入空军并实现梦想感到非常兴奋。"我感觉到了对速度的渴望!"
你知道吗,你可以帮我修复我糟糕的代码?这就像你的日常工作,但没有工资,而且能获得多一点认可,因为你的辛勤工作几乎不会让我有什么收获。从好的方面看,我不会要求你周末加班赶进度。啊,甚至你提交喝醉时写的代码我也不会抱怨。如果你还没注意到,那通常是我写出"最佳"作品的时候。只是别提交一些傻乎乎的东西,比如修正拼写错误。那些是设计好的。
Usage: davscan.py [-h] [-D DEPTH] [-a AUTH] [-u USER] [-p PASSWORD]
[-o OUTFILE] [-P PROXY] [-d] [-m] url
positional arguments:
url 要扫描的服务器 URL;https://foo.com:8443/
optional arguments:
-h, --help 显示此帮助信息并退出
-D DEPTH, --depth DEPTH davscan 应扫描的文件夹深度(默认为无限);-d 1
-a AUTH, --auth AUTH 需要的基本认证;-a basic
-u USER, --user USER 用户名;-u derpina
-p PASSWORD, --password PASSWORD 密码;-P 'P@$$W0rd'
-o OUTFILE, --out OUTFILE 输出文件,默认为;-o /tmp/davout
-P PROXY, --proxy PROXY 代理服务器(如需);-P http://user:[email protected]:8080/
-d, --no-dos 排除 DoS 模块
-m, --no-msf 从结果中排除 MSF 模块