WenARL:批量下发ARL扫描任务

admin 2024年12月9日14:29:52评论34 views字数 6161阅读20分32秒阅读模式

WenARLs3

概述

该版本相对于其他版本 新增了 对多个灯塔服务器一起下发任务的功能,主要是我比较懒,经常有大量的资产需要信息收集,单个灯塔扫描又很慢,然后又不想一个个登录一个个点点点,然后就有了这个 ARL 偷懒小工具,程序会检查当前目录是否有配置文件,没有会自动生成,servers 参数可以对多个服务器进行同时管控,如 同时下发资产、查看任务状态(默认每台20条哈,多了不好看,但是可以调),阿西吧~ 可能有小bug哈,方便就行了。

1. 简介

Wenarl 是一款强大的命令行工具,旨在帮助用户高效地管理和执行网络扫描任务。它支持多服务器协作、任务分配、状态监控及报告导出等功能,适用于网络安全分析、资产管理和漏洞扫描等场景。

WenARL:批量下发ARL扫描任务

下载

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。
    • usernamepassword:登录认证信息。
    • • 其他字段如 domain_bruteport_scan 等为扫描选项,控制具体的扫描功能,默认不开启poc扫描,字段可自行修改,"nuclei_scan": false。

修改配置文件

  1. 1. 使用文本编辑器打开 config.json
  2. 2. 根据您的实际服务器信息修改各字段:

    • 服务器名称:确保每个服务器的 name 唯一,便于在多服务器模式下区分。
    • 服务器 URL:填写扫描服务器的 API 访问地址,确保以 / 结尾。
    • 认证信息:填写有效的 usernamepassword,确保能够成功登录服务器。
    • 扫描选项:根据需求启用或禁用特定的扫描功能。
  3. 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

说明:

  • • 在 server1nameserver2name 两台服务器上,导出任务 ID 为 taskid123taskid456 的扫描报告。

示例 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 会根据配置文件中的服务器列表,均匀分配任务到各服务器执行。

功能测试:

功能验证:

三个ARL系统 测试:
WenARL:批量下发ARL扫描任务
2
WenARL:批量下发ARL扫描任务
WenARL:批量下发ARL扫描任务

3台服务器测试批量下发功能测试216条资产

WenARL:批量下发ARL扫描任务
WenARL:批量下发ARL扫描任务
WenARL:批量下发ARL扫描任务

下发多个资产扫描任务

WenARL:批量下发ARL扫描任务
WenARL:批量下发ARL扫描任务
WenARL:批量下发ARL扫描任务
WenARL:批量下发ARL扫描任务
WenARL:批量下发ARL扫描任务

原文始发于微信公众号(SSP安全研究):WenARL:批量下发ARL扫描任务,一键轻松搞定

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月9日14:29:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   WenARL:批量下发ARL扫描任务http://cn-sec.com/archives/3485638.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息