ARL(灯塔)

1 无事发生

!!!!!兄弟姐妹们不用看了,斗象删库了。

找找其他工具吧,找到好用的扣我 QAQ。

2 工具介绍

  • ARL(Asset Reconnaissance Lighthouse)资产侦察灯塔系统旨在快速侦察与目标关联的互联网资产,构建基础资产信息库。协助甲方安全团队或者渗透测试人员有效侦察和检索资产,发现存在的薄弱点和攻击面。

3 工具安装

Docker 安装可以参考往期文章:Docker 的简单使用

  • 从 GitHub 上拉取源码(一般需要科学上网):
1
git clone https://github.com/TophantTechnology/ARL.git
  • 进入下载好的目录中构建容器卷,使用 Compose 启动:

注:若是拉取镜像失败,大概是网卡问题,需要从 NAT 修改为桥接网卡。

1
cd ARL/docker/ ; docker volume create arl_db ; docker-compose up -d
  • 当出现 done 的时候,说明工具已经搭建完成了:

image-20231120145654449

  • 访问地址:https://127.0.0.1:5003,默认情况下是会出现报错的:

image-20231120145917027

  • 需要修改 docker-compose.yaml 中的参数:
1
2
3
4
5
6
7
8
9
10
11
web:
image: tophant/arl:${ARL_VERSION:-latest}
container_name: arl_web
restart: unless-stopped
depends_on:
- mongodb
- rabbitmq
ports:
#http 服务,默认不映射出来
- "5003:80"
#- "5003:443"
  • 再修改 config-docker.yaml 中的参数:
1
2
3
4
5
6
7
8
9
10
#Fofa API 配置项
FOFA:
URL: "https://fofa.info"
EMAIL: ""
KEY: ""

RISKIQ:
EMAIL: ""
KEY: ""

  • 重启工具即可(默认账密 admin / arlpass):
1
docker-compose down ; docker-compose up -d

image-20231120150526571

4 工具使用

4.1 任务选项 & 配置文件说明

  • GUI 界面,没啥参数,过。

4.1.1 任务选项

编号 选项 说明
1 任务名称 任务名称
2 任务目标 任务目标,支持 IP,IP 段和域名。可一次性下发多个目标
3 域名爆破类型 对域名爆破字典大小, 大字典:常用 2 万字典大小。测试:少数几个字典,常用于测试功能是否正常
4 端口扫描类型 ALL:全部端口,TOP 1000:常用 top 1000 端口,TOP 100:常用 top 100 端口,测试:少数几个端口
5 域名爆破 是否开启域名爆破
6 DNS 字典智能生成 根据已有的域名生成字典进行爆破
7 域名查询插件 已支持的数据源为 12 个,alienvaultcertspottercrtshfofahunter
8 ARL 历史查询 对 arl 历史任务结果进行查询用于本次任务
9 端口扫描 是否开启端口扫描,不开启站点会默认探测 80,443
10 服务识别 是否进行服务识别,有可能会被防火墙拦截导致结果为空
11 操作系统识别 是否进行操作系统识别,有可能会被防火墙拦截导致结果为空
12 SSL 证书获取 对端口进行 SSL 证书获取
13 跳过 CDN 对判定为 CDN 的 IP, 将不会扫描端口,并认为 80,443 是端口是开放的
14 站点识别 对站点进行指纹识别
15 搜索引擎调用 利用搜索引擎搜索下发的目标爬取对应的 URL 和子域名
16 站点爬虫 利用静态爬虫对站点进行爬取对应的 URL
17 站点截图 对站点首页进行截图
18 文件泄露 对站点进行文件泄露检测,会被 WAF 拦截
19 Host 碰撞 对 vhost 配置不当进行检测
20 nuclei 调用 调用 nuclei 默认 PoC 对站点进行检测,会被 WAF 拦截,请谨慎使用该功能

4.1.2 配置文件

  • Docker 环境配置文件路径:docker/config-docker.yaml
配置 说明
CELERY.BROKER_URL rabbitmq 连接信息
MONGO mongo 连接信息
QUERY_PLUGIN 域名查询插件数据源 Token 配置
GEOIP GEOIP 数据库路径信息
FOFA FOFA API 配置信息
DINGDING 钉钉消息推送配置
EMAIL 邮箱发送配置
GITHUB.TOKEN GITHUB 搜索 TOKEN
ARL.AUTH 是否开启认证,不开启有安全风险
ARL.API_KEY arl 后端 API 调用 key,如果设置了请注意保密
ARL.BLACK_IPS 为了防止 SSRF,屏蔽的 IP 地址或者 IP 段
ARL.PORT_TOP_10 自定义端口,对应前端端口测试选项
ARL.DOMAIN_DICT 域名爆破字典,对应前端大字典选项
ARL.FILE_LEAK_DICT 文件泄漏字典
ARL.DOMAIN_BRUTE_CONCURRENT 域名爆破并发数配置
ARL.ALT_DNS_CONCURRENT 组合生成的域名爆破并发数
PROXY.HTTP_URL HTTP 代理 URL 设置

