旅行者探测器系统
作为一个渗透人员,在每次渗透网站的时候都要拿出一堆黑客工具,比如nmap, awvs, 御剑等工具进行测试,由于实在厌烦了一些低级重复性的工作,趁着2020年新年创建了一个工具集合平台,将渗透测试常见的域名扫描,端口扫描,目录扫描,漏洞扫描的工具集合在一起
目前平台还在持续开发中,肯定有不少问题和需要改进的地方,欢迎大佬们提交建议和Bug,也非常欢迎各位大佬Star或者是Fork
系统结构
开发框架
- 基础语言: Python(3.8.1)
- Web框架: Flask(1.1.1)
- 数据库: Mongodb
- 逻辑处理: Docker
- 前端: Layui
数据载入
数据流入有两种方式,一种是从WEB界面引入,还有一种是从上级任务引入,比如说端口扫描任务的IP既可以从WEB页面引入,也可以从域名扫描处获得。漏洞扫描的任务只能从端口扫描和域名扫描的任务中引入。
功能介绍
域名扫描
采用的是oneforall,当前使用的版本是0.0.9,我修改了部分代码,使得工具和平台能够结合
端口扫描
程序采用的是masscan和nmap结合的方式,先用masscan扫描开放的端口,然后再用nmap对开放的端口进行详细的信息探测, 这步是最重要的一步,通过nmap给端口打上标签,为以后的POC扫描提供数据,由于nmap只能识别广义的操作系统,中间件,数据库三层结构,再往上的web应用nmap无法识别,只能通过接下来的cms识别给web应用程序打标签
目录扫描
目录扫描采用的工具是dirsearch,排除了部分bug并且扩充了字典然后进行封装
指纹识别
指纹识别采用的是新潮团队的TideFinger, 我提取出了TideFinger的指纹进行比对,原先TideFinger是单任务运行多线程请求的方式,为了配合框架我改成了多任务并发单线程请求的方式,由于Python3和Python2在字符编码上存在差异,导致相同的字符串可能会计算出不同的MD5值,这个指纹识别的库以后需要大量修改
漏洞扫描
漏洞扫描功能现在引入了xunfeng和kunpeng的poc,一共144个,标签以nmap的标签为主,比如445端口的标签是microsoft-ds, 3389的标签是ms-wbt-server。这两个框架合并存在一定问题,比如说:xunfeng和kunpeng的poc主要针对非WEB应用,两个框架的POC存在重复的问题.我做了一定的去重工作,后期随着POC的增多,去重会是一个问题
WAF探测
分析了一下sqlmap的源代码,从中提取出了sqlmap用于WAF探测的代码并进行了封装, 用来探测类http端口是否有WAF保护,此功能并未在前台展示,一些模块比如目录扫描会自动进行调用
主动扫描
主动扫描用的是AWVS12,已经封装在Docker里了,通过AWVS12的restful进行API调用
下载与安装
我把步骤都写在run.sh里了,理论上run.sh适应于Debian系操作系统(包括Debian, Kali, Ubuntu)
git clone https://github.com/ody5sey/Voyager.git
cd Voyager
bash run.sh
国内用户建议运行debian_run.sh,会使用国内源进行安装
git clone https://github.com/ody5sey/Voyager.git
cd Voyager
bash debian_run.sh
红帽系操作系统(包括redhat, fedora, centos)请用redhat_run.sh
git clone https://github.com/ody5sey/Voyager.git
cd Voyager
bash redhat_run.sh
0x002 运行
source ~/.bashrc
pipenv shell
python manager.py
运行后没有默认用户
请访问http://127.0.0.1:5000/add 以添加新用户
或使用 curl http://127.0.0.1:5000/add
然后访问 http://127.0.0.1:5000/ 登录即可
默认的用户名和密码是luffy:s1riu5