Giter Site home page Giter Site logo

w-digital-scanner / w12scan Goto Github PK

View Code? Open in Web Editor NEW
1.3K 45.0 358.0 14.7 MB

🚀 A simple asset discovery engine for cybersecurity. (网络资产发现引擎)

License: MIT License

Python 6.23% HTML 8.32% CSS 83.90% JavaScript 1.41% Dockerfile 0.10% Shell 0.04%

w12scan's Introduction

w12scan

w12scan是一款网络资产发现引擎,通过WEB接口下发任务,w12scan会自动将相关的资产聚合在一起方便分析使用。w12scan也是我的毕业设计。

w12scan分为WEB端(用于展示显示数据)和Client端(用于搜索相关资产数据)。

这里是web端的开源程序,client端在https://github.com/boy-hack/w12scan-client

一个视频了解W12SCAN 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' # 搜索存在的某个漏洞
  • 自定义资产配置
    • 通过自定义某公司相关域名或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服务。

安装

基于docker一键部署

mkdir ~/w12scan-data/db   # 该目录保存w12scan存储结果
mkdir ~/w12scan-data/data # 该目录保存es存储的结果
git clone https://github.com/boy-hack/w12scan
cd w12scan
docker-compose up -d

等待一段时间后访问http://127.0.0.1:8000 默认用户名密码boyhack:boyhack

数据存储

  • 可修改docker-compose.yml,搜索~/w12scan-data/db~/w12scan-data/data来修改存储的位置

相关问题

  1. 为了保持高可用,请至少准备8G4H服务器进行测试(ES耗费内存),如果服务器不满足这些要求,需要自行向dockerfile中es数据库添加- "ES_JAVA_OPTS=-Xms2048m -Xmx2048m"来指定内存,但这样不保证高可用
  2. 在Windows上安装,需要注意.sh文件格式问题 #12 (感谢 @Hotsunrize).
  3. Q:如何分布式部署?A:部署方案
  4. Q:启动后搜索数为0?A:需要添加扫描目标
  5. 不要边扫描边搜索,elastisearch在插入数据时会作分析,分词等等操作(此时效率不高),如果在此时搜索可能会返回503,建议扫描完毕后在进行搜索。(后期会使用数据迁移解决)

相关链接

法律

本程序主要用于收集网络数据用于分析研究。在使用该程序之前请遵守当地相关法律进行。

w12scan's People

Contributors

boy-hack avatar hack2012 avatar oliverklee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

w12scan's Issues

部署docker错误

我用的centos7.5安装docker,安装上之后,无法运行docker-compose up -d命令,这个是版本的问题还是我安装的问题????
第二次成功执行docker-compose up -d命令之后
卡在如下页面
image
image

关于启动失败的问题

git clone https://github.com/boy-hack/w12scan
cd w12scan
docker-compose up -d

根据以上命令部署时,docker启动的时候爆下面的错误

ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a version of "2" (or "2.0") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.

将docker-compose.yml中的dockerversion改为2之后可以正常启动,但是访问访问为503.

docker启动,8000端口拒绝访问日志

docker启动,8000端口拒绝访问日志如下:

processing file django.po in /opt/w12scan/locale/zh_Hans/LC_MESSAGES
processing file django.po in /opt/w12scan/locale/en/LC_MESSAGES
[2019-08-15 18:26:19 +0800] [15] [INFO] Starting gunicorn 19.9.0
[2019-08-15 18:26:19 +0800] [15] [INFO] Listening at: http://127.0.0.1:8080 (15)
[2019-08-15 18:26:19 +0800] [15] [INFO] Using worker: sync
[2019-08-15 18:26:19 +0800] [18] [INFO] Booting worker with pid: 18
add user boyhack faild UNIQUE constraint failed: user_userinfo.name
nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)

用户自定义打tag支持

将漏洞威胁,相关组件转化为tag的方式,支持通过tag进行搜索,支持用户自定义tag(标记IP)

没办法运行

按照github文档 启动后:
image
但是访问8000端口直接拒绝连接!不知道是哪里的问题!

自己搭建的es

w12scan-master/pipeline/elastic.py
PUT http://127.0.0.1:9200/w12scan/_mapping/domains [status:400 request:0.006s]
elasticsearch.exceptions.RequestError: RequestError(400, 'illegal_argument_exception', 'Rejecting mapping update to [w12scan] as the final mapping would have more than 1 type: [domains, ips]')

扫描结果

扫描结果域名+IP的和实际大于255的话, 只显示255个(域名和IP的和),是否有这个限制?

