ARL(资产侦察灯塔)系统
ARL资产侦察灯塔系统备份项目,已成功运行
简介
旨在快速侦察与目标相关的互联网资产,构建基础资产信息库。 协助甲方安全团队或渗透测试人员有效侦察和检索资产,发现存在的薄弱点和攻击面。
ARL删库后,备份项目使用到ARL-NPoC、arl_files等项目,无法运行,大多数人使用docker运行ARL,docker镜像同样被删除,无法拉取镜像,需要修改安装脚本调试环境。
修改内容
- 更新为centos8版本运行(docker内的centos7无法启动systemctl)
- docker运行模式改为单一docker镜像,无需安装docker-compose(对于大多数人只用一台服务器的场景下,前后端分离没有必要)
- 修改centos软件源使用cloudflare代理(家里的电脑连接官方源速度极慢)
- 修改pip源使用cloudflare代理(国内服务器经常连不上pypi源)
- 加入指纹库(eHole
1017
、ehole_magic24981
、EHole_magic_magic25715
、FingerprintHub2839
、dismap4598
,去重后21545
,可以手动更新,使用ARL导出的格式,有新指纹可以提issue,或者直接修改json文件通过docker内源码安装)docker快速安装没有ehole_magic相关指纹,去重后5k多,可以手动更新
- nmap使用最新版本(既然可以yum安装新版本,为何要rpm安装旧版本)
- nuclei使用最新版本(通过github action每日更新)
- ARL-NPoC、arl_files、geoip均移至tools目录下(建立多个项目太麻烦,且使用github action每日更新)
- 工具增加执行权限(原安装脚本有问题,部分工具没有执行权限,运行任务会显示error状态)
- 提高数据库连接超时时间(参考他人二次开发的做法,实际上没感觉到区别,原版1c1g配置依然可以正常运行)
- 删除域名及ip段限制,12000ms超时问题已解决(没有人会喜欢自己的工具受到限制)
- 提高工具并发数(大部分都是在云服务器上运行,并发性能足够,已测试)
如果经常出现加入大量任务后超时的情况,请通过arl-worker.service降低并发数
- 使用cloudflare代理docker官方源(因为众所周知的原因,docker源目前国内无法使用)
系统要求
建议采用Docker内源码安装方式运行。系统配置建议:CPU:4线程 内存:8G 带宽:10M。 由于自动资产发现过程中会有大量的发包,建议采用云服务器可以带来更好的体验。
Docker 安装(快速)
docker run --privileged -it -d -p 5003:5003 --name=arl --restart=always docker.adysec.com/adysec/arl /usr/sbin/init
docker exec -it arl bash
# docker内运行,上传docker镜像会隐去硬编码的数据库连接密码,因此需要重设密码
rabbitmqctl start_app
# 建议执行后稍等片刻再运行下面的命令,否则可能报错
rabbitmqctl add_user arl arlpassword
rabbitmqctl add_vhost arlv2host
rabbitmqctl set_user_tags arl arltag
rabbitmqctl set_permissions -p arlv2host arl ".*" ".*" ".*"
cd /etc/systemd/system && systemctl restart arl*
exit
如遇mongod服务问题导致timeout of 12000ms exceeded
,请尝试在docker启动中加入路径-v /sys/fs/cgroup:/sys/fs/cgroup
Docker 内源码安装(最新版,需要为境外网络环境,且网络稳定)
docker run --privileged -it -d -p 5003:5003 --name=arl --restart=always docker.adysec.com/library/centos /usr/sbin/init
docker exec -it arl bash
# docker内运行,通过源码安装ARL
curl https://raw.githubusercontent.com/adysec/ARL/master/misc/setup-arl.sh >install.sh
bash install.sh
exit
docker内执行后直接exit退出即可
Ubuntu 下可以直接执行 apt-get install docker.io docker-compose -y
安装相关依赖
源码安装
原版ARL仅适配centos 7,我更新至仅支持centos8(centos:latest)
如果在其他目录可以创建软链接,且安装了四个服务分别为arl-web
, arl-worker
, arl-worker-github
, arl-scheduler
wget https://raw.githubusercontent.com/adysec/ARL/master/misc/setup-arl.sh
chmod +x setup-arl.sh
./setup-arl.sh
DNS爆破优化
本机安装smartdns,以ubuntu为例
apt install smartdns -y
curl https://github.com/adysec/ARL/raw/master/tools/smartdns.conf > /etc/smartdns/smartdns.conf
systemctl restart smartdns
docker exec -it arl bash
#docker内运行
tee /etc/resolv.conf <<"EOF"
nameserver 本机ip
nameserver 180.76.76.76
nameserver 4.2.2.1
nameserver 1.1.1.1
EOF
查看服务状态
systemctl status arl-web
systemctl status arl-worker
systemctl status arl-worker-github
systemctl status arl-scheduler
ARL修改
# 一键删站
docker stop arl && docker rm arl
# 删除镜像
docker rmi arl
# 改poc,poc位置/opt/ARL-NPoC
docker exec -it arl bash
systemctl restart arl*
# 改指纹,/opt/ARL/tools/指纹数据.json
docker exec -it arl bash
cd /opt/ARL && python3.6 tools/add_finger.py
特性
- 域名资产发现和整理
- IP/IP 段资产整理
- 端口扫描和服务识别
- WEB 站点指纹识别
- 资产分组管理和搜索
- 任务策略配置
- 计划任务和周期任务
- Github 关键字监控
- 域名/IP 资产监控
- 站点变化监控
- 文件泄漏等风险检测
- nuclei PoC 调用
- WebInfoHunter 调用和监控
截图
- 登录页面
默认端口5003(https),默认用户名密码admin/arlpass
- 任务页面
- 子域名页面
- 站点页面
- 资产监控页面 详细说明可以参考:资产分组和监控功能使用说明
- 策略页面
- 筛选站点进行任务下发 详细说明可以参考:2.3-新添加功能详细说明
- 计划任务 详细说明可以参考:2.4.1-新添加功能详细说明
- GitHub 监控任务
任务选项说明
编号 | 选项 | 说明 |
---|---|---|
1 | 任务名称 | 任务名称 |
2 | 任务目标 | 任务目标,支持IP,IP段和域名。可一次性下发多个目标 |
3 | 域名爆破类型 | 对域名爆破字典大小,大字典:常用2万字典大小。测试:少数几个字典,常用于测试功能是否正常 |
4 | 端口扫描类型 | ALL:全部端口,TOP1000:常用top 1000端口,TOP100:常用top 100端口,测试:少数几个端口 |
5 | 域名爆破 | 是否开启域名爆破 |
6 | DNS字典智能生成 | 根据已有的域名生成字典进行爆破 |
7 | 域名查询插件 | 已支持的数据源为13个,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拦截,请谨慎使用该功能 |
21 | WIH 调用 | 调用 WebInfoHunter 工具在JS中收集域名、AK/SK等信息 |
22 | WIH 监控任务 | 对资产分组中的站点周期性调用 WebInfoHunter 工具在JS中域名等信息进行监控 |
常见问题
请访问以下链接常见问题