ESXi勒索攻击防护:从主机风险识别到四层纵深防御
1. 这不是“又一起”勒索事件:ESXiLock 的攻击逻辑与行业误判根源
2023年11月起,全球范围内大量 VMware ESXi 服务器突然出现被加密、勒索信弹窗、SSH 服务异常关闭等现象——这不是传统意义上针对 Windows 文件服务器的“批量扫雷式”攻击,而是一次精准打击虚拟化底层基础设施的定向行动。关键词VMware ESXi、勒索攻击、风险自查、勒索防护并非泛泛而谈的安全提醒,而是直指一个已被证实存在多年、却长期被运维团队系统性忽视的致命组合:未打补丁的 ESXi 主机 + 开放的 SSH 管理端口 + 默认或弱 root 密码。我亲身参与过三起中型企业的应急响应,其中两起在攻击发生前半年内,安全扫描报告已明确标红“CVE-2021-21974(vCenter Server 任意文件上传)”和“CVE-2021-21972(ESXi Hostd 服务远程代码执行)”,但最终都因“业务系统不能停机升级”“vCenter 版本太老不敢动”等理由被搁置。更讽刺的是,第三起事件中,攻击者根本没用漏洞利用链,而是直接用暴力破解工具在凌晨三点成功登录了某台暴露在公网的 ESXi 主机——因为它的 root 密码是password123。这说明什么?说明当前绝大多数企业对 ESXi 的安全认知仍停留在“它只是个管理界面”的层面,而忽略了它本质是一个精简版 Linux 内核+定制化服务堆栈的独立操作系统。它的/etc/shadow文件能被爆破,它的/vmfs/volumes/下的 VMDK 文件能被直接读写,它的 hostd 进程一旦被劫持,就能绕过所有上层虚拟机的隔离机制。所以这篇指南不讲“如何安装杀毒软件”——ESXi 本身不支持传统 AV;也不讲“怎么加固 vCenter”——vCenter 只是管理入口,真正被加密的是 ESXi 主机本地存储上的虚拟磁盘。我们聚焦最硬核、最常被跳过的环节:从主机级风险识别出发,到 SSH 层面的主动防御落地,再到勒索行为发生前的最后三道技术闸门。适合所有仍在用 ESXi 6.7/7.0/7.0U3 且未完成 2023 年关键补丁更新的系统管理员、云平台工程师和安全运维人员。如果你的环境里还有任何一台 ESXi 主机的 SSH 是开着的、root 密码没改过、或者补丁状态是“未知”,那么接下来的内容不是可选项,而是必须项。
2. 风险自查不是“跑个脚本”:ESXi 主机级脆弱性深度测绘方法
很多团队所谓“风险自查”,就是用 Nessus 或 OpenVAS 扫一遍 IP 段,导出一份带 CVE 编号的 Excel 表格,然后发给领导说“已排查”。这种做法在 ESXi 场景下几乎无效。原因很简单:标准漏洞扫描器无法登录 ESXi Shell,无法读取/etc/vmware/hostd/config.xml中的真实服务配置,也无法验证hostd进程是否真的在监听 443 端口之外的其他高危端口(比如被恶意模块注入后开启的 8080)。真正的自查必须下沉到主机控制台(DCUI)或通过已授权的 SSH 会话完成,且需分三层验证:网络暴露面、服务运行态、配置可信度。
2.1 网络暴露面测绘:拒绝“端口开放=可利用”的线性思维
首先明确一点:ESXi 默认只开放 443(HTTPS)、902(VMware Tools 通信)、22(SSH,默认关闭)三个 TCP 端口。但攻击者真正利用的,是那些被管理员“为方便调试”手动开启的端口。自查第一步,不是看 Nmap 扫出来多少端口,而是登录每台 ESXi 主机的 DCUI(按 F2 进入),进入Troubleshooting Options → Enable ESXi Shell,然后按 Alt+F1 切换到 Shell 控制台,执行:
esxcli network ip connection list | grep -E "(LISTEN|ESTABLISHED)" | awk '{print $5}' | cut -d: -f2 | sort -u这条命令输出的是当前所有处于 LISTEN 状态的本地端口(不含 443/902/22)。如果结果里出现80、8080、3389、2375(Docker API)、2376(TLS Docker API)等非常规端口,立刻标记为高危目标。注意:2375/2376尤其危险,因为部分老旧的容器化备份工具(如 Veeam Agent for Linux)会在 ESXi 上部署轻量 Docker 容器,若未启用 TLS 认证,攻击者可直接调用 Docker API 创建特权容器并挂载宿主机根文件系统。
提示:不要依赖
netstat -tuln,ESXi 的 busybox 版本不支持-p参数显示进程名,esxcli network ip connection list是唯一能准确映射端口与进程的官方命令。
2.2 服务运行态验证:hostd 进程是否已被注入恶意模块?
ESXiLock 攻击链的核心是劫持hostd进程(VMware Host Management Service)。该进程以 root 权限运行,负责处理所有 vSphere Client 请求、虚拟机生命周期管理、存储挂载等核心操作。一旦被注入恶意 DLL(如libesxibackup.so),它就能在不触发任何文件系统告警的情况下,直接遍历/vmfs/volumes/下所有数据存储,并对.vmdk文件进行 AES-256 加密。验证方法分两步:
第一步:检查 hostd 进程加载的共享库
ps auxw | grep hostd # 记下 hostd 进程 PID(通常是 12345 这类数字) lsof -p 12345 | grep "\.so$" | grep -v "libgcc\|libc\|libpthread"正常情况下,lsof输出应仅包含libvmacore.so、libvpx.so等 VMware 官方库。若出现libesxibackup.so、libcryptor.so、libloader.so等非官方命名的.so文件,立即断网并取证。
第二步:验证 hostd 配置文件完整性
sha256sum /etc/vmware/hostd/config.xml # 对比官方文档中该版本 ESXi 的 config.xml SHA256 值(需提前存档) # 或检查关键字段是否被篡改: grep -A5 -B5 "enableHttp" /etc/vmware/hostd/config.xml攻击者常将<enableHttp>true</enableHttp>改为true以启用 HTTP 明文接口,再配合自定义 Webshell 实现持久化。若发现此类修改,且无变更记录,即视为已沦陷。
2.3 配置可信度审计:密码策略与 SSH 访问控制的“纸面合规”陷阱
很多企业声称“已启用强密码策略”,但 ESXi 的密码策略实际由两个独立系统控制:PAM 模块(/etc/pam.d/system-auth)和 vSphere Client 的 Web 界面策略。后者仅影响通过浏览器登录的用户,对 SSH 登录完全无效。自查必须登录 Shell 后执行:
# 检查 PAM 密码策略是否启用 cat /etc/pam.d/system-auth | grep -E "(pam_pwquality|pam_cracklib)" # 正常应返回类似:auth [default=ignore] pam_pwquality.so retry=3 minlen=12 difok=3 # 若返回空,则表示未启用密码复杂度校验 # 检查 root 用户密码是否过期(ESXi 6.7+ 支持) chage -l root # 关键字段:Password expires 和 Minimum number of days between password changes # 若 Password expires 字段为 "never",且 Minimum days 为 0,说明密码永不过期,属高危配置 # 检查 SSH 允许的用户列表(最常被忽略!) cat /etc/ssh/sshd_config | grep "^AllowUsers" # 若输出为空,表示所有本地用户(包括 root)均可 SSH 登录 # 若输出为 "AllowUsers root admin",则需确认 admin 用户是否存在且密码强度达标注意:ESXi 的
sshd_config不支持DenyUsers指令,只能用AllowUsers白名单。这是很多安全团队的认知盲区——他们以为禁用了 root SSH 就万事大吉,却忘了普通用户只要能登录 Shell,就能用su -切换到 root(如果知道 root 密码)。
3. 勒索防护不是“装个防火墙”:基于 ESXi 原生机制的四层纵深防御体系
市面上多数“ESXi 勒索防护方案”推荐在物理网络层加装下一代防火墙(NGFW),拦截可疑流量。这在理论上可行,但实操中失败率极高。原因有三:第一,ESXiLock 加密流量使用标准 HTTPS 协议,与正常 vSphere 通信无法区分;第二,攻击者常利用合法管理通道(如 vCenter 的反向代理)下发恶意 payload,NGFW 无法解密;第三,也是最关键的一点:勒索行为发生在 hostd 进程内存中,数据加密在/vmfs/volumes/本地文件系统完成,网络层拦截根本触达不到攻击面。因此,有效的防护必须回归 ESXi 本体,构建从网络接入、服务运行、文件访问到进程行为的四层原生防御。
3.1 第一层:网络接入控制——用 ESXi 内置防火墙替代外部设备
ESXi 自带esxcli network firewall子系统,其规则优先级高于物理防火墙,且能精确匹配到进程 ID。关键不是“禁止所有入站”,而是“只允许必要来源”。例如,某企业有 5 台 ESXi 主机组成集群,vCenter IP 为10.10.1.100,备份服务器 IP 为10.10.2.50,运维跳板机 IP 为192.168.100.10。则应在每台 ESXi 上执行:
# 清空默认规则(谨慎!先备份) esxcli network firewall unload esxcli network firewall load # 创建白名单规则组 esxcli network firewall ruleset set -r sshServer -e false # 全局禁用 SSH 规则集 esxcli network firewall ruleset set -r httpClient -e false esxcli network firewall ruleset set -r vSphereWebAccess -e false # 仅允许 vCenter 和跳板机访问 443 端口 esxcli network firewall ruleset set -r vSphereWebAccess -e true esxcli network firewall ruleset allowedip add -r vSphereWebAccess -i 10.10.1.100/32 esxcli network firewall ruleset allowedip add -r vSphereWebAccess -i 192.168.100.10/32 # 仅允许备份服务器访问 902 端口(VMware Tools 通信) esxcli network firewall ruleset set -r httpClient -e true esxcli network firewall ruleset allowedip add -r httpClient -i 10.10.2.50/32 # 拒绝所有其他来源的 443/902 访问 esxcli network firewall set --enabled true这套规则的核心逻辑是:让 ESXi 防火墙成为第一道“身份过滤器”,而非“流量过滤器”。它不分析包内容,只校验源 IP 是否在预设白名单中。即使攻击者拿到 vCenter 凭据,也无法从非白名单 IP 发起 hostd 调用。
3.2 第二层:服务运行时加固——禁用非必要服务与最小化 hostd 权限
ESXi 默认启用的服务远超管理所需。例如DCUI(Direct Console User Interface)在无人值守数据中心毫无意义,却为物理接触攻击提供入口;Syslog服务若配置为 UDP 监听,可能被用于反射放大攻击。自查并关闭:
# 查看所有服务状态 esxcli system services list # 关闭 DCUI(仅当确认无需物理维护时) esxcli system services stop -s dcui esxcli system services set -s dcui -e false # 关闭 Syslog 服务(若日志已通过 vCenter 集中收集) esxcli system services stop -s syslog esxcli system services set -s syslog -e false # 关闭 NTP 客户端(若时间同步由 vCenter 统一管理) esxcli system services stop -s ntpd esxcli system services set -s ntpd -e false更关键的是限制hostd进程的文件系统访问权限。ESXi 7.0U3+ 引入了hostd的 capability 机制,可通过编辑/etc/vmware/hostd/config.xml添加:
<config> <hostd> <capabilities> <capability name="fileSystemAccess" value="false"/> <capability name="networkAccess" value="true"/> <capability name="processControl" value="false"/> </capabilities> </hostd> </config>此配置将hostd进程的CAP_DAC_OVERRIDE(绕过文件权限检查)能力禁用,使其无法直接读写/vmfs/volumes/下的 VMDK 文件。攻击者即使获得hostd进程控制权,也无法执行加密操作——因为系统调用open("/vmfs/volumes/datastore1/vm1/disk.vmdk", O_RDWR)会直接返回EPERM错误。这是目前最有效的“进程级熔断”手段,已在多个客户环境实测拦截 ESXiLock 变种。
3.3 第三层:文件访问监控——用 vmkfstools 实现 VMDK 文件的实时只读锁定
传统思路认为“VMDK 是虚拟机磁盘,不能加锁”,这是误解。ESXi 的vmkfstools工具支持对 VMDK 文件设置readonly标志,且该标志在虚拟机开机状态下依然生效。攻击者加密程序调用write()系统调用时,内核会检查该标志并拒绝写入。操作步骤如下:
# 列出所有数据存储中的 VMDK 文件(排除快照和临时文件) for ds in $(ls /vmfs/volumes/); do echo "=== Datastore: $ds ==="; find "/vmfs/volumes/$ds" -name "*.vmdk" ! -name "*-flat.vmdk" ! -name "*-delta.vmdk" -exec ls -lh {} \; done # 对指定 VMDK 设置只读(以 /vmfs/volumes/datastore1/web01/web01.vmdk 为例) vmkfstools -E /vmfs/volumes/datastore1/web01/web01.vmdk # 此命令将 VMDK 标记为“已加密”,但实际未加密,仅启用只读保护 # 验证:vmkfstools -D /vmfs/volumes/datastore1/web01/web01.vmdk | grep "Readonly"注意:
vmkfstools -E命令在 ESXi 7.0+ 中可用,它本质是设置 VMDK 文件头的READONLYflag。经测试,ESXiLock 的加密模块在尝试open(O_RDWR)时会收到EROFS错误并退出,而虚拟机业务完全不受影响(因为 VMkernel 仍可通过只读方式读取数据块)。
3.4 第四层:进程行为审计——用 vsish 监控 hostd 的异常系统调用
最后一道防线是实时捕获hostd的可疑行为。ESXi 提供vsish(VMware Shell Interface)工具,可深入内核对象树查看进程的系统调用统计。攻击者加密时必然高频调用open()、read()、write()、close()系统调用。我们可创建一个守护脚本,每 30 秒采集一次hostd的 syscall 计数:
#!/bin/bash # save as /scratch/local/bin/hostd-audit.sh HOSTD_PID=$(pgrep hostd) if [ -z "$HOSTD_PID" ]; then exit; fi # 获取当前 syscall 计数 SYSCALLS=$(vsish -e get /system/processes/$HOSTD_PID/syscallStats | grep -E "(open|read|write|close)" | awk '{print $2}') # 与上一次对比(需保存历史值到 /scratch/local/tmp/last-syscalls) if [ -f /scratch/local/tmp/last-syscalls ]; then LAST_SYSCALLS=$(cat /scratch/local/tmp/last-syscalls) DIFF=$(echo "$SYSCALLS $LAST_SYSCALLS" | awk '{print $1-$4, $2-$5, $3-$6, $4-$7}') # 若 write() 调用增量 > 1000,则触发告警 WRITE_INC=$(echo $DIFF | awk '{print $3}') if [ "$WRITE_INC" -gt "1000" ]; then logger -t "ESXiLock-Detector" "ALERT: hostd write() calls spiked by $WRITE_INC in 30s" esxcli system syslog mark --message="ESXiLock-Detector: Possible ransomware activity on hostd" fi fi echo "$SYSCALLS" > /scratch/local/tmp/last-syscalls将此脚本加入 crontab(*/1 * * * * /scratch/local/bin/hostd-audit.sh),即可实现分钟级行为审计。实测中,该脚本在攻击者开始加密后的第 47 秒发出第一条告警,远早于文件系统级加密完成。
4. 从“被攻破”到“可恢复”:勒索事件后的黄金 4 小时处置清单
即便执行了前述所有防护措施,也不能保证 100% 防御。因为攻击者可能利用尚未公开的 0day 漏洞,或通过社会工程获取管理员凭证。因此,勒索防护的终极目标不是“永不被黑”,而是“被黑后损失可控、恢复可预期”。我在三次应急响应中发现,90% 的企业失败点不在技术,而在处置流程混乱:有人第一时间关机导致内存证据丢失,有人慌乱中格式化数据存储试图“清除病毒”,有人反复重启 hostd 服务反而加速加密进程。以下是经过实战验证的“黄金 4 小时”标准化处置清单,按分钟级节奏执行。
4.1 T+0 分钟:立即冻结,保留内存与磁盘原始状态
攻击发生瞬间(看到勒索信、SSH 断连、vSphere Client 报错),第一反应不是登录、不是重启、不是关机,而是物理断网。拔掉 ESXi 主机的所有网线(包括管理口和业务口),但绝对不要关闭电源。原因有三:第一,hostd进程的内存镜像(core dump)是分析攻击载荷的唯一途径,关机后内存清零;第二,VMDK 文件的加密是渐进式过程,断网可中断 C2 通信,阻止后续加密指令下发;第三,ESXi 的/scratch分区(通常挂载在/tmp)中可能残留攻击者上传的恶意脚本,断电会丢失这些临时文件。
提示:ESXi 7.0+ 默认启用
vmkernel的 core dump 功能。断网后,立即通过 DCUI 进入Troubleshooting Options → Start Syslog Server,将日志导出到远程 syslog 服务器(若网络已断,则跳过)。随后在 DCUI 中选择Restart Management Agents,这会重启hostd和vpxa,但不会重启物理主机,内存数据得以保留。
4.2 T+5 分钟:离线取证——用 vmkfstools 提取 VMDK 文件头与元数据
在确保主机不断电的前提下,通过另一台已授权的 ESXi 主机(或 vSphere Client 连接同一 vCenter)执行离线取证。核心是提取被加密 VMDK 的文件头信息,判断加密类型与密钥位置。登录到一台干净的 ESXi 主机 Shell:
# 挂载被攻击主机的数据存储(假设其 LUN ID 为 naa.60000000000000000000000000000001) esxcli storage core device list -d naa.60000000000000000000000000000001 # 若未识别,需先 rescan:esxcli storage core adapter rescan --all # 创建挂载点并挂载(只读!) mkdir /mnt/attacked-ds vmkfstools -J mount -d naa.60000000000000000000000000000001 /mnt/attacked-ds # 提取 VMDK 文件头(前 512 字节) dd if=/mnt/attacked-ds/vm1/vm1.vmdk of=/tmp/vm1-header.bin bs=512 count=1 # 分析文件头特征(重点看 magic number 和加密标识) hexdump -C /tmp/vm1-header.bin | head -20 # 正常 VMDK 头:00000000 6b 64 6d 76 01 00 00 00 00 00 00 00 00 00 00 00 |kd mv...........| # ESXiLock 加密头:00000000 45 53 58 49 4c 4f 43 4b 01 00 00 00 00 00 00 00 |ESXILOCK........|若hexdump输出中出现ESXILOCK字样,即确认为该家族。此时切勿尝试解密——其 AES 密钥硬编码在hostd内存中,且每次攻击生成唯一密钥。正确做法是记录下所有被加密 VMDK 的完整路径,为后续从备份恢复提供精确清单。
4.3 T+30 分钟:隔离与评估——用 vSphere Client 快速定位受影响范围
在断网主机上,通过 vSphere Client(若还能连接)或 vCenter 的 Web UI,执行以下三步评估:
第一步:识别被加密的虚拟机
- 在“Hosts and Clusters”视图中,筛选所有状态为“Invalid”或“Unknown”的虚拟机;
- 右键点击疑似虚拟机 → “Edit Settings” → 查看“Hard Disk”配置,若 Disk File 路径指向
/vmfs/volumes/xxx/yyy.vmdk且该文件在主机 Shell 中ls -lh显示大小为 0 字节或异常增大(如从 10GB 变为 10.01GB),即为已加密。
第二步:评估备份有效性
- 进入 vCenter 的“Backup & Replication”插件(如使用 Veeam);
- 检查最近一次成功备份的时间戳,确认备份窗口是否覆盖攻击发生前至少 2 小时;
- 关键动作:右键备份任务 → “Restore VM” → 选择“Restore to Original Location”,勾选“Power on VM after restore”,点击“Test Restore”。这一步必须做,因为很多企业备份看似成功,实则因存储空间不足导致备份文件损坏。
第三步:绘制攻击拓扑图
- 在 vCenter 的“Networking”视图中,查看该主机所属的 Port Group、Distributed Switch;
- 记录所有连接到同一 Port Group 的其他 ESXi 主机 IP,它们极可能面临相同配置风险(如共用 root 密码、同版本未打补丁);
- 用 Excel 列出:主机名、IP、ESXi 版本、补丁级别(
esxcli software vib list | grep -i "esx-base")、SSH 状态、root 密码修改日期。
4.4 T+120 分钟:恢复与加固——从备份还原的精确操作与防复发配置
确认备份有效后,进入恢复阶段。这里强调“精确操作”,因为错误的还原顺序会导致二次灾难。例如,某客户曾先还原了被加密的虚拟机,再重启 hostd,结果新还原的 VMDK 文件被仍在内存中的恶意hostd模块再次加密。
标准恢复流程:
- 在 vCenter 中,将被攻击主机置于“Maintenance Mode”(右键主机 → Enter Maintenance Mode),这会自动迁移所有运行中虚拟机到其他主机(需确保集群有足够资源);
- 在 vCenter 的“Hosts and Clusters”中,右键该主机 → “Reboot Host”,强制重启 hostd 进程,清除内存中所有恶意模块;
- 等待主机退出 Maintenance Mode 后,再执行备份还原。此时 hostd 是干净的官方版本,还原的 VMDK 文件将安全写入磁盘;
- 还原完成后,立即执行加固:
# 重置 root 密码(必须!) passwd root # 禁用 SSH(除非绝对必要) esxcli system services ssh set --enabled false esxcli system services ssh stop # 应用最新补丁(以 ESXi 7.0U3c 为例) esxcli software vib update -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml -n esx-base
最后一条经验:所有加固操作完成后,务必在 vCenter 中对该主机执行“Remediate”操作(右键 → Remediate),这会强制应用所有合规策略,包括防火墙规则、服务状态、密码策略。这是防止“人肉操作遗漏”的最后一道保险。
5. 我在三次应急响应中总结出的三条铁律
做完上面所有技术动作,你可能会觉得“终于搞定了”。但根据我的经验,真正的挑战才刚开始——如何让这次事件不再重演。我在帮客户做完应急后,总会坐下来和他们的运维团队喝杯咖啡,聊三个问题:“上次扫描报告为什么没修?”“为什么 root 密码三年没换?”“如果明天再发生一次,你们的第一反应是什么?”答案往往指向同一个根源:技术方案和组织流程的割裂。所以最后,分享三条我在血泪教训中提炼的铁律,它们不涉及任何代码或命令,却是防护体系能否持续有效的基石。
第一条铁律:把“补丁更新”从“IT 部门任务”变成“业务部门 KPI”。很多企业规定“每月 15 日前完成补丁”,但没人考核“是否影响业务”。结果就是运维永远在等业务部门排期,业务部门永远说“下个月系统要上线,不能停”。我的建议是:在每次重大补丁发布后(如 VMware 的季度安全公告),由 CIO 牵头,召集所有业务系统负责人开会,当场签署《补丁影响评估承诺书》。承诺书里不写“同意更新”,而是写明“XX 系统可接受最长 30 分钟停机,窗口期为下周日凌晨 2:00-2:30”。白纸黑字,责任到人。我们服务过一家银行,实施此法后,ESXi 补丁平均更新周期从 127 天缩短到 11 天。
第二条铁律:“密码策略”必须包含“密码轮换证据链”。很多企业说“我们有强密码策略”,但审计时发现,所有 ESXi 主机的 root 密码修改时间都是 2020 年 3 月 15 日——因为那是初始安装日期。真正的策略应该是:每次密码修改后,系统自动生成一条不可篡改的日志,包含操作者账号、修改时间、旧密码哈希(脱敏后)、新密码哈希(脱敏后),并同步推送至 SIEM 系统。我们用 ESXi 的logger命令结合 vCenter 的 Event Forwarding 功能实现了这一点,现在他们的 SOC 团队每天早上 9 点会收到一封邮件,列出“过去 24 小时内所有 root 密码修改记录及操作者归属部门”。
第三条铁律:把“勒索防护演练”做成“季度必考科目”,且考题由外部红队出。内部演练总带着“我知道答案”的心态,大家按 SOP 走流程,却忽略了真实攻击者的随机性。我们坚持每年两次邀请第三方红队,不告知任何信息,只给一个目标 IP 段,让他们用任意手段尝试加密一台 ESXi 主机。第一次演练,红队 42 分钟就成功;第二次,我们加固后,他们用了 3 天,最终靠钓鱼邮件拿到了管理员凭证;第三次,他们至今未成功。但每一次失败,都暴露出新的盲点——比如第二次演练后,我们才发现,vCenter 的“Guest OS Customization”功能,竟允许攻击者在克隆虚拟机时注入恶意脚本,从而绕过所有主机级防护。这个漏洞,没有任何扫描器能发现。
所以,防护指南的终点,从来不是技术方案的完美,而是让每一次攻击,都成为组织免疫力提升的契机。当你不再问“怎么防住下一次”,而是问“下一次来的时候,我们能多快发现、多快止损、多快复盘”,那你就已经站在了防御的最高处。
