Active scanning of network assets
利用ssoc agent实现网络资产主动扫描
2023-11-10 v0.1.0 初始测试版本
2023-11-13 v0.1.1 资产扫描功能优化, 加入web指纹探测功能
2023-11-15 v0.1.2 优化扫描数据的处理, 对接后端上报接口的数据结构
2023-11-17 v0.2.0 实现远程调用的内部API, 实时进度显示
2023-11-20 v0.2.1 实现禁止扫描的白名单ip设置
2023-11-29 v0.3.0 实现web站点截图功能
2023-11-30 v0.3.1 实现通过内部tunnel上报, web站点截图功能优化
2023-12-20 v0.3.2 web指纹加载逻辑升级, 支持自定义三方指纹库动态加载和更新
2023-12-25 v0.4.0 支持设置扫描时间段(定时暂停与开始, beta)
2023-12-25 v0.4.1 优化任务计数逻辑, 提升扫描进度百分比的精确度
2023-12-25 v0.4.2 修复扫描只一个大段网段的某一个端口时, 导致的任务异常退出问题
2023-12-25 v0.4.3 修复FingerPrint子任务调度相关问题
2024-01-02 v0.4.4 内部HTTP API支持扫描排除时间段设置
2024-01-03 v0.4.5 修复扫描速率参数设置问题
2024-01-05 v0.4.5 优化扫描参数传入
2024-01-06 v0.4.6 优化扫描排除时间功能,现支持更加智能地排除开盘时间
2024-01-06 v0.4.6 整理完善文档
2024-01-08 v0.4.7 放宽传输层最大发包速率上限
2024-01-08 v0.4.7 修复内置TOP5000端口号部分错误
2024-01-09 v0.4.8 修复对监视器的通道关闭的处理相关错误
2024-01-10 v0.4.8 修复站点截图模块一些边界条件问题
2024-01-16 v0.4.9 内部HTTP API升级改造
2024-01-16 v0.4.9 内部HTTP API支持展示上一次历史任务信息
2024-01-17 v0.4.9 内部HTTP API任务详细信息数据结构优化
2024-01-17 v0.4.9 扫描任务状态相关功能优化
2024-01-17 v0.4.9 支持展示和动态计算扫描开始时间,扫描结束时间和扫描耗时
2024-01-17 v0.4.9 实时上报扫描结果时, 加入了扫描任务ID, 方便后期查询
2024-01-17 v0.4.9 整理完善文档
2024-01-29 v0.4.10 修复上报的资产信息不带location的问题
2024-01-29 v0.5.0 新增扫描手动暂停接口
- 主机存活扫描(icmp)
- 主机端口开放扫描(支持syn和tcp全连接方式)
- 主机端口服务识别
- HTTP指纹识别
- 数据上报(基于lua接口的管道)
- 实现内部API远程调用的接口(创建扫描与获取实时扫描状态)
- 支持CIDR和地址范围(192.168.1.1-100)格式的目标资产输入
- 支持禁止扫描的白名单ip设置, 支持ip,CIDR,地址范围以及用","分割组合输入
- web站点截图功能, 并上传至minio图床
- 支持三方指纹库动态加载和更新(基于三方依赖)
- 设置扫描时间段(定时暂停与开始)
- 遇到一些边界条件时稳定性优化
- syn扫描时实时显示进度
- 常见UDP协议扫描
- 优化扫描速度
- web HTTP指纹识别优化
- web HTTP指纹数据库自定义(中心端)
- TCP 指纹模块优化(支持更多协议)
- TCP 指纹模块加入安全相关指纹(FRP,CS listener,msf listener....)
- 优化扫描结果的数据结构
- 分布式集群扫描,智能分配扫描任务
- 处理模块实时返回数据的问题
- 支持端口排除项(端口,端口范围以及用","分割组合输入)
- 尝试处理 lua脚本更新 旧的扫描任务没有强制停止问题
- ……
直接查看示例
获取当前扫描服务状态
运行扫描任务(如果已有扫描任务正在进行则无法运行)
参数 ( * 为必填项):
target
* 目标IP/CIDR/IP范围
location
* 网络位置
name
* 任务名称
mode
模式 "tcp"(默认)/"syn"
port
端口 默认top1000
rate
传输层协议基础发包速率
timeout
超时时间(ms)
httpx
是否开启http指纹探测
fingerDB
指定web指纹库三方依赖(不指定则使用内置默认指纹库)
screenshot
是否开启站点截图功能
ping
是否开启ping存活探测
pool_ping
ping探测协程数
pool_scan
scan协程数
pool_finger
指纹识别协程数
excludeTimeRange
扫描排除时间段 示例"daily,9:00,17:00"
例子:
{
"target":"192.168.1.1/24",
"location":"测试本地网",
"name":"测试扫描任务",
"port":"top1000",
"httpx":true,
"screenshot":true
}
local rr = vela.radar{
name = "radar",
finger = {timeout = 500 , udp = false , fast = false},
minio = {accessKey="xxx" , secretKey="xxx" , endpoint="xxx" , useSSL=false}
}
local es = vela.elastic.default("vela-radar-%s" , "$day")
rr.pipe(function(host)
es.send(host)
end)
-- 启动服务
rr.start()
-- 启动内部API调用功能
rr.define()
-- 开启扫描任务
rr.task("192.168.1.1/24").port("top1000").httpx(true).exclude("192.168.1.100,192.168.1.10-20").run()
-- 关闭主机ping存活探测 .ping(false)
-- web快照截图 .screenshot(true)
-- 指定指纹库 .fingerDB("radar-http-finger.json")
-- 指定扫描时间段 .excludeTimeRange("daily","15:00","15:02")
- 在做外网探测时, 可能会因为syn的包过多, 导致网络无法链接