前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过 RPC 防火墙停止横向移动

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

作者头像
Khan安全团队
发布2022-01-27 11:23:49
4070
发布2022-01-27 11:23:49
举报
文章被收录于专栏:Khan安全团队

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应用日志。确保事件查看器在安装/卸载过程中被关闭。

代码语言:javascript
复制
RpcFwManager.exe /install
RpcFwManager.exe /uninstall

保护进程

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

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

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

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

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

代码语言:javascript
复制
RpcFwManager.exe /pid <pid>

要按名称保护一个进程:

代码语言:javascript
复制
RpcFwManager.exe /process <process name>

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

代码语言:javascript
复制
RpcFwManager.exe /process
RpcFwManager.exe /pid

解除对进程的保护

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

代码语言:javascript
复制
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注意潜在的攻击

代码语言:javascript
复制
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。

代码语言:javascript
复制
RpcFwManager.exe /update

查看日志

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Khan安全攻防实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档