W12Scan – 网络安全资产发现引擎
w12scan介绍
w12scan是一款网络资产发现引擎,通过WEB接口下发任务,w12scan会自动将相关的资产聚合在一起方便分析使用。w12scan也是我的毕业设计。
w12scan分为WEB端(用于展示显示数据)和Client端(用于搜索相关资产数据)。
这里是web端的开源程序,client端在https://github.com/boy-hack/w12scan-client
w12scan设计思想
基于python3 + django + elasticsearch + redis(去重+web与client通信中间件),使用WEB API添加扫描目标,扫描完成后会在WEB端展示。
w12scan特点
WEB端
- 强大的搜索语法
- 通过搜索语法可搜索cms,服务名称,标题,国家地区等等,能够迅速找到相关目标。
- title=“abc” # 从标题中搜索
- header=“abc” # 从http头搜索
- body=“123” # 从body搜索
- url = “*.baidu.com” # 搜索baidu.com的子域名,
*号是通配符
- ip = ‘1.1.1.1’ # 搜索IP,支持CIDR
'192.168.1.0/24'
和通配符搜索'192.168.1.*'
- port = ‘80’ # 搜索端口
- app = ’nginx’ # 搜索组件
- country = ‘cn’ # 搜索国家
- service = ‘mysql’ # 搜索服务
- bug = 'xx' # 搜索存在的某个漏洞
- 通过搜索语法可搜索cms,服务名称,标题,国家地区等等,能够迅速找到相关目标。
- 自定义资产配置
- 通过自定义某公司相关域名或ip资产,w12scan会自动帮你找到对应的资产目标,当你浏览该目标时,有醒目的标识提醒你该目标的归属。
- 自动关联
- 进入目标详情,若目标为ip,则会自动关联该ip上的所有域名和该c段上的所有域名。若目标为域名,则自动关联旁站,c段和子域名。
- 多节点管理
- WEB端会每隔几分钟检测一次节点的运行状况,你可以看到节点扫描的数量以及节点扫描日志。
- 任务restful
- 提供添加任务的接口,你可以在WEB端添加或者在任何软件中集成该接口。
扫描端(Client)端
- 及时的poc验证
- 通过对接airbug接口api,在线调用最新的poc验证脚本,airbug保证了漏洞更新的及时性,你也可以fork airbug项目后自行添加poc规则。
- 验证性攻击
- 扫描端内置有常见的漏洞验证服务,每扫描一次网址,都会运行这些服务,结果最终会反馈到w12scan的WEB端展现。
- 扫描与识别
- 端口扫描使用masscan,端口识别使用nmap,web应用识别调用wappalyzer和精简版的w11scan(指纹识别)
- 容易的分布式
- 在程序架构设计就考虑到了这一点,扫描端只接受任务,最后的结果只和WEB端进行交互,所以在分布式上十分容易,直接在另一台机器上运行扫描端即可。能基于docker进行分布式,也能很方便集成celery服务。
w12scan安装
基于docker一键部署
1 2 3 | git clone https://github.com/boy-hack/w12scan cd w12scan docker-compose up -d |
等待一段时间后访问http://127.0.0.1:8000
默认用户名密码boyhack:boyhack
w12scan相关问题
- 根据服务器配置修改
docker-compose.yml
参数,设置elasticsearch内存占用大小,默认设置是521M,如果你是1G内存可以设置为128M。
具体=>在W12Scan跟目下,docker-compose.yml找到ES_JAVA_OPTS=-Xms512m -Xmx512m修改为ES_JAVA_OPTS=-Xms128m -Xmx128m,但是代价是在搜索和分析时可能会报内存不足的错误。所以内存还是越高越好。 - 在Windows上安装,需要注意
.sh
文件格式问题。 - Q:如何分布式部署?A:部署方案
- Q:启动后搜索数为0?A:需要添加扫描目标
- 不要边扫描边搜索,elastisearch在插入数据时会作分析,分词等等操作(此时效率不高),如果在此时搜索可能会返回503,建议扫描完毕后在进行搜索。(后期会使用数据迁移解决)
法律
本程序主要用于收集网络数据用于分析研究。在使用该程序之前请遵守当地相关法律进行。
温馨提示:本文最后更新于2019年8月14日 23:19,若内容或图片失效,请在下方留言或联系博主。