添加多个目标,http连接就会报错

报错:
Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7f702037e7f0>, 'Connection to timed out. (connect timeout=30)'))"
这不是因为http连接太多没有关闭导致的吗、

漏洞扫描怎么实现?

请问怎么实现漏洞扫描?我看仓库中展示里有漏洞情况,我在本地搭建好的,找不到能做漏洞扫描的地方呀。

初始化es表失败

想自己改下代码,再本地搭建了环境

到这一步的时候,失败了
image
image
一直这样子
这是啥原因

关于搜索总是0的问题

大佬你好 关于搜索总是0的问题 直接搜索总是为0
image
创建资产后搜索还为0 不知什么原因 elastic运行正常 我的内存16G的
image
第二个问题就是 拜读了您的在线部署 但我修改配置文件后 站点就无法访问了 求您解答 谢谢
image

用户登录与搜索API

  • 用户登录界面
  • 结构化:新建user app
    • dockerfile自动添加任务
  • 用户设置、退出 路由,功能,模板
  • 搜索API
  • 搜索API与用户token对接

关于部署环境的问题

我在本地可以正常搭建这个系统框架,但是在vps是无法搭建成功的。Why? 难道只支持本地搭建的吗?

语言切换是不是没有开发好?

昨天测试还是中文的,今天重新装了一下,就是英文了。
兄弟,能不能先服务好**用户再考虑国外的?
先把bug处理处理再说嘛。。比如说资产ip过大的时候报错的bug

同毕业设计哈哈哈


好开心
跟大佬想到了一起··
不过我的还不晓得咋写,
感谢大佬开源,让我有个参考!

部署docker报错

ERROR: Service 'web' failed to build: The command '/bin/sh -c set -x && apk update && apk add python3-dev && apk add bash && apk add tzdata && apk add gcc && apk add libc-dev && apk add linux-headers && apk add nginx && cp -r -f /usr/share/zoneinfo/Hongkong /etc/localtime && mkdir -p /opt/w12scan && mkdir -p /run/nginx' returned a non-zero code: 137

资产过多,在查看时会报错

像这样:
图片

删除重新部署了几次仍然存在同样的问题。
经过测试,在新建资产那里添加过多域名(1400+)会出现这样的问题,域名少的时候正常。

reids 内存占用问题

因为redis是内存数据库,数据大多存入了内存,当扫描数据多了之后数据内存就被塞满了,需要程序自动判断释放数据

docker运行错误

ERROR: Service 'web' failed to build: OCI runtime create failed: container_linux.go:344: starting container process caused "process_linux.go:293: copying bootstrap data to pipe caused "write init-p: broken pipe"": unknown

在win10使用docker部署启动失败

我按照文档中描述的启动失败了
`λ docker-compose up -d
Building web
Step 1/10 : FROM alpine:edge
---> 70997d35b3ed
Step 2/10 : MAINTAINER [email protected]
---> Using cache
---> b19d99808266
Step 3/10 : RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
---> Using cache
---> 2c58dec142e6
Step 4/10 : RUN set -x && apk update && apk add python3-dev && apk add bash && apk add tzdata && apk add gcc && apk add gettext
&& apk add libc-dev && apk add linux-headers && apk add nginx && cp -r -f /usr/share/zoneinfo/Hongkong /etc/localtime && mkdir -p /opt/w12scan && mkdir -p /run/nginx
---> Running in d567f0b1a838

帮忙解决一下,谢谢啦

创建任务后没有反应

创建任务后从上午9点到下午3点没有扫描的迹象 一直保持图中的状态 这是为什么?
QQ截图20190321143905

怎么实现分布式部署?

大牛你好,请问下分布式部署要怎么配置?我想要多部署几个client节点,在web端运行节点那一栏一直是空的,看不到运行节点的状态。

docker 启动 static文件 403 无权访问

该项目根目录 static 文件在 docker 容器中默认权限为 700,python 无权访问 static,导致 css 等静态资源无法访问。

临时解决方案:

docker exec -ti w12scan-master_web_1 bash    # 进入容器
chmod -R 777 ./static/    # 修改 static 权限

django DEBUG模式

目前使用的是django debug模式,实际线上部署发现此模式问题很多。

  1. nginx gunicorn 部署 ok
  2. 精简web端 js的大小 ok
  3. 漏洞统计优化 ok
  4. 资产管理关联页面优化 ok

搜索不到

docker下安装成功了,为何搜索不到?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.