Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
rpcfirewall — Windows RPC防火墙,用于审计、检测和阻止恶意远程过程调用,以防止横向移动、侦察和利用基于RPC的攻击(如DCSync和ZeroLogon)。 | Kitploit
工具/GitHubGitHub/zeronetworks/rpcfirewall
防御工具侦察漏洞利用IDS/IPS规避横向移动网络安全渗透测试事件响应
GitHubzeronetworks/rpcfirewall

rpcfirewall

Windows RPC防火墙,用于审计、检测和阻止恶意远程过程调用,以防止横向移动、侦察和利用基于RPC的攻击(如DCSync和ZeroLogon)。

查看仓库
547801年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

GitHub release (latest SemVer) GitHub all releases

我需要更多信息

请查看我们的 RPC Firewall 博客文章 或 BlackHat 演讲,以更好地理解 RPC、RPC 攻击以及解决方案:RPC Firewall。

加入我们的 |Zero| Labs Slack 社区工作空间,提出任何问题、反馈,或仅仅打个招呼。

我们也欢迎通过电子邮件联系我们(如果你是那种喜欢邮件的人)。联系邮箱:[email protected]

开始使用

以下教程展示了 RPC Firewall 的基本安装与配置,以及它如何防御各种基于 RPC 的攻击的演示。

RPC Firewall 2.0 教程

为什么我应该关心?

RPC 是许多横向移动技术、侦察、中继攻击或仅仅是利用有漏洞的 RPC 服务的底层机制。

DCSync 攻击?基于 RPC。远程 DCOM?基于 RPC。WMIC?基于 RPC。SharpHound?基于 RPC。PetitPotam?基于 RPC。PsExec?基于 RPC。ZeroLogon?基于 RPC……嗯,你明白了吧 :)

术语?

在本文档中,我们将使用以下术语:

  • RPC Firewall:指实际的 RpcFirewall.dll,它被加载到各种 RPC 服务器中以保护它们。
  • RPC Filters:指原生的 Windows RPC 过滤机制。
  • RPCFW Configuration:指 RpcFw.conf 文件,用于控制 RPC Firewall 和 RPC Filters 的行为。
  • RPCFW Manager:命令行界面,允许用户访问 RPC Firewall 和 RPC Filters。

它的用途是什么?

研究

可用于审计所有远程 RPC 调用。 一旦执行任何远程攻击工具,你将看到哪些 RPC UUID 和 Opnum 被远程调用。

参见此处的示例配置。

远程 RPC 攻击检测

当 RPCFW Configuration 配置为审计时,事件会写入 Windows 事件日志。 RPC Filter 事件写入安全日志,事件 ID 为 5712。RPC Firewall 日志写入 Application/RPCFW。

用户可以将这些日志转发到 SIEM,并用于为不同服务器创建远程 RPC 流量的基线。 当审计到异常 RPC 调用时,可用于触发告警通知 SOC 团队。

我们集成了几个 Sigma 规则,可用于检测不寻常的 RPC 活动和攻击。

远程 RPC 攻击防御

RPCFW Configuration 可以配置为仅阻止并审计潜在恶意的 RPC 调用。所有其他 RPC 调用不会被审计,以减少噪音并提高性能。

一旦检测到潜在恶意的 RPC 调用,它将被阻止并审计。这可用于通知 SOC 团队,同时保护服务器安全。

作为补充保护,你可以使用 RPC Filtering 功能(也通过 RpcFwManager.exe 支持)。

此类配置的示例在此处。

RPC Firewall 由哪些组件组成?

它由 3 个组件组成:

  1. RpcFwManager.exe - 作为独立的命令行管理工具,用于管理 RPC Filters 和 Firewall 的部署。同时也作为安装后的服务用于部署 RPC Firewall。
  2. RpcFirewall.dll - 被注入的 DLL,用于执行 RPC 调用的审计与过滤。
  3. RpcMessages.dll - 一个公共库,用于共享函数以及将数据写入 Windows 事件查看器的逻辑。

使用 RPC Firewall 还是 RPC Filters?

虽然两种方法各有优缺点,但使用 RPC Firewall 有几个主要优势值得特别关注。它们分别是:

  1. 细粒度:RPC Firewall 应用于每个 RPC 调用,可用于对特定 RPC 函数创建更细粒度的控制。
  2. 源地址识别:RPC Firewall 能更好地确定调用者的源地址。RPC Filters 无法识别通过命名管道(SMB)进行的调用的源地址,这意味着 RPC 过滤规则将无法应用于通过命名管道进行的 RPC 调用!!!
  3. Bug!:RPC Filters 存在各种 Bug,微软并不热衷于修复。举几个例子:IP 范围不生效,并且你不能应用“全捕捉”过滤器,因为它可能会破坏多个域控制器服务(如 NetLogon)。

另一方面,RPC Filters 非常适合批量允许或拒绝整个 UUID,因为它们可以毫无问题地做到这一点。

如何使用?

当前状态?

在运行任何命令之前,建议检查部署状态。通过执行 /status 命令:

root@kitploit:~
RpcFwManager.exe /status

这将显示 RPC Firewall 和 RPC Filters 的状态。输出将包含安装状态的详细信息,以及部署的运行状态。

'fw' / 'flt' 后缀

几乎每个命令都可以在末尾添加 fw 或 flt 后缀。这告诉 RPCFW Manager 该命令是应用于 RPC Firewall('fw')、RPC Filters('flt'),还是两者都应用(不使用后缀时)。

安装 / 卸载

执行相关功能的安装(RPC Filters / RPC Firewall / 两者)。

  • RPC Firewall 安装:配置事件日志,将相关 dll 放入 %SystemRoot%\System32 文件夹,并在事件查看器中配置 RPCFW 应用程序日志。同时安装“RPC Firewall”服务,用于持久化。
  • RPC Filters 安装:启用 RPC 事件的安全审计。这些事件可在安全日志中找到,事件 ID 为 5712。

请确保在安装/卸载期间关闭事件查看器。 此外,建议在安装前先停止并卸载,以确保没有旧版本存在。

root@kitploit:~
RpcFwManager.exe /stop
RpcFwManager.exe /uninstall
RpcFwManager.exe /install

卸载则相反。同样,建议在卸载前确保服务已停止。

root@kitploit:~
RpcFwManager.exe /stop
RpcFwManager.exe /uninstall

启动 / 停止

RPC Filters 本质上应用于整个系统,覆盖所有 RPC 服务器。此类过滤器在重启后也是持久的。 任何新的或旧的进程都将根据 RPCFW Configuration 受到 RPC Filters 的保护。

RPC Firewall 通过注入方式保护所有侦听远程 RPC 调用的 RPC 服务器进程。 这是通过将 RPC Firewall 注入到加载了 RPCRT4.DLL(RPC 运行时)的进程中实现的。加载后,RPC Firewall 将检测该 RPC 服务器是否正在侦听远程 RPC 调用。如果不是,它将自行卸载。 如果进程是有效的 RPC 服务器,rpcFirewall 将根据 RPCFW Configuration 开始审计和监控传入的 RPC 调用。

推荐保护 RPC 服务的方法是使用 '/start' 命令。这会启动 RPC Firewall 服务(对于 'fw' 或无后缀),并创建 RPC Filters(对于 'flt' 或无后缀)。

root@kitploit:~
RpcFwManager.exe /start

也可以临时使用 RPC Firewall 来保护特定进程。这种方式不会启动 RPC Firewall 服务,也不会在重启后持久化。

按进程 ID(PID)保护单个进程:

root@kitploit:~
RpcFwManager.exe /start pid <pid>

按名称保护单个进程:

root@kitploit:~
RpcFwManager.exe /start process <进程名称>

要停止保护,只需使用适当后缀执行 '/stop' 命令(无法停止对特定进程的保护)。

root@kitploit:~
RpcFwManager.exe /stop

根据使用的后缀('fw' 或 'flt' 或无),这将停止 RPC Firewall 服务并从所有进程中卸载 RPC Firewall dll。对于 RPC Filters,它将删除由 RPCFW Manager 生成的所有过滤器。

持久化

一旦启动,RPC Firewall 将在重启后保持持久化。 RPC Filters 也是持久的。

配置

RPCFW Manager 会在可执行文件所在目录查找 RpcFw.conf 文件。 该文件使用以下配置选项:

重要提示:每个配置行必须以 'fw:' 或 'flt:' 为前缀,以指示该行应用于 RPC Firewall 还是 RPC Filter。

查看更多信息

要查看更多 RPC 相关的“东西”,有一个 show 命令。目前它只显示受保护的进程,这些进程无法被 RPC Firewall 模块保护。

root@kitploit:~
RpcFwManager.exe /show

配置顺序很重要,因为第一个匹配项决定了 RPC 调用的结果。

例如,以下配置片段将使用 RPC Firewall 保护域控制器免受 DCSync 攻击。 它通过仅允许来自其他域控制器的 MS-DRSR UUID 的“危险”opnum 3 DRSGetNCChanges 来实现。

root@kitploit:~
fw:uuid:e3514235-4b06-11d1-ab04-00c04fc2dcd2 addr:<dc_addr1> opnum:3 action:allow
fw:uuid:e3514235-4b06-11d1-ab04-00c04fc2dcd2 addr:<dc_addr2> opnum:3 action:allow
fw:uuid:e3514235-4b06-11d1-ab04-00c04fc2dcd2 opnum:3 action:block

每当配置发生变化时,需要通过 update 命令通知 rpcFirewall.dll:

root@kitploit:~
RpcFwManager.exe /update

查看日志

对于 RPC Firewall,打开事件查看器 -> 应用程序和服务日志 -> RPCFW。 事件 ID 1 和 2 表示“保护”和“取消保护”事件。事件 ID 3 审计实际的 RPC 调用。 另外,添加“关键字”列。该列将包含“审核成功/失败”,表示 RPC 调用是否被阻止。

对于 RPC Filters,打开事件查看器 -> 安全 -> RPCFW。筛选事件 ID 5712。

我可以贡献吗?

当然可以!欢迎提交拉取请求。

我希望 RPC Firewall 能做更多事情!

我们也希望如此!请将您的想法、建议或问题通过电子邮件发送给我们:[email protected]

有许可证吗?

更多详情请参见 LICENSE。

下载工具
参数名称说明支持范围...
opnum:匹配 RPC opnumRPC Firewall
verbose:可以是 true 或 false。当为 true 时,输出特定 RPC 调用的调试信息(默认 false)RPC Firewall
prot:匹配使用的协议,对应协议序列常量中的任意一个RPC Firewall 和 Filters 均支持
addr:匹配远程 IP 地址(IPv4 或 IPv6,包括 CIDR)RPC Firewall 完全支持,RPC Filters 部分支持,更多信息
uuid:匹配特定 UUIDRPC Firewall 和 Filters 均支持
action:可以是 allow 或 block(默认 allow)RPC Firewall 和 Filters 均支持
audit:可以是 true 或 false。控制事件是否写入 RPCFW 日志(默认 false)RPC Firewall 和 Filters 均支持
sid:匹配已认证用户对应的安全标识符。可以是特定用户或组。RPC Firewall 和 Filters 均支持