提权实录:通过命名管道劫持可写服务

提权实录:通过命名管道劫持可写服务

💡 原文中文,约2300字,阅读约需6分钟。
📝

内容提要

本文分析了Windows应用中的命名管道安全漏洞,低权限用户可通过可写服务连接并发送指令,导致高权限进程终止。发现命名管道的ACL配置不当,允许Everyone组写入,结合服务自动重启特性,构建了本地提权利用链。此漏洞提醒开发者注意命名管道和服务权限配置,以防止权限提升攻击。

🎯

关键要点

  • 发现Windows应用中的命名管道访问控制配置宽松,允许低权限用户连接并发送指令。
  • 命名管道的ACL配置不当,允许Everyone组写入,导致高权限进程可被低权限用户终止。
  • 服务自动重启特性与错误的可执行文件权限结合,构建了本地提权利用链。
  • 命名管道是Windows的进程间通信机制,若ACL配置不当,可能导致权限提升或远程代码执行风险。
  • 通过工具Pipetap发现可写的命名管道KeyServicePipe,符合提权条件。
  • 系统服务的ACL配置不当可能导致服务二进制文件、注册表项和服务本身被修改,增加被攻击风险。
  • 利用链构建过程包括替换服务的合法可执行文件并通过命名管道发送KillProcess消息,完成本地权限提升。

延伸问答

命名管道是什么?

命名管道是Windows操作系统提供的一种进程间通信机制,允许不同进程通过一个带名称的管道进行数据交换。

命名管道的ACL配置不当会导致什么风险?

不当的ACL配置可能导致低权限用户发送消息给高权限服务,从而执行敏感操作,造成权限提升或远程代码执行风险。

如何发现可写的命名管道?

可以使用Sysinternals Suite中的pipelist和accesschk工具,或者使用可视化工具Pipetap来查看命名管道及其ACL策略。

提权利用链是如何构建的?

提权利用链通过替换服务的合法可执行文件,并通过命名管道发送KillProcess消息,触发高权限进程的终止,从而实现本地权限提升。

Windows服务的ACL配置不当会带来哪些风险?

不当的ACL配置可能导致服务的二进制文件、注册表项和服务本身被修改,增加被攻击的风险。

如何防止命名管道的权限提升攻击?

开发者应注意命名管道和服务的权限配置,确保ACL设置正确,限制低权限用户的访问权限。

➡️

继续阅读