ARL(灯塔)
无事发生
- 兄弟姐妹们不用看了,斗象删库了。
- 找找其他工具吧,找到好用的扣我QAQ。
工具介绍
- ARL(Asset Reconnaissance Lighthouse)资产侦察灯塔系统旨在快速侦察与目标关联的互联网资产,构建基础资产信息库。 协助甲方安全团队或者渗透测试人员有效侦察和检索资产,发现存在的薄弱点和攻击面。
工具安装
- 工具地址:https://github.com/TophantTechnology/ARL
- 安装 ARL(使用 Docker 安装也只建议使用 Docker):
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 的时候,说明工具已经搭建完成了:

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

- 需要修改 docker-compose.yaml 中的参数:
1 | web: |
- 再修改 config-docker.yaml 中的参数:
1 | #Fofa API 配置项 |
- 重启工具即可(默认账密 admin/arlpass):
1 | docker-compose down ; docker-compose up -d |

工具使用
任务选项 & 配置文件说明
- GUI 界面,没啥参数,过。
任务选项
| 编号 | 选项 | 说明 |
|---|---|---|
| 1 | 任务名称 | 任务名称 |
| 2 | 任务目标 | 任务目标,支持IP,IP段和域名。可一次性下发多个目标 |
| 3 | 域名爆破类型 | 对域名爆破字典大小, 大字典:常用2万字典大小。测试:少数几个字典,常用于测试功能是否正常 |
| 4 | 端口扫描类型 | ALL:全部端口,TOP1000:常用top 1000端口,TOP100:常用top 100端口,测试:少数几个端口 |
| 5 | 域名爆破 | 是否开启域名爆破 |
| 6 | DNS字典智能生成 | 根据已有的域名生成字典进行爆破 |
| 7 | 域名查询插件 | 已支持的数据源为12个,alienvault,certspotter,crtsh,fofa,hunter 等 |
| 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拦截,请谨慎使用该功能 |
配置文件
- 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设置
使用示例
资产分组
- 资产分组功能用于整合资产范围内的域名资产到资产组中,用户也可以对资产组范围内的资产进行监控,实时监控新增资产。
- 新建资产组,可以通过批量导入的方式将资产范围内的域名资产添加到资产组中,一个资产组中可以包含多个域名信息。


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


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

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

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


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


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

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

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

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

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

POC配置
- 按需选择:

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

资产组配置
- 选择对应资产组:

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

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

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

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

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

- 结果如下:

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

- 记住,pull 的是第二个,不是第一个。
- pull 完成后,修改 docker-compose.yml 内容:
1 | tophant/arl:${ARL_VERSION:-latest} -> tophant/arl:v2.6(最新版即可) |
- 之后再启动即可。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yongz丶!










