红队专题-开源资产扫描系统-ARL资产灯塔系统
GitHub地址:https://github.com/ki9mu/ARL-plus-docker/releases。爬取exploit_db,github,seebug,metasploit,vulhub等多个平台的漏洞信息。源码地址https://github.com/TophantTechnology/ARL。默认 有 dockercompose环境并 启动。config-docker.ya
·
docker restart 29690f30ec93 && docker restart 097f21f20565 && docker restart 0d5dbaa288c3 && docker restart c3bc978c70cf
rmi
docker stop 29690f30ec93 && docker stop 097f21f20565 && docker stop 0d5dbaa288c3 && docker stop c3bc978c70cf && docker stop a1c85e9a1585
docker rm 29690f30ec93 && docker rm 097f21f20565 && docker rm 0d5dbaa288c3 && docker rm c3bc978c70cf && docker rm a1c85e9a1585
git clone https://github.com/TophantTechnology/ARL
unzip
docker volume create --name=arl_db
docker-compose up -d
admin/arlpass
980c23be6bf3 tophant/arl:latest "sh -c 'wait-for-it.…" About a minute ago Up About a minute arl_scheduler
01606d856a00 tophant/arl:latest "sh -c 'gen_crt.sh; …" About a minute ago Up About a minute 0.0.0.0:5003->443/tcp, :::5003->443/tcp arl_web
21bbc6441e90 tophant/arl:latest "sh -c 'wait-for-it.…" About a minute ago Up About a minute arl_worker
4e9080c7201a mongo:4.0.27 "docker-entrypoint.s…" About a minute ago Up About a minute 27017/tcp arl_mongodb
62945667115f rabbitmq:3.8.19-management-alpine "docker-entrypoint.s…" About a minute ago Up About a minute 4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 15691-15692/tcp, 25672/tcp arl_rabbitmq
docker restart 980c23be6bf3 && docker restart 01606d856a00 && docker restart 21bbc6441e90 && docker restart 4e9080c7201a && docker restart 62945667115f
docker exec -it 4e9080c7201a /bin/bash
mongo --host 127.0.0.1 --port 27017 --username arl --password arlpassword --authenticationDatabase arlv2host
系统
-> 跳过CDN
\》ARL历史
\》DNS字典
pip install requests-ntlm==1.2.0 -i "https://pypi.doubanio.com/simple/"
pip install Flask==2.0.3 -i "https://pypi.doubanio.com/simple/"
Flask-WTF==1.0.0
pymongo==3.13.0
flask-restx==1.0.3
psutil==5.7.2
celery==5.1.2
colorlog==6.7.0
dnspython==2.0.0
tld==0.12.6
geoip2==2.9.0
pyOpenSSL==22.1.0
python-crontab==2.7.1
lxml==4.8.0
pyquery==1.4.3
openpyxl==3.0.0
PyMySQL==1.0.2
xlwt==1.3.0
dnslib==0.9.23
requests-ntlm==1.2.0
pycryptodomex==3.17
3.9
pip install backports.zoneinfo
pip install tzdata
cf030d6af269676d1957d0cb774f298b
/api/policy/
/api/policy/add/
/api/poc/?plugin_type=brute
/api/poc/?plugin_type=poc
massdns.exe 是一个用于进行大规模 DNS 解析的工具。它是一个开源的命令行工具,可以在各种操作系统上运行。
massdns.exe 的主要功能是对域名进行批量解析,它通过并发地向 DNS 服务器发送 DNS 请求,并收集响应结果。这使得它能够快速地处理大量域名,并提供了一种有效的方法来验证和收集关于域名的信息。
使用 massdns.exe,您可以执行以下任务:
1. 子域名枚举:通过提供顶级域名,利用 massdns.exe 可以查询该域名下的所有子域名。这对于安全测试和漏洞评估非常有用。
2. 云安全与负载均衡测试:通过批量解析域名,可以检测是否存在云服务,以及域名背后是否有负载均衡设备。
3. 域名历史记录分析:通过解析域名历史记录中的域名,可以获取与域名相关的更多信息,例如之前的 DNS 记录和之前的 IP 地址。
ARL资产侦察灯塔系统
https://github.com/TophantTechnology/ARL
灯塔
https://www.anquanke.com/post/id/253480
https://github.com/TophantTechnology/ARL/wiki/Docker-%E7%8E%AF%E5%A2%83%E5%AE%89%E8%A3%85-ARL
https://120.48.83.89:5003/
https://tophanttechnology.github.io/ARL-doc/
文档
https://github.com/1c3z/ARL-NPoC
POC框架
ing -h
usage: xing [-h] [--version] [--quit]
[--log {debug,info,success,warning,error}]
{list,scan,sniffer,exploit,brute,listener} ...
positional arguments:
{list,scan,sniffer,exploit,brute,listener}
子命令
list 显示插件
scan 扫描
sniffer 协议识别
exploit 漏洞利用
brute 弱口令爆破
listener 监听
optional arguments:
-h, --help show this help message and exit
--version, -V show program's version number and exit
--quit, -q 安静模式 (default: False)
--log {debug,info,success,warning,error}, -L {debug,info,success,warning,error}
日志等级 (default: info)
其中子命令的-t参数可以为文件名也可以为单个指定的目标,-n 按照文件名筛选PoC
pip3 install -r requirements.txt
pip3 install -e .
https://www.anquanke.com/post/id/252321#h3-3
文章
整个程序利用Flask架构编写,通过入口main.py文件,通过入口文件,初始化Flask框架,加载api,
然后通过命名空间绑定路由。
各个功能模块大多是独立分开的,通过url直接调用。
其次,就是异步任务队列和任务调度器两个单独模块。
mongod.exe -port 6321 --dbpath F:\Godmongodb_F
mongo 127.0.0.1:6321/GodV1
db.createUser({user:'aming',pwd:'Msr010527',roles:[{role:'dbOwner',db:'GodV1'}]})
celery -A app.celerytask.celery worker -l info -Q Godtask -n Godtask -c 2 -O fair -f GOd_worker.log
python -m app.scheduler
set ERLANG_HOME=G:\envir\base\Erlang OTP
rabbitmq:5672
nuclei的模板文件存放的默认路径是当前用户路径下,即 YourUserHome/nuclei-templates。
C:\Users\amingMM\nuclei-templates
Docker 启动
git clone https://github.com/TophantTechnology/ARL
cd ARL/docker/
docker volume create arl_db
docker-compose pull
docker-compose up -d
想在命令行打印出来 celery worker 的运行情况,您可以使用 celery inspect 命令,它可以让您远程控制或查看 worker 的状态。celery inspect 命令有以下几个参数:
-A app.celerytask.celery 指定 celery 应用的模块名,也就是包含 celery 实例的 python 文件
-d Godtask 指定要控制或查看的 worker 的节点名,也就是 worker 的唯一标识
report 指定要执行的命令,report 命令可以返回 worker 的基本信息,比如主机名、平台、进程号等
-t 10 指定超时时间为 10 秒,也就是如果在 10 秒内没有收到 worker 的回复,就放弃等待
例如:
$ celery -A app.celerytask.celery inspect -d Godtask report -t 10
这个命令会向 Godtask 这个 worker 发送 report 命令,并等待 10 秒内的回复。如果成功,会打印出类似这样的结果:
-> Godtask: OK - platform: Windows-10-10.0.19041-SP0 - hostname: Godtask@DESKTOP-123456 - pid: 1234 - clock: 5678 - freq: 2.0 - loadavg: N/A - processed: 0 - active: 0 - registered: 1
如果失败,会打印出类似这样的结果:
-> Godtask: ERROR (no reply within 10s)
-l info 是一个用于修改 celery worker 的日志级别的参数,它表示将日志级别设置为 info ,也就是输出一般的信息,比如任务的接收、执行、结果等。这个参数是一个缩写,完整的写法是 --loglevel info 。celery worker 支持以下几种日志级别:
CRITICAL: 只输出严重的错误信息
ERROR: 输出错误信息
WARNING: 输出警告信息
INFO: 输出一般信息
DEBUG: 输出调试信息
celery -A app.celerytask.celery worker -l DEBUG -Q arlgithub -n Godtask -c 2 -O fair -f GOd_worker.log
celery -A app.celerytask.celery worker -l DEBUG -Q Godtask -n Godtask -c 2 -O fair -f GOd_worker.log
celery -A app.celerytask.celery flower
E:\hack\道普内部武器库\信息搜集\端口扫描\Nmap
python -m pip show pymongo
WARNING: Ignoring invalid distribution -ip (d:\python3.7\lib\site-packages)
Name: pymongo
Version: 3.0
celery.conf.update 是一个方法,用于更新 Celery 的配置选项1。您的代码中的配置选项的含义如下:
task_acks_late: 如果为 True,任务在执行完毕后才会发送确认消息,而不是在接收到任务时就发送。这意味着如果一个 worker 意外终止或被杀死,没有执行完的任务会被重新分配给其他 worker1。
worker_prefetch_multiplier: 每个 worker 进程可以预取的任务数量的乘数。默认值是 4,即每个 worker 进程可以预取四倍于并发数的任务数量。如果设置为 1,每个 worker 进程只能预取一个任务1。
broker_transport_options: 一个字典,用于传递给 broker 的传输选项。具体的选项取决于使用的 broker 类型。您的代码中使用的选项是针对 AMQP broker 的,它们的含义如下:
max_retries: 连接失败时重试的最大次数。默认值是 1002。
interval_start: 重试间隔的初始值,单位是秒。默认值是 02。
interval_step: 每次重试后增加的间隔值,单位是秒。默认值是 0.22。
interval_max: 重试间隔的最大值,单位是秒。默认值是 0.52。
D:/python3.7/python.exe c:/Users/amingMM/Desktop/Godeye/test/__aming_main.py
celery -A __test__aming flower
celery -A __test__aming worker --pool=solo -l Debug -Q Godtask -n add -c 2 -O fair -f GOd_worker.log
platforms.C_FORCE_ROOT 是一个环境变量,用于控制 Celery 是否允许以 root 用户运行 worker1。如果设置为 True,Celery 会忽略 root 用户的警告,但这是非常不推荐的,因为可能会带来安全风险12。如果您想以非 root 用户运行 Celery,您可以使用 --uid 选项指定一个不同的用户1,或者在 Dockerfile 中创建一个新的用户并切换到该用户2。
您的 Celery 配置中设置了 CELERY_ALWAYS_EAGER = True,这会导致所有的任务在 Django 主进程中执行,而不是发送到队列中。您可以将该选项设置为 False,或者在测试环境中使用 CELERY_TASK_ALWAYS_EAGER = True1。
您的任务执行时间超过了 broker 的消息可见性超时时间,导致其他 worker 认为该消息已经被处理,重新将其放回队列中。您可以增加 broker_transport_options 中的 visibility_timeout 选项的值,或者优化您的任务执行时间2。
您的任务没有正确地返回结果或者抛出异常,导致 worker 无法确认任务完成,重新尝试执行该任务。您可以检查您的任务代码是否有逻辑错误或异常处理3。
根据搜索结果,Celery 任务可以通过 revoke 方法来终止或撤销1。您需要传入任务的 uuid 作为参数,以及 terminate=True 选项来强制终止正在执行的任务。例如:
from celery.task.control import revoke
revoke (task_id, terminate=True)
注意:revoke 方法只是告诉 Celery 将任务的 uuid 保存在一个内存集合中,而不是立即从队列中删除任务。当任务到达队列顶部时,Celery 会检查它是否在撤销集合中,如果是,就不会执行它。如果您重启 Celery worker,内存集合会丢失,撤销的任务可能会被重新执行。为了避免这种情况,您可以使用 --statedb 选项来将撤销集合保存在文件系统中1。
Celery 是一个 Python 的分布式任务队列系统,它可以处理在多个线程或网络节点上分发的任务1。它使得异步任务管理变得简单。您的应用程序只需要将消息推送到一个 broker,比如 RabbitMQ,然后 Celery worker 会从队列中取出消息并安排任务执行12。Celery 可以用于多种配置。最常见的用途是通过在 Celery worker 上运行资源密集型的任务来实现水平应用扩展,或者在 web 应用中管理长时间的异步任务,比如用户发布图片时的缩略图生成23。
RabbitMQ 是一个消息 broker,它负责创建任务队列,根据一些路由规则将任务分发到任务队列中,然后将任务从任务队列中传递给 worker12。RabbitMQ 是 Celery 推荐的 broker,因为它功能完善、稳定2。您也可以选择其他的 broker,比如 Redis 或数据库(比如 Django 数据库)2。
使用 Celery 的 inspect 方法,它可以返回当前的活动任务、预定任务、保留任务等信息1。例如:
from celery.task.control import inspect
i = inspect ()
i.active () # 返回当前正在执行的任务
i.scheduled () # 返回当前已经预定的任务
i.reserved () # 返回当前已经保留的任务
使用 Celery 的 Flower 工具,它是一个 web 界面,可以实时显示任务的状态(活动、完成、保留等),并且可以按照时间、worker 和类型进行过滤2。您可以通过以下命令安装和运行 Flower:
pip install flower
celery -A proj flower
使用 Celery 的 on_success 或 on_failure 方法或信号,它们可以在任务完成或失败时执行一些操作,比如将任务的信息保存到自己的数据库中3。您需要创建一个自定义的任务类来实现这些方法或信号。例如:
from celery import Task
class MyTask (Task):
def on_success (self, retval, task_id, args, kwargs):
# 将任务的结果和其他信息保存到数据库中
pass
def on_failure (self, exc, task_id, args, kwargs, einfo):
# 将任务的异常和其他信息保存到数据库中
pass
您的 Celery 应用程序没有正确地连接到 RabbitMQ broker,或者 broker 没有正常运行。您可以检查您的 Celery 配置中的 broker_url 选项是否正确,或者使用 rabbitmqctl status 命令查看 broker 的状态1。
您的 Celery worker 没有正确地注册到 Celery 应用程序中,或者 worker 没有正常运行。您可以检查您的 Celery 任务是否放在 <appname>/tasks.py 文件中,并且调用了 app.autodiscover_tasks () 方法来自动发现任务2。或者您可以使用 celery -A proj inspect registered 命令查看已注册的任务3。
您的 Celery 任务没有正确地发送到 RabbitMQ broker 中,或者 broker 没有正常接收消息。您可以检查您的 Celery 任务是否使用了 @app.task 装饰器来定义,并且使用了 delay () 或 apply_async () 方法来异步执行2。或者您可以使用 rabbitmqctl list_queues 命令查看 broker 中的队列情况1。
Celery Flower 出现 unknown worker 的可能原因有以下几种:
您的 Celery worker 在 Flower 启动后才启动,导致 Flower 没有获取到 worker 的信息。您可以在 Flower 的 dashboard 页面上点击 Refresh 按钮,重新发送 inspect 命令,刷新 worker 的状态12。
您的 Celery worker 与 Flower 使用的 broker 不一致,导致 Flower 无法与 worker 通信。您可以检查您的 Celery 和 Flower 的配置中的 broker_url 选项是否相同,并且 broker 是否正常运行3。
您的 Celery worker 响应过慢,导致 Flower 在超时时间内没有收到 worker 的回复。您可以增加 Flower 的 --inspect_timeout 参数的值,或者优化您的 worker 的性能3。
nuclei 环境配置
port_scan: 99.12
ssl_cert: 6.27
find_site: 5.22
fetch_site: 1.07
site_identify: 3.09
site_capture: 3.34
site_spider: 3.1
file_leak: 505.64
nuclei_scan: 222.18
npoc_service_detection: 94.28
poc_run: 46.35
weak_brute: 8.48
task_options = {
"port_scan_type": "all",
"port_scan": True,
"service_detection": True,
"service_brute": True,
"os_detection": True,
"site_identify": True,
"file_leak":True,
"ssl_cert": True
}
ARL-Puls
GitHub地址:https://github.com/ki9mu/ARL-plus-docker/releases
config-docker.yaml文件
https://mp.weixin.qq.com/s/hHTkdj3J3ChhxzBlHFBZ3g
yum install git
下载到本地就可以了
git clone https://github.com/loecho-sec/ARL-Finger-ADD
进入目录
cd ARL-Finger-ADD
建议把指纹文件(finger.json)替换为比较新一些的EHole_magic指纹文件
访问链接下载指纹文件并替换原文件即可
https://github.com/lemonlove7/EHole_magic/blob/main/finger.json
连接arl
python ARL-Finger-ADD.py -O https://vps:5003/ admin arlpass
安装说明
源码地址 https://github.com/TophantTechnology/ARL
https://github.com/TophantTechnology/ARL/wiki/Docker-%E7%8E%AF%E5%A2%83%E5%AE%89%E8%A3%85-ARL
安装环境
uname -a
Linux VM-24-12-centos 3.10.0-1160.49.1.el7.x86_64 #1 SMP Tue Nov 30 15:51:32 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
默认 有 docker compose环境 并 启动
ubuntu
docker安装一键命令:
curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh
docker-composd一键安装命令:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
python一键安装命令:
sudo apt-get install python
git clone 获取docker-compose.yml 等文件
git clone https://github.com/TophantTechnology/ARL
sudo apt-get install docker-compose
docker pull tophant/arl 从镜像仓库中拉取或者更新指定镜像
docker run -dt --name arl -p 5003:5003 --rm tophant/arl
mkdir docker_arl
cd docker_arl
wget -O docker_arl/docker2.5.1.zip https://github.com/TophantTechnology/ARL/releases/download/v2.5.1/docker.zip
unzip docker2.5.1.zip
docker volume create arl_db 挂在docker 数据不丢失
docker-compose up -d 以后台的方式运行容器
问题 :
WARNING: IPv4 forwarding is disabled. Networking will not work.
开启 ipv4转发
vim /etc/sysctl.conf
#配置转发
net.ipv4.ip_forward=1
#保存退出就可以了
:wq!
#重启服务,让配置生效
systemctl restart network
#查看是否成功,如果返回为“net.ipv4.ip_forward = 1”则表示成功
sysctl net.ipv4.ip_forward
#重启docker
sudo systemctl start docker
#查看运行过的容器
sudo docker ps -a
#开启mysql容器开机启动
sudo docker update mysql --restart=always
漏洞监控
https://mp.weixin.qq.com/s/Gp3-iWS-l7DFdyfheDcpew
爬取exploit_db,github,seebug,metasploit,vulhub等多个平台的漏洞信息
init参数用来初始化,包括爬取历史漏洞信息等等。
crawl参数用来获取每日更新,并进行推送。
更多推荐
已为社区贡献1条内容
所有评论(0)