WenARLs3
概述
该版本相对于其他版本 新增了 对多个灯塔服务器一起下发任务的功能,主要是我比较懒,经常有大量的资产需要信息收集,单个灯塔扫描又很慢,然后又不想一个个登录一个个点点点,然后就有了这个 ARL 偷懒小工具,程序会检查当前目录是否有配置文件,没有会自动生成,servers 参数可以对多个服务器进行同时管控,如 同时下发资产、查看任务状态(默认每台20条哈,多了不好看,但是可以调),阿西吧~ 可能有小bug哈,方便就行了。
1. 简介
Wenarl 是一款强大的命令行工具,旨在帮助用户高效地管理和执行网络扫描任务。它支持多服务器协作、任务分配、状态监控及报告导出等功能,适用于网络安全分析、资产管理和漏洞扫描等场景。
下载
https://github.com/WarmBrew/WenARL
2. 主要功能
-
• 配置管理:通过 config.json
文件管理多个服务器的配置,包括服务器名称、URL、认证信息及扫描选项。 -
• 用户认证:支持登录多个服务器,获取认证Token以进行后续操作。 -
• 任务管理: -
• 创建单个或多个扫描任务,支持从命令行指定目标或从文件读取目标列表。 -
• 支持多服务器模式下的任务分配,确保任务在多个服务器间均匀分配。 -
• 查询当前任务状态,支持限制查询数量。
-
-
• 报告导出: -
• 导出指定任务ID的报告,支持多服务器模式下的多任务导出。 -
• 导出所有指定任务名称的报告。
-
-
• 日志记录:所有操作和错误信息均记录到 wenarl.log
日志文件中,便于后续排查。 -
• 用户界面:使用字符画和颜色输出提升用户体验,使用表格格式美化任务列表展示。
配置指南
配置文件
-
• 文件名: config.json
-
• 位置:与 Wenarl 可执行文件相同的目录下。 -
• 默认内容,但是如果有多个服务器可根据格式继续新增不同服务器。 {"servers":[{"name":"server1name","url":"https://server1.example.com/","username":"admin","password":"password1","domain_brute_type":"big","port_scan_type":"all","domain_brute":true,"alt_dns":true,"dns_query_plugin":true,"arl_search":true,"port_scan":true,"service_detection":true,"os_detection":true,"ssl_cert":false,"skip_scan_cdn_ip":true,"site_identify":true,"search_engines":true,"site_spider":true,"site_capture":true,"file_leak":true,"findvhost":true,"nuclei_scan":false,"web_info_hunter":false},{"name":"server2name","url":"https://server2.example.com/","username":"admin","password":"password2","domain_brute_type":"big","port_scan_type":"all","domain_brute":true,"alt_dns":true,"dns_query_plugin":true,"arl_search":true,"port_scan":true,"service_detection":true,"os_detection":true,"ssl_cert":false,"skip_scan_cdn_ip":true,"site_identify":true,"search_engines":true,"site_spider":true,"site_capture":true,"file_leak":true,"findvhost":true,"nuclei_scan":false,"web_info_hunter":false}]}
配置说明
-
• servers:服务器列表,每个服务器包含以下字段: 字段详解
字段名称 类型 详细说明 name
字符串 服务器别名 :用于在命令行中引用特定服务器。建议使用具有描述性的名称以便于识别。例如, "server1name"
、"prod-server"
等。url
字符串 服务器 API 基础 URL :指定扫描服务器的入口地址。确保 URL 以斜杠 /
结尾,并且能够从本地机器访问。例如,"https://server1.example.com/"
。username
字符串 登录用户名 :用于认证和登录扫描服务器的用户名。 password
字符串 登录密码 :用于认证和登录扫描服务器的密码。 domain_brute_type
字符串 域名爆破类型 :控制域名爆破的策略和范围。常见类型包括 "big"
,具体取决于服务器支持的选项。port_scan_type
字符串 端口扫描类型 :决定进行端口扫描的范围和策略。常见选项包括 "all"
(扫描所有常见端口),也可以根据需要进行调整。domain_brute
布尔值 启用域名爆破 :设置是否启用域名爆破功能。 true
表示启用,false
表示禁用。alt_dns
布尔值 启用备用 DNS 字典生成 :用于智能生成用于域名爆破的备用 DNS 字典。 true
表示启用,false
表示禁用。dns_query_plugin
布尔值 启用 DNS 查询插件 :增强 DNS 解析功能,提升域名解析的准确性和效率。 true
表示启用,false
表示禁用。arl_search
布尔值 启用 ARL 历史查询 :利用 Advanced Research Library (ARL) 进行历史数据查询,帮助识别目标的历史信息。 true
表示启用,false
表示禁用。port_scan
布尔值 启用端口扫描 :执行端口扫描以检测目标服务器开放的端口。 true
表示启用,false
表示禁用。service_detection
布尔值 启用服务识别 :识别开放端口上运行的服务类型,如 HTTP、SSH、FTP 等。 true
表示启用,false
表示禁用。os_detection
布尔值 启用操作系统识别 :推断目标服务器运行的操作系统类型,如 Linux、Windows 等。 true
表示启用,false
表示禁用。ssl_cert
布尔值 启用 SSL 证书扫描 :检测和分析目标服务器的 SSL 证书信息。 true
表示启用,false
表示禁用。skip_scan_cdn_ip
布尔值 跳过 CDN IP 扫描 :避免对内容分发网络(CDN)提供商的 IP 进行扫描,以减少无效扫描请求。 true
表示启用,false
表示禁用。site_identify
布尔值 启用站点识别 :识别和分类目标网站的功能,如检测网站类型、技术栈等。 true
表示启用,false
表示禁用。search_engines
布尔值 启用搜索引擎扫描 :从搜索引擎收集目标网站的信息,辅助扫描任务的进行。 true
表示启用,false
表示禁用。site_spider
布尔值 启用站点爬虫 :自动爬取目标网站的页面和资源,帮助全面了解网站结构和内容。 true
表示启用,false
表示禁用。site_capture
布尔值 启用站点截图 :生成目标网站的可视化截图,便于快速查看网站外观和布局。 true
表示启用,false
表示禁用。file_leak
布尔值 启用文件泄露扫描 :检测目标网站可能存在的文件泄露漏洞,防止敏感信息泄露。 true
表示启用,false
表示禁用。findvhost
布尔值 启用虚拟主机发现 :识别目标服务器上的多个虚拟主机,提高扫描的全面性。 true
表示启用,false
表示禁用。nuclei_scan
布尔值 启用 Nuclei 扫描 :使用 Nuclei 工具执行基于模板的漏洞扫描(需要服务器支持)。 true
表示启用,false
表示禁用。web_info_hunter
布尔值 启用 Web 信息猎手 :收集和分析目标网站的详细信息,如技术栈、已知漏洞等。 true
表示启用,false
表示禁用。-
• name
:服务器别名,用于命令行指定。 -
• url
:服务器 API 的基础 URL。 -
• username
、password
:登录认证信息。 -
• 其他字段如 domain_brute
、port_scan
等为扫描选项,控制具体的扫描功能,默认不开启poc扫描,字段可自行修改,"nuclei_scan": false。
-
修改配置文件
-
1. 使用文本编辑器打开 config.json
。 -
2. 根据您的实际服务器信息修改各字段: -
• 服务器名称:确保每个服务器的 name
唯一,便于在多服务器模式下区分。 -
• 服务器 URL:填写扫描服务器的 API 访问地址,确保以 /
结尾。 -
• 认证信息:填写有效的 username
和password
,确保能够成功登录服务器。 -
• 扫描选项:根据需求启用或禁用特定的扫描功能。
-
-
3. 保存并关闭 config.json
。
功能与使用方法
Wenarl 提供多种功能,以下是详细的使用方法和示例。
常用命令参数
-
• -servers
:启用多服务器模式进行任务分配。 -
• -s <别名1,别名2,...>
:指定服务器别名,支持逗号分隔多个别名。 -
• -n <任务名称>
:设置任务名称(必填)。 -
• -t <目标>
:设置扫描目标的 IP 或域名。 -
• -f <文件路径>
:从指定文件读取扫描目标列表。 -
• -task
:查看当前任务状态。 -
• -out <任务ID1,任务ID2,...>
:导出指定任务 ID 的报告,支持多服务器模式下使用逗号分隔多个 ID。 -
• -outall
:导出所有指定任务名称的报告,适用于多服务器模式。 -
• -num <数量>
:指定查看的任务数量,配合-task
使用,默认 30,最大 20。
1. 创建扫描任务
创建单个扫描任务,指定任务名称和目标。
示例:
wenarl -n MyScanTask-t example.com
说明:
-
• 创建一个名为 MyScanTask
的扫描任务,目标为example.com
。 -
• 使用默认单服务器模式进行扫描。
2. 批量创建扫描任务
从文件中批量读取扫描目标,并为每个目标创建扫描任务。
示例:
wenarl -n BatchScan-f targets.txt
说明:
-
• 从 targets.txt
文件中读取目标,每行一个目标。 -
• 为每个目标创建名称为 BatchScan
的扫描任务。
3. 查看任务状态
查询当前扫描任务的状态,默认显示最近 30 条任务,最多可显示 20 条。
示例:
wenarl -task -num 20
说明:
-
• 查看最近 20 条扫描任务的状态。 -
• 显示任务名称、站点统计、域名统计、状态、开始时间、结束时间及任务 ID。
4. 导出扫描报告
导出特定任务的扫描报告,支持单个或多个任务 ID。
示例 1:导出单个任务报告
wenarl -out taskid123
示例 2:导出多个任务报告
wenarl -out taskid123,taskid456
说明:
-
• 导出任务 ID 为 taskid123
(和taskid456
)的扫描报告。 -
• 报告将以 .xlsx
格式保存,文件名包含任务名称和任务 ID。
5. 导出所有指定任务名称的报告
导出所有具有特定任务名称的扫描报告,适用于多服务器模式。
示例:
bash复制代码wenarl -n MyScanTask-outall
说明:
-
• 导出所有名为 MyScanTask
的扫描任务报告。 -
• 在多服务器模式下,将导出各服务器上所有匹配的任务报告。
6. 多服务器模式
在多服务器环境下进行任务分配和管理。
示例 1:启用多服务器模式并创建任务
wenarl -servers -n MultiServerScan-t example.com
说明:
-
• 启用多服务器模式。 -
• 创建一个名为 MultiServerScan
的扫描任务,目标为example.com
,任务将在多个服务器间分配执行。
示例 2:指定特定服务器并导出报告
wenarl -servers -s server1name,server2name -n MyScanTask-out taskid123,taskid456
说明:
-
• 在 server1name
和server2name
两台服务器上,导出任务 ID 为taskid123
和taskid456
的扫描报告。
示例 3:在多服务器模式下批量创建任务
wenarl -servers -n BatchScan-f targets.txt
说明:
-
• 启用多服务器模式。 -
• 从 targets.txt
文件中读取多个目标,并将名称为BatchScan
的扫描任务分配到多个服务器执行。
日志与错误处理
日志文件
-
• 文件名: wenarl.log
-
• 位置:与 Wenarl 可执行文件相同的目录下。 -
• 内容:记录所有操作日志和错误信息,便于问题排查。
错误提示
-
• 程序在控制台以红色文字提示错误信息,同时将详细错误记录到 wenarl.log
文件中。 -
• 常见错误包括配置文件缺失、服务器登录失败、任务创建失败等。
成功提示
-
• 成功操作(如任务创建、报告导出等)会以绿色文字在控制台提示,并记录到日志文件中。
注意事项
-
• 配置文件安全: config.json
包含服务器的认证信息,请妥善保管,避免泄露。 -
• 任务名称唯一性:建议为不同任务设置唯一名称,便于管理和导出报告。 -
• 多服务器负载均衡:在多服务器模式下,确保各服务器的负载均衡,避免单一服务器过载。 -
• 报告导出:导出的报告默认为 .xlsx
格式,文件名由任务名称和任务 ID 组成,确保磁盘空间充足。 -
• 网络连接稳定性:确保本地机器能够稳定访问配置文件中指定的服务器 URL,避免网络问题导致操作失败。 -
• 并发控制:程序内置并发控制(每台服务器最多 10 个并发任务),根据实际需求和服务器性能适当调整。
常见问题
Q1:首次运行程序时,配置文件不存在怎么办?
A1:
-
• 程序会自动创建默认的 config.json
文件,并提示您进行修改。 -
• 请使用文本编辑器打开 config.json
,根据实际服务器信息填写相关配置后重新运行程序。
Q2:登录服务器失败,如何解决?
A2:
-
• 检查 config.json
中服务器的 URL、用户名和密码是否正确。 -
• 确保服务器 API 可访问,且网络连接正常。 -
• 查看 wenarl.log
日志文件,获取详细的错误信息进行排查。
Q3:任务创建失败,出现错误提示怎么办?
A3:
-
• 检查目标 IP 或域名的格式是否正确。 -
• 确认服务器配置正确,且有足够的资源处理新任务。 -
• 查看控制台的错误提示和日志文件中的详细记录,定位具体问题。
Q4:导出报告失败,显示权限错误?
A4:
-
• 确认您有权限在服务器上导出报告。 -
• 确保任务已完成,且任务 ID 正确。 -
• 查看 wenarl.log
中的详细错误信息,进一步排查问题。
Q5:如何在多服务器模式下分配任务?
A5:
-
• 使用 -servers
参数启用多服务器模式,并通过-s
指定需要操作的服务器别名,如果不指定则默认使用所有已配置的服务器。 -
• Wenarl 会根据配置文件中的服务器列表,均匀分配任务到各服务器执行。
功能测试:
功能验证:
3台服务器测试批量下发功能测试216条资产
下发多个资产扫描任务
原文始发于微信公众号(SSP安全研究):WenARL:批量下发ARL扫描任务,一键轻松搞定
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论