这些操作都是我在学习docker之前的操作,现在看来确实有些幼稚了。复习一遍看看,会有不同的理解
一、安装前说明
以下操作都是在root用户执行,如果出现containerd.io版本过低或者podman-manpages冲突问题请参照最下方解决方案进行。
二、安装过程
1. 卸载老版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 安装docker 基础包
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
3. 设置稳定仓库
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4. 安装Docker Engine - Community
- 安装最新版本(latest)
yum install docker-ce docker-ce-cli containerd.io
- 安装指定版本
yum list docker-ce --showduplicates | sort -r #查看版本
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io #安装指定版本
5. 启动与测试
sudo systemctl start docker # 启动docker
docker run hello-world #测试
运行后会显示下图,说明docker安装成功。
三、安装问题解决
1. containerd.io版本过低
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install containerd.io-1.2.6-3.3.el7.x86_64.rpm #安装containerd.io
#再次重新安装docker
yum install docker-ce docker-ce-cli containerd.io
2. podman-manpages包冲突问题
在执行安装docker命令,出现包冲突js podman-manpages-1.4.2-5.module_el8.1.0+237+63e26edc.noarch
卸载 podman-manpages
yum list podman-manpages #查看 podman-manpages
yum remove podman-manpages.noarch #卸载podman-manpages.noarch
#再次重新安装docker
sudo yum install docker-ce docker-ce-cli containerd.io
安装git
sudo yum -y install git
安装docker-compose
1、安装python pip
yum -y install epel-release
dnf install -y python3
dnf install python3-paramiko
2、安装docker-compose
pip3 install docker-compose
3、验证docker-compose是否安装成功
docker-compose version
ARL(Asset Reconnaissance Lighthouse)资产侦察灯塔系统
资产灯塔,不仅仅是域名收集
简介
旨在快速侦察与目标关联的互联网资产,构建基础资产信息库。 协助甲方安全团队或者渗透测试人员有效侦察和检索资产,发现存在的薄弱点和攻击面。
挂代理访问
https://github.com/TophantTechnology/ARL
Docker 启动
拉取镜像
docker pull tophant/arl
docker-compose 启动
git clone https://github.com/TophantTechnology/ARL
cd ARL/docker/
docker-compose up -d
错误解决
输入下面这句话,然后再输入docker-compose up -d就行
docker volume create --name=arl_db
Docker 删除
docker images
docker rmi ID
docker ps -a
查看是否运行正常
docker-compose ps
tail -f *.log
登录 ARL
URL:https://127.0.0.1:5003 注意是https,不是http
默认密码: admin/arlpass
任务选项说明
编号 | 选项 | 说明 |
---|---|---|
1 | 任务名称 | 任务名称 |
2222 | 任务目标 | 任务目标,支持IP,IP段和域名。可一次性下发多个目标 |
3 | 域名爆破类型 | 对域名爆破字典大小, 大字典:常用2万字典大小。测试:少数几个字典,常用于测试功能是否正常 |
4 | 端口扫描类型 | ALL:全部端口,TOP1000:常用top 1000端口,TOP100:常用top 100端口,测试:少数几个端口 |
5 | 域名爆破 | 是否开启域名爆破 |
6 | DNS字典智能生成 | 根据已有的域名生成字典进行爆破 |
7 | Riskiq 调用 | 利用RiskIQ API进行查询域名 |
8 | ARL 历史查询 | 对arl历史任务结果进行查询用于本次任务 |
9 | crt.sh 调用 | 利用 crt.sh 网站 API 进行子域名发现 |
10 | 端口扫描 | 是否开启端口扫描,不开启站点会默认探测80,443 |
11 | 服务识别 | 是否进行服务识别,有可能会被防火墙拦截导致结果为空 |
12 | 操作系统识别 | 是否进行操作系统识别,有可能会被防火墙拦截导致结果为空 |
13 | SSL 证书获取 | 对端口进行SSL 证书获取 |
14 | 站点识别 | 对站点进行指纹识别 |
15 | 搜索引擎调用 | 利用搜索引擎结果爬取对应的URL |
16 | 站点爬虫 | 利用静态爬虫对站点进行爬取对应的URL |
17 | 站点截图 | 对站点首页进行截图 |
18 | 文件泄露 | 对站点进行文件泄露检测,会被WAF拦截 |
配置参数说明
Docker环境配置文件路径 docker/config-docker.yaml
配置 | 说明 |
---|---|
CELERY.BROKER_URL | rabbitmq连接信息 |
MONGO | mongo 连接信息 |
RISKIQ | riskiq API 配置信息 |
GEOIP | GEOIP 数据库路径信息 |
FOFA | FOFA API 配置信息 |
DINGDING | 钉钉消息推送配置 |
邮箱发送配置 | |
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 | 文件泄漏字典 |
忘记密码重置
当忘记了登录密码,可以执行下面的命令,然后使用 admin/admin123
就可以登录了。
docker exec -ti arl_mongodb mongo -u admin -p admin
use arl
db.user.drop()
db.user.insert({ username: 'admin', password: hex_md5('arlsalt!@#'+'admin123') })
FAQ
F:密码忘记了怎么办?
Q:可以执行下面的命令,然后使用admin/admin123就可以登录了。
docker exec -ti arl_mongodb mongo -u admin -p admin
use arl
db.user.drop()
db.user.insert({ username: 'admin', password: hex_md5('arlsalt!@#'+'admin123') })
F: 如何修改任务并行数量?
Q: 修改下面文件32行中的 -c 参数即可,默认为2, 重启容器生效。
https://github.com/TophantTechnology/ARL/blob/master/docker/docker-compose.yml#L32
F: 运行出现异常?
Q: 可以执行下面的三条命令并尝试触发错误观察输出有什么异常。
docker-compose ps
docker-compose logs -f --tail=10
tail -f *.log
F: 容器一直重启,查看日志提示权限错误
Q: 排查下宿主机是否开启了selinux
, 将selinux
功能关闭即可。
F: Docker 环境的 ARL 如何更新?
Q:git pull 是为了更新docker-compose.yml, docker-compose pull 是为了更新镜像
git pulldocker-compose pull docker-compose up -d
F: 任务结果为什么只有域名和IP结果?
Q: 可能任务下发时开启了全端口扫描,对于金融、银行存在防护设备的情况大量端口扫描、服务报文探测会出现异常。 可以选择Top 10端口扫描,或者关闭端口扫描,将只会探测80,443端口。
ARL绕过封禁域名
https://github.com/TophantTechnology/ARL/issues/193
- 进入目录,root权限打开config-docker.yaml文件
ARL/docker/config-docker.yaml
- 选择一个将其注释掉,注意,不要全部注释,不然无法使用
- 之后重启kali