开头的话
扫描器是基于python2.7.13+django+mysql编写 前端使用layui框架 一款常用的web扫描器,
去年暑假写的,一直想写一款扫描器,终归是做出来了,,虽然写的比较菜,看了大佬们的开源项目以后就更自闭了。一共写了快2个月,中间也遇到过各种bug各种坑,学习了各个大佬们的源码,也是希望我的代码能给大家提供一些扫描器编写的思路,能让大家学习到一些东西就很ok了!
主要功能
刚开始用Flask写了一点后面又改成用Django了。刚开始为了端口扫描,目录扫描这种单独的功能,想让扫描结果实时显示并且加上进度条功能,看着好看2333,但是因为websocket总是莫名报错加各种bug就没用了。网上查了用ajax也可以实现,但是太繁琐了。(有兴趣的小伙伴可以去研究一下websocket!)
先来看下登录界面2333
端口扫描
支持单IP扫描和IP段扫描,扫描端口可自定义,IP段扫描只支持子网掩码式写法,比如要扫描192.168.1.0-255 需要写成192.168.1.0/24
目录扫描
简单的目录扫描,可以设置关键字匹配。
插件使用
插件调用框架使用得是 Pocsuite,这里做了一个单独的插件使用功能,可以输入目标来单独使用一个插件检测是否有漏洞。
扫描项目
添加项目可选择扫描子域名或批量扫描目标 同时可扫描常用端口和目录 ,也可选择插件进行扫描。
可选择只扫描二级域名或多级域名(三级,四级,五级),扫描完子域名会对域名进行存活判断,存活的条件是 requests返回200,403,500 或者可以ping通
扫描不占用主线程,使用celery+redis来完成任务调度,
一些注意
如何安装在install下目录有说明,因为就在windows下的编写测试的,所以linux下并没有进行测试,一些具体的配置和扫描字典都在根目录下的config.py中可自行设置,登录默认账户密码为administrator/123456
项目地址
感谢大佬们的开源项目
写在最后
上班忙,那会儿还想着更新功能和插件,但是已经没啥时间和精力了,,当然大家如果有什么好的想法和构思或者不懂的地方可以回复鸭,如果大家想写扫描器,希望我的代码可以给你帮助。