子域名扫描子系统
SubdomainScan是一款分布式子域名扫描系统,允许轻松集成多种子域名扫描工具,目前支持subfinder、amass、oneforall
- mongo(必须,数据库,存放扫描结果)
- rabbitmq(必须,消息队列,用于存放、消费扫描任务)
- heartbeat(可选,心跳监控,定时发送udp心跳,需部署安装服务端)
- fluentd(可选,控制台日志同步给fluentd处理)
Windows/Linux
建议使用python3.8及以上
推荐使用docker部署运行
docker run -d \
--name subdomainscan \
--restart=always \
-e rabbitmq_host=xxx \
-e rabbitmq_port=5672 \
-e rabbitmq_username=xxx \
-e rabbitmq_password=xxx \
-e rabbitmq_queue_name=subdomain \
-e mongo_host=xxx \
-e mongo_port=27017 \
-e mongo_username=xxx \
-e mongo_password=xxx \
-e mongo_database=src \
smilexxfire/subdomainscan
若部署了可选配置,添加以下环境变量
-e heartbeat_open=true \
-e heartbeat_host=xxx \
-e heartbeat_port=5006 \
-e fluentd_open=true \
-e fluentd_host=xxxx \
-e fluentd_port=24224 \
-e fluentd_match=secret_subdomainscan
通过源代码
git clone https://github.com/smilexxfire/SubdomainScan.git
pip install -r requirements.txt
# linux需要添加可执行权限
chmod +x thirdparty/*
修改config/default.ini
配置文件,填入对应配置值
接着运行python subdomain_worker.py
即可开启监听,等待任务发布
oneforall扫描节点需单独部署:文档
目前仅提供源代码的方式部署
git clone https://github.com/smilexxfire/SubdomainScan.git
pip install -r requirements.txt
修改producer.py
文件
接着运行python producer.py
即可发布扫描任务,若需要通过资产名称一键发送多个任务,需部署资产管理子系统