最近在研究RPC(远程过程调用)在内网中的攻击面,主要从红队的角度来探讨。RPC协议有时可以有效地绕过EDR等设备检测,实现较好的攻击效果。下面我将详细解释RPC的相关知识和一些实际应用。
我们需要理解RPC是如何进行通信的,这涉及到一些关键概念,如IDL文件、UUID、ACF文件等。IDL文件用于定义客户端与服务器之间的接口,UUID则为接口、管理器点向量或客户端对象等提供唯一标识。ACF文件则包含接口的配置属性。
在调用RPC过程中,需要先创建一个绑定句柄字符串,然后通过这个句柄进行一系列的操作,如创建用户、添加到组等。这些操作都需要调用相应的API,如SamrCreateUser2InDomain()用于创建一个用户,SamrSetInformationUser()用于设置用户信息等。
在RPC的调用过程中,还需要进行一些绑定和设置操作,如使用SamrConnect5获取服务器句柄,然后利用这个句柄以及其它参数通过SamrOpenDomain等API来获取域句柄、用户句柄等。这些步骤是进行后续操作的前提。
还可以利用MS-TSCH(任务计划程序服务远程协议)来注册和配置任务,或者使用MS-SCMR(服务控制管理器远程协议)来远程管理服务控制管理器,如创建和启动服务。
在编写相关代码时,可能会遇到一些问题,如缺少参数或需要实现额外的验证步骤等。但通过查阅官方文档和参考已有的Demo,可以逐步解决问题并完成相应的功能。
除了技术细节,还需要注意一些实际应用中的内容。例如,在创建用户时,需要考虑到帐户的权限和所属域的问题,如内置域和账户域的区别。在进行服务管理时,需要注意服务的启动方式和运行环境等问题。
RPC是一个强大的技术,可以用于各种网络操作和系统管理任务。通过深入了解其原理和机制,并掌握相关的技术和工具,可以更好地利用RPC进行网络攻击或防御操作。但在使用过程中,必须遵守法律法规和道德规范,确保行为的合法性和正当性。
步骤三:程序注册表操作
在接下来的步骤中,我们需要将程序写入注册表。这样做是为了确保程序的稳定运行和系统级别的权限。
效果展示:
(此处应附上相应的操作效果图,展示程序成功写入注册表的过程和结果)
需要注意的是,当前的操作是在系统权限下进行的,这确保了程序的高效运行和安全性。
六、Seclogon Dump Lsass技术解析
有一种技术称为“Seclogon Dump Lsass”,这一技术发现者是名为splinter_code的专家,详细的解析可以参考他的博客文章splintercod3./p/the-hidden-side-of-seclogon-part-2.html。
该技术的原理在于,不直接通过OpenProcess来打开进程对象,而是利用已经打开的Lsass进程句柄来绕过系统的检测机制。接着,它尝试使用RpcImpersonateClient来模拟一个调用者的身份,利用目标进程的PID进行操作。
关于这一技术的关键细节,上述博客中已有详细说明,如需进一步了解可自行查阅。
效果展示:
(此处应附上Seclogon Dump Lsass技术操作的效果图,展示其成功绕过检测并执行相关操作的过程和结果)
在执行Seclogon Dump Lsass技术时,需要特别注意的是,第一步提取`-t 1`的操作是必要的。如果直接使用`-t 2`进行解密操作,很可能会被安全软件检测并阻止。请确保按照步骤正确操作,避免不必要的麻烦。