Wker_ScanDir 目录扫描工具

目录扫描

玩渗透也有些日子了,前端时间有人找我要个比较好的目录扫描工具,但是一直没有找到一个比较好的并且专门用来扫描目录的工具,OWASP那个其实感觉还可以,但是总觉得少了不少东西。
所以我只能手动写一款目录扫描工具。
写了有几天的时间了吧,但是今天晚上想赶出来,就快速结了个尾,有一些小细节没注意,但是只要注意使用的顺序就不会出错,还有界面的美化我也没怎么去做,所以我暂且称这个版本为Test Vision,也希望大家帮我能够测试一下。
和往常一样,还是喜欢用C++去做这类的开发,感觉扩展性比较高吧。

目录扫描的方法

小弟在这里简单的将目录扫描的方法,总结一下,如果还有遗漏,希望大佬们更正。

  1. 目录枚举,通过字典的方式扫描目录(暴力破解)
  2. robots文件的爬取,一般通过disallow那一项找到一些比较隐蔽的目录
  3. 搜索引擎:从搜索引擎中提取一些比较隐蔽的目录,可能以前有,但是现在不允许爬了,所以还是会有些蛛丝马迹在里面的
  4. 存在AJAX动态技术的页面,有些是通过JS进行提交数据的,这里面也可能存在一些奇奇怪怪的目录。
  5. 爬虫,可能敏感目录藏在了一些不起眼的位置,肉眼找的话呢实在是不好找,就通过XPATH或者正则进行提取,并且整理
  6. 一些目录的漏洞,类似于目录遍历以及短文件名,但是我没写这类的功能,以后添加吧

这就是我比较常用的目录探测技术,所我就将我考虑到的这5项都进行了工具自动化,现在给大家奉上:Wker_ScanDir

程序目录结构

我一般比较喜欢在介绍工具之前都介绍一下工具的目录,方便理解。


三个目录和一个主程序。

  1. lib目录存在的是在抓取AJAX页面时用到的hookDLL,不要去动就好了
  2. webbrowser目录存放了一个简单的浏览器,配合抓取AJAX的
  3. Search_Engine目录存放的是搜索引擎爬虫的插件,大家如果有用过我之前写的Wker_SearchEngineScanVlun FrameWork的朋友会发现,里面的DLL其实和在那里面的收集连接的插件是一样的,其实确实是一样的,代码我都没改,哈哈

主界面的话呢我根本没怎么仔细做,但是基本功能还是有的。

字典枚举

我们点击扫描菜单里面的新建扫描,会弹出一个Dialog。


也很简陋,我们需要先填写上我们扫描的网站,记住要填写http://,我貌似没检测!

  1. 状态码:我们认为页面存在的状态码,逗号分割:200,302,301
  2. 标记404关键字:有的时候页面404了,但还是返回200,我们就需要排除这样的页面,填写里面的关键字,进行排除
  3. 字典目录的话呢就是选择一下你要用的字典,这些大家需要自己去准备的

这个功能还是比较实用的。

robots

如果勾选的话呢我会检测robots.txt存不存在,不存在的话呢会提示你无法勾选的,勾选上的话呢我在扫描的过程中会自动提取robots里面的文件夹进行爬取

挑选搜索引擎

选择搜索引擎的插件:
search_engine
勾选上我们要使用的搜索引擎,然后点击确定,然后输入起始页和结束页,工具就会自动从这之间使用site:语法提取相关的网站链接!

手动抓取AJAX

我实在是无法实现识别JS的功能,相关的语法解释我也不想写,所以我就内置了一个抓包工具,让大家手动抓取相关的请求包(吐个槽,C++写这个实在是麻烦,光写这个功能我就花了一晚上加上一上午,主要就是hook了HTTPOpenRequest函数)
点击开启抓包,如果提示hook成功的话呢,就说明可以了。

可以看到抓取到了一些链接,这些都会存储下来,方便后面的网站爬虫进行爬取!

网站爬虫

  1. 不爬行的文件:就是类似于jpg,gif之类的一些没必要爬行的文件我们给过滤出来,同样逗号分割
  2. 爬行的标签属性:例如我们想要爬行a标签下面的href,我们就填写上去,可以自行添加
  3. Form表单数据,有的时候表单有默认值,那么我就会去用默认值,但有的时候没有的话呢我会用Wker,如果你想指定text为666的话呢你可以进行设置。

form

都可以自己进行设置的。

这就是工具的使用,就这点功能我都写了好几天,可能是很久没写应用程序的代码了吧。

速度的话呢还是比较快的,但是需要注意的是,这个爬行的进度只是参考,因为在我的队列里面,如果又有新的链接加进去,那么这个链接也是要爬取的,所以这是一个动态的过程!

结语

程序UI装修很简陋,我真的是没时间了,因为前段时间有人找我写一个比较大的爬虫项目,所以赶了一下,还有很多细节处理的不是很好,例如增加cookie,设置http header,设置代理,导出之类的,我都是做的不是很好,以后有机会的话呢我会去好好完善的,各位表哥如果发现使用中有什么好的建议或者bug的话呢也可以和我反馈,我会很快的进行修复和完善的!

实在是太丑了!我就稍微调整了一下:


增加了点UI和检测,调整了参数方面的问题
Wker_ScanDir.zip (608.7 KB)

8 个赞

挺好的

提点建议,希望能在设计上下一点功夫,目录扫描工具很多,开发前做个调研参考,目录扫描关注的点在哪里?已知公开的工具那些好用,优缺点在哪里?你开发的工具比那些工具提升改进的地方在哪里?分享当然是好的,但是说句实话一点,可能难听一点,看了介绍和界面一点吸引力都没有,渗透实际比较关注和需要功能都没有实现,这种半成品练手的东西我觉得分享点源码可能价值更高一些。

1 个赞

谢谢建议,我也稍微修改了一下,我增加了之前没补充上的那个对目录结构漏洞的扫描功能以及Cookie无法设置的功能,当然我会多去参考他人的扫描工具的特点修改自己的,开源的话呢等我再写的成熟一点就进行开源。


Wker_ScanDir.zip (608.7 KB)

2 个赞

要是扫描目标URL能通过导入txt文件的方式,批量扫描就更好了

为啥运行不了提示缺少DLL win7 64位

应该是你的MFC的DLL没有吧,丢失了哪个百度都有下载的

期待师傅的源码 拿来学学 :face_with_raised_eyebrow: