最新版 Kali 部署灯塔 ARL 教程(一):零基础也能会

张开发
2026/4/11 20:55:06 15 分钟阅读

分享文章

最新版 Kali 部署灯塔 ARL 教程(一):零基础也能会
目录一、工具介绍二、环境准备1、前期准备2、清理历史缓存三、安装步骤1、解压缩ARL-2.6.12、将镜像加载到本地3、加载MongoDB文件镜像4、加载RabbitMQ镜像文件5、查看镜像是否加载到本地6、修改灯塔配置⽂件7、创建数据卷8、启动灯塔ARL环境四、系统文件配置修改1、域名限制规则2、修改方法五、灯塔中FOFA的使用六、扩充子域名字典/敏感文件泄露字典配置步骤1、进入配置文件路径2、传入字典文件3、合并字典七、指纹添加1、添加步骤2、报错排除一、工具介绍灯塔 ARL全称资产侦察灯塔系统是一款强大的网络资产侦察工具。它具备域名资产发现和整理、IP/IP段资产整理、端口扫描和服务识别等多种功能。Kali Linux 作为专业的渗透测试操作系统拥有丰富的安全工具。在 Kali 系统上搭建灯塔 ARL能够充分利用 Kali 的环境优势更高效地进行网络资产侦察与管理为网络安全评估和渗透测试等工作提供有力支持。以下是详细的搭建教程。ARL 依赖 Linux 内核环境其组件未提供 Windows 兼容版本官方也明确表示暂不支持 Windows 系统。若想在 Windows 环境下使用可通过 WSL 2Docker 或虚拟机等虚拟化技术间接部署。以下以灯塔ARL2.6.1版本为例进行部署讲解二、环境准备1、前期准备灯塔ARL配置文件通过网盘分享的文件灯塔环境打包.rar 链接: https://pan.baidu.com/s/1bfLefA3V4QZMfjNGEBadJQ?pwdrwws 提取码: rwws将灯塔ARL的配置文件全部迁移到kali里放在一个文件夹方便后续的维护。2、清理历史缓存如果以前安装过灯塔ARL的要先删除之前的缓存文件我这里采用一台未安装过的kali演示。查看docker容器列表docker ps -a未安装的可以跳过以下删除步骤停止名为或ID为 xxx的Docker容器运行docker stop xxx强制删除名为或ID为xxx的Docker容器docker rm -f xxx或批量删除系统中所有的Docker容器docker rm $(docker ps -aq)批量删除系统中所有的Docker镜像docker rmi $(docker images -aq)三、安装步骤1、解压缩ARL-2.6.1unzip ARL-2.6.1.zip2、将镜像加载到本地将arl_2.6.1.tar文件中所包含的Docker镜像加载到本地Kali Linux系统的Docker环境中为后续创建和运行基于该镜像的容器做准备。在存放ARL的配置文件路径中执行以下指令docker load arl_2.6.1.tar最后出现Loaded image: tophant/arl:v2.6.1表明镜像已经成功加载到本地docker环境中。3、加载MongoDB文件镜像将之前放进kali中几个文件的打包好的MongoDB数据库部分的镜像文件加载到本地Docker环境中以便后续基于该镜像创建和运行与灯塔ARL相关的 MongoDB容器用于数据存储等功能。docker load arl_mongo.tar4、加载RabbitMQ镜像文件将打包的归档文件arl_rabbitmq.tar RabbitMQ 消息队列服务对应的镜像文件加载到本地Docker环境中。docker load arl_rabbitmq.tar5、查看镜像是否加载到本地再次查看docker列表可以看到前面加载到本地的几个镜像。docker images6、修改灯塔配置⽂件路径/ARL-2.6.1/docker/.env由于.env文件一般是隐藏文件所以要用命令ls -la看到.env文件用vim编辑器打开里面的内容修改为ARL_VERSIONv2.6.17、创建数据卷如果是第一次安装灯塔ARL还需要创建一个名为arl_db的Docker数据卷用来永久保存ARL的数据库数据指令如下docker volume create arl_db返回显示arl_db即表示创建成功。8、启动灯塔ARL环境docker-compose up -d看到arl_xxx五个镜像启动成功即可查看正在运⾏的docker容器docker ps -a其中arl_web 容器的端口映射0.0.0.0:5003→443/tcp说明ARL Web服务成功绑定到Kali主机的5003端口支持 IPv4/IPv6 双栈访问直接在主机浏览器访问http://Kali内网IP:5003 即可登录 ARL 后台。默认账号admin默认密码arlpass四、系统文件配置修改1、域名限制规则灯塔默认是⽆法扫描edu、org、gov网站的但是可以通过注释系统文件中的设置解除限制。示例2、修改方法1进⼊灯塔目录中docker⽂件夹中用vim编辑器按i键进入编辑模式打开config-docker.yaml⽂件将forbidden_domains模块注释掉。用#号注释掉后按ESC退出编辑模式输入:wq保存并退出2进入ARL-2.6.1/APP打开config.py和config.yaml.example文件修改相应位置config.py文件中修改成下图样式config.yaml.example文件找到FORBIDDEN_DOMAINS修改成下面的内容3再切换到/ARL-2.6.1/docker⽬录1.docker ps -a //查看容器ID2.docker exec -it 容器ID /bin/bash //进⼊容器可以看到arl_web 对应的容器 ID38xxxxxec进入容器docker exec -it 38xxxxxxec /bin/bash然后对config.py、config.yaml、config.yaml.example进行修改但是前面我们已经对config.py和config.yaml.example进行过修改了会同步更新到容器里而config.yaml 是容器运行时生成的配置文件不会直接存在于宿主机的目录里要在容器里进行修改且需容器安装vim等编辑器。所以我这里直接将config.yaml复制到kali修改后再复制回容器里# 复制 config.yaml核心生效文件 docker cp 容器ID:/code/app/config.yaml /home/su1/SNGJ/ARL/ARL-2.6.1/app/用宿主机自带的vim编辑器修改文件内容FORBIDDEN_DOMAINS: []设置为空数组彻底解除所有域名限制。保存后退出把文件强制复制回容器当前目录下执行docker cp -a config.yaml 容器ID:/code/app/然后重启 ARL 容器修改的禁止域名配置才会生效#停止当前ARL服务 docker-compose down #重新启动 ARL 服务加载新配置 docker-compose up -d验证容器运行状态确认配置生效:docker ps能看到 5 个 ARL 容器全部 Up 状态说明重启成功。4访问http://Kali内网IP:5003验证ARL 后台正常运行,再次测试成功创建扫描.edu网站任务五、灯塔中FOFA的使用灯塔ARL刚开始安装使用的时候是默认无法使用fofa的需要我们自行配置FOFA的key和邮箱仅配置key也可以使用如果没有的话可以不配置。在docker目录下的config-docker.yaml文件进行配置作者没有就不演示了。六、扩充子域名字典/敏感文件泄露字典ARL资产侦察灯塔系统默认的子域名字典是中小型字典约2万个可能不足以满足我们的信息收集需求我们可以自行扩充。配置步骤1、进入配置文件路径进入docker目录下的config-docker.yaml⽂件2、传入字典文件需要将准备好的字典上传到灯塔所在服务器然后将字典传⼊arl_web中docker cp 【宿主机字典路径】 【容器名/容器ID:容器内目标路径】宿主机路径只要是你 Kali 系统里能访问到的目录比如 /home/su1/字典/、/root/工具/ 等都可以填容器内路径必须是 /code/app/dicts/ARL子域名字典的标准存放目录如果你在 Kali 终端里已经 cd 到了字典所在的文件夹直接用文件名即可docker cp xx(你要增加的文件).txt arl_web:/code/app/dicts/3、合并字典进⼊字典目录docker exec -it 容器ID /bin/bash //进⼊容器 docker ps | grep arl_web | awk {print $1} //直接拿到当前运行的 arl_web 容器 ID; /code/app/dicts //进⼊字典⽬录, 能看到 17w_subdomain.txt,说明环境正确将上传的字典追加进domain_2w.txtcat 17w_subdomain.txt | tee -a domain_2w.txt //将17w字典追加进去验证合并结果统计行数wc -l domain_2w.txt可以看到统计结果是19万行,说明成功将17万路径合并成功同样的扩充敏感文件泄露字典方法按照上⾯⼀样的操作把你传入容器敏感文件字典如xxx.txt追加到file_top_2000.txt⽂件即可。查看追加结果wc -l file_top_2000.txt重启使配置生效systemctl restart containerd sudo systemctl daemon-reload sudo systemctl restart docker然后Docker 重启完成后把 ARL 服务也重新启动让你合并的字典生效。七、指纹添加灯塔 ARL在完成全新安装后系统默认不会预置任何指纹规则库因此需要管理员手动添加自定义指纹以完善资产识别能力保障后续资产探测、漏洞扫描等核心功能的准确性与全面性所谓指纹就是能识别服务器、应用、组件、服务等各类网络资产的特征标识。1、添加步骤添加指纹脚本下载地址https://github.com/loecho-sec/ARL-Finger-ADD下载好压缩包之后将其传入你搭建灯塔ARL的服务器里我这里以之前存放字典的路径演示1. 进入存放压缩包的路径解压压缩包unzip ARL-Finger-ADD-main.zip执行后会生成 ARL-Finger-ADD-main 文件夹。2进入解压后的目录cd ARL-Finger-ADD-main3确认文件存在ls能看到 ARL-Finger-ADD.py、finger.json、README.md就说明解压成功。4 执行脚本批量导入指纹先确认 ARL 服务正常运行docker ps | grep arl_web5执行导入命令替换成你的信息# 示例把IP和密码换成你自己的默认密码arlpasspython3 ARL-Finger-ADD.py http://IP:5003/ admin ARL密码2、报错排除如果遇到导入失败情况先排除是不是文件损坏查看文件是否为空文件不为空能正常查看若果返回Expecting value: line 1 column 1 (char 0) 这个报错不是 finger.json 的问题而是ARL 接口返回了空数据导致脚本解析 JSON 失败。直接测试 ARL 登录看接口是否正常执行这条命令替换成你的密码curl -X POST http://IP:5003/api/user/login \ -H Content-Type: application/json \ -d {username:admin,password:密码}正常返回JSON 格式{code:200,message:success,data:{token:xxx}}但我这里返回 302 Found 的 HTML 页面说明请求被 Nginx 重定向了根本没进到 ARL 的 API 接口所以脚本拿到的不是 JSON而是 HTML触发了 JSON 解析错误。因为ARL启用了HTTPS我用 http:// 访问被 Nginx 强制重定向到 https://所以返回 302改成https测试成功再次执行脚本导入python3 ARL-Finger-ADD.pyhttps://IP:5003/ admin ARL密码

更多文章