4.2 使用示例

4.2.1 资产分组

  • 资产分组功能用于整合资产范围内的域名资产到资产组中,用户也可以对资产组范围内的资产进行监控,实时监控新增资产。
  • 新建资产组,可以通过批量导入的方式将资产范围内的域名资产添加到资产组中,一个资产组中可以包含多个域名信息。

image-20231120150738492

image-20231120150743353

4.2.2 添加监控任务

  • 通过指定资产组,和添加监控任务操作,可以下发域名资产的监控任务到 ARL 中,后台将会根据运行间隔对监控任务内的资产进行扫描,用于发现监控新增的资产。

image-20231120150748141

image-20231120150753341

  • 添加成功后,点击资产监控可以查看到所有的监控任务。

image-20231120150757839

  • 通过资产分组中的添加监控任务之后,资产监控中将会展示正在运行的监控任务,运行的次数,运行间隔等信息,用户也可以通过资产组范围 ID 来检索监控范围内的相关资产内容。
  • 在任务管理中也会添加监控任务:

image-20231120150801666

4.2.3 POC 信息

  • 点击 PoC 信息,进行 ARL 自带的 POC 加载,不然后续策略配置时多数选项为空:

image-20231120150806040

image-20231120150809879

4.2.4 新建策略

  • 通过创建不同的策略,可以对资产进行不同方案的扫描,可以针对不同类型的资产,根据资产的功能创建指定的策略。

image-20231120150812944

image-20231120150816504

  • 设置策略的名称和策略描述,描述可以不用填写:

image-20231120150819655

4.2.4.1 域名和 IP 配置
  • 域名爆破类型:选择需要的字典
    • 大字典:常用 2 万字典大小;
    • 测试:少数几个字典,常用于测试功能是否正常。

image-20231120150824971

  • 端口扫描类型:
    • 测试:少数几个端口
    • TOP 100:常用 top 100 端口
    • TOP 1000:常用 top 1000 端口
    • 全部端口:所有端口 1-65535

image-20231120150828487

  • 其余选项(按需选择):
    • 域名爆破:是否开启域名爆破
    • DNS 字典智能生成:根据已有的域名生成字典进行爆破
    • Riskiq 调用:利用 RiskIQ API 进行查询域名
    • ARL 历史查询:对 arl 历史任务结果进行查询用于本次任务
    • crt.sh 调用:利用 crt.sh 网站 API 进行子域名发现
    • 端口扫描:是否开启端口扫描,不开启站点会默认探测 80,443
    • 服务识别:是否进行服务识别,有可能会被防火墙拦截导致结果为空
    • 操作系统识别:是否进行操作系统识别,有可能会被防火墙拦截导致结果为空
    • Fofa IP 查询:利用 Fofa API 进行查询域名
    • SSL 证书获取:对端口进行 SSL 证书获取
    • 服务 (python) 识别:使用 python 脚本进行服务识别

image-20231120150832036

4.2.4.2 IP 高级配置
  • 暂不理会。
4.2.4.3 站点和风险配置
  • 站点识别:对站点进行指纹识别
  • 搜索引擎调用:利用搜索引擎结果爬取对应的 URL
  • 站点爬虫:利用静态爬虫对站点进行爬取对应的 URL
  • 站点截图:对站点首页进行截图
  • 文件泄露:对站点进行文件泄露检测,会被 WAF 拦截
  • nuclei 调用:使用 nuclei 扫描器

image-20231120150837608

4.2.4.4 POC 配置
  • 按需选择:

image-20231120150840801

4.2.4.5 弱口令爆破配置
  • 按需选择:

image-20231223164526997

4.2.4.6 资产组配置
  • 选择对应资产组:

image-20231120150844984

  • 可以不指定,指定了有限制。
  • 添加完点击确定即可:

image-20231120150847593

4.2.4.7 任务下发
  • 任务下发对资产进行扫描和探测:

image-20231120150850904

  • 任务类型:
    • 资产侦查任务:目标支持 IP、IP 段和域名,对资产进行端口识别、服务识别、系统识别等。
    • 风险巡航任务:目标需要输入确定的地址(IP 或域名),对资产进行风险扫描。

image-20231120150854554

  • 这里我们选择资产侦查任务,输入目标后点击确定:

image-20231120150857755

  • 任务下发成功后,可以到任务管理里查看:

image-20231120150900777

  • 结果如下:

image-20231120151456624

5 官方挖坑补充

  • ARL 官方总体更新速度还是很勤奋得,勤奋得让人痛苦。
  • 后期使用大致会遇到这么几个问题:
    • fofa.info -> fofa.so 报错
    • nuclei 消失
  • 我在 GitHub 上翻了很久的 issue,发出一句感慨:cao!
  • 解决方式也很简单,先去 dockerhub 上搜 arl:

image-20231223172720719

  • 记住,pull 的是第二个,不是第一个。
  • pull 完成后,修改 docker-compose.yml 内容:
1
tophant/arl:${ARL_VERSION:-latest} -> tophant/arl:v2.6(最新版即可)
  • 之后再启动即可。