特点
基于 TCP 的反向 Shell:RustPotato 具有基于Rustic64Shell的 TCP 反向 Shell 。它利用 Winsock API 进行网络通信,利用间接 NT API 进行基于管道的 I/O 重定向,从而能够通过
cmd
或执行命令powershell
。间接 NTAPI:RustPotato 利用间接 NTAPI 调用进行各种操作,包括令牌处理和操作。
初始化并钩住 RPC 上下文
定位
RPC_SERVER_INTERFACE
结构:该工具扫描内存combase.dll
以查找RPC_SERVER_INTERFACE
结构,这是通过 OXID 解析器管理 RPC 通信的关键组件。挂钩 RPC 调度表: RustPotato用自定义函数指针替换其中的第一个条目,从而能够拦截和操纵特定的 RPC 调用。
RPC_DISPATCH_TABLE
启动命名管道服务器并触发RPCSS
命名管道服务器在模拟和权限提升中起着核心作用:
创建命名管道:创建一个具有不受限制访问的命名管道(例如
\.pipeRustPotato
),作为客户端连接的端点。解组 COM 对象:RustPotato 制作并解组 COM 对象,强制RPCSS与命名管道建立连接。
触发 RPCSS:解组的对象调用遍历挂钩调度表的 RPC 调用,从而允许 RustPotato 拦截和操纵交互。
模拟客户端:当RPCSS连接到命名管道时,RustPotato 会模拟客户端
ImpersonateNamedPipeClient
并假定其安全上下文。检索系统令牌:在模拟期间,RustPotato 会定位并复制与帐户关联的令牌
NT AUTHORITYSYSTEM
。
命令或建立反向Shell
执行命令:RustPotato 使用重复的令牌来执行指定的命令,利用
CreateProcessWithTokenW
。建立反向 Shell:使用反向 Shell 选项(
-h
和-p
),RustPotato 连接到侦听器并通过cmd
或执行命令powershell
。
状态和清理
恢复 RPC 调度表:从 中删除自定义函数指针
RPC_DISPATCH_TABLE
并恢复 中的原始状态combase.dll
。终止管道服务器:停止命名管道服务器,释放所有相关资源和句柄。
注意: RustPotato 仅支持 x86_64 目标(MSVC 或 GNU)
基本构建(仅打印流程输出):
cargo build --release
使用详细日志进行构建:
cargo build --release --features verbose
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...