通过 RPC 防火墙停止横向移动

VSole2022-01-08 06:26:00

RPC 是底层机制,用于多种横向移动技术、侦察、中继攻击,或仅用于利用易受攻击的 RPC 服务。

安装RPC防火墙并将其配置为审计所有远程RPC调用。一旦执行任何远程攻击工具,你将看到哪些RPC UUIDs和Opnums被远程调用。

项目地址:https://github.com/zeronetworks/rpcfirewall

远程RPC攻击检测

        当RPC防火墙被配置为审计时,它会将事件写到Windows事件日志中。 

        将此日志转发到你的SIEM,并使用它来为你的服务器创建远程RPC流量的基线。

        一旦审计到异常的RPC调用,就用它来为你的SOC团队触发警报。

远程RPC攻击保护

       RPC防火墙可以被配置为只阻止和审计潜在的恶意RPC调用。所有其他RPC调用不被审计,以减少噪音并提高性能。

        一旦检测到潜在的恶意RPC调用,它将被阻止和审计。这可以用来提醒你的SOC团队,同时保持你的服务器受到保护。

什么是RPC防火墙组件?

由3个组件组成:

  1. RpcFwManager.exe - 负责管理RPC防火墙。
  2. RpcFirewall.dll - 注入的DLL,执行对RPC调用的审计和过滤。
  3. RpcMessages.dll - 一个共享功能的公共库,以及将数据写入Windows事件查看器的逻辑。

安装

        安装时只需将RPC Firewall DLLs放入%SystemRoot%\System32中,并为事件查看器配置RPCFWP应用日志。确保事件查看器在安装/卸载过程中被关闭。

RpcFwManager.exe /install
RpcFwManager.exe /uninstall

保护进程

   RpcFwManager试图只将rpcFirewall.dll注入那些已经加载了RPCRT4.DLL的进程。

        一旦rpcFirewall.dll被加载,它就会验证主机进程是否有一个有效的RPC接口,并且正在监听远程连接。

        否则,rpcFirewall.dll会从目标进程中卸载自己。

        如果该进程是一个有效的RPC服务器,rpcFirewall就会根据配置文件开始审计和监控进入的RPC调用。

要通过pid来保护一个单一的进程:

RpcFwManager.exe /pid <pid>

要按名称保护一个进程:

RpcFwManager.exe /process <process name>

要保护所有进程,只需将参数留空:

RpcFwManager.exe /process
RpcFwManager.exe /pid

解除对进程的保护

要禁用RPC防火墙,要么卸载它,要么使用unprotect参数:

RpcFwManager.exe /unprotect      (这将从所有进程中卸载rpcFirewall.dll)

配置

       rpcFwManager.exe会在可执行文件的同一目录中寻找一个RpcFw.conf文件。

  • uuid -> 匹配一个特定的uuid
  • opnum -> 匹配一个RPC opnum
  • addr -> 匹配一个远程 IP 地址
  • 行动 -> 可以是允许或阻止(默认为允许)
  • audit -> 真或假,控制事件是否被写入RPCFWP日志(默认为假)
  • verbose -> 当为真时,输出特定RPC调用的调试信息(默认为假)

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

例如,下面的配置将通过禁用非域名机器的MS-DRSR UUID来保护DC免受DCync攻击。另外,请注意,只对被阻止的MS-DRSR尝试启用审计,这可能会提醒你的SOC注意潜在的攻击

uuid:e3514235-4b06-11d1-ab04-00c04fc2dcd2 addr:<dc_addr1> action:allow
uuid:e3514235-4b06-11d1-ab04-00c04fc2dcd2 addr:<dc_addr2> action:allow
uuid:e3514235-4b06-11d1-ab04-00c04fc2dcd2 action:block audit:true

每当配置改变时,你需要通过更新命令通知rpcFirewall.dll。

RpcFwManager.exe /update

查看日志

打开事件查看器 -> 应用程序和服务日志 -> RPCFWP。

防火墙rpc
本作品采用《CC 协议》,转载必须注明作者和本文链接
RPC 是底层机制,用于多种横向移动技术、侦察、中继攻击,或仅用于利用易受攻击的 RPC 服务。 安装RPC防火墙并将其配置为审计所有远程RPC调用。一旦执行任何远程攻击工具,你将看到哪些RPC UUIDs和Opnums被远程调用。 项目地址:https://github.com/zeronetworks/rpcfirewall
防火墙出网探测工具
2022-01-28 06:27:16
TFirewall是测试已控主机哪些端口可以出网及建立内网socks5代理的工具.工具主体使用golang开发,工具包含客户端及服务端,适用于windows,linux,x64,x86.
每个字符串代表一个端口或一组包含的端口。例如,单个端口可以用5984表示,一组端口可以用5000-5100表示。如果任何条目超出 0 到 65535 的范围,或者任何字符串无法解释,则 RPC 运行时会将整个配置视为无效。它并不是任何特定系统所需的最小端口数的建议。低于 5000 的端口号可能已被其他应用程序使用,并可能导致与 DCOM 应用程序发生冲突。此外,根据以往的经验,至少应打开 100 个端口,因为工控服务依赖这些 RPC 端口进行相互通信。
Kinsing僵尸网络通过Hadoop Yarn RPC未授权访问和Hadoop Yarn Rest API未授权访问漏洞入侵和传播,利用f.sh脚本下载挖矿木马kinsing并执行挖矿。
Cloudflare是一个应用广泛的web应用防火墙(WAF)的提供商。如果能在一秒内绕过所有防护措施,让WAF毫无用处,会怎么样呢?这篇文章会教你利用源服务器的IP地址绕过Cloudflare WAF。注意,以下方法可能适用于绕过任何类型的WAF。
国外白帽团队针对VPN组件进行研究,快速搜索得到了大约50,000个Citrix Gateway实例可公开访问,因此,即使是像跨站脚本这样的小问题也会产生潜在的巨大影响。在研究过程中,他们发现了一个开放的重定向漏洞,该漏洞无需身份验证即可被利用,如果Citrix Gateway部署在这样的配置中,甚至还能将其转移到CRLF注入中,从而导致XSS或潜在的缓存中毒。在这篇文章之前,他们对一百个Citrix Gateway实例进行了快速扫描,发现仍有超过一半的实例未修补。(一个类似于FreeBSD的实用程序?
DCOM在渗透中的利用
2021-09-18 07:05:34
COM 是 Windows 的一个组件,可促进软件之间的互操作性,DCOM 使用远程过程调用 (RPC) 将其扩展到整个网络。
分布式组件对象模型(DCOM)远程协议是一种通过远程调用(RPC)公开应用程序对象的协议。
前置知识 环境搭建 信息收集 NTLM的利用 Kerberos-Roasting Kerberos (Delegation) ACL攻击 权限维持 参考答案
本文对如何利用 DCOM 进行横向移动的手法进行了总结,希望可以对大家的学习提供一些帮助。
VSole
网络安全专家