[英]Understanding smb and DCERPC for remote command execution capabilities
我试图通过impacket脚本了解在Windows上执行远程命令的所有可用方法:
https://www.coresecurity.com/corelabs-research/open-source-tools/impacket
https://github.com/CoreSecurity/impacket
我理解psexec.py和smbexec.py的高级解释,他们如何在远程端创建服务并通过cmd.exe -c
运行命令,但我无法理解如何在远程Windows主机上创建服务通过SMB。 smb应该主要用于文件传输和打印机共享? 阅读他在使用DCERPC创建此服务的注释中看到的源代码,这是smb协议的一部分吗? 我发现DCERPC上的所有资源都令人困惑,并没有专注于其服务创建功能。 查看atexec.py的源代码,它表示它还通过DCERPC与Windows主机的任务调度程序服务进行交互。 它可以用于与远程盒上运行的所有服务进行交互吗?
谢谢!
DCERPC ( https://en.wikipedia.org/wiki/DCE/RPC ):初始协议,用作MSRPC的模板( https://en.wikipedia.org/wiki/Microsoft_RPC )。
MSRPC是一种在远程端执行功能并传输数据(参数到这些功能)的方法。 它不是在远程端直接执行远程OS命令的方法。
SMB ( https://en.wikipedia.org/wiki/Server_Message_Block )是文件共享协议,主要用于访问Windows文件服务器上的文件。 此外,它还提供了命名管道( https://msdn.microsoft.com/en-us/library/cc239733.aspx ),这是一种在本地进程和远程进程之间传输数据的方法。
MSRPC的一种常见方式是通过SMB上的命名管道使用它,其优点是SMB提供的安全层直接用于MSRPC。
事实上,MSRPC是Windows世界中最重要但却鲜为人知的协议之一。
MSRPC和SMB都没有与远程执行shell命令有关。
执行远程命令的一种常用方法是:
事实上,这就是PSEXEC所做的。
我发现DCERPC上的所有资源都令人困惑,并没有专注于其服务创建功能。
是的,它只是一个远程过程调用协议。 但它可用于在远程端启动程序,这可以做任何事情,例如创建服务。
查看atexec.py的源代码,它表示它还通过DCERPC与Windows主机的任务调度程序服务进行交互。 它可以用于与远程盒上运行的所有服务进行交互吗?
有一些MSRPC命令可以处理任务调度程序,还有一些命令可以处理通用服务启动和停止命令。
最后几句话:
SMB / CIFS及其周围的协议非常复杂且难以理解。 似乎可以尝试理解如何处理例如远程服务控制,但这可能是一个非常漫长的旅程。
也许这个页面(使用Java试图控制Windows服务)也可能有助于理解。
https://dev.c-ware.de/confluence/pages/viewpage.action?pageId=15007754
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.