msf中的getsystem的原理

10 篇文章 1 订阅

windows的命名管道

命名管道基于smb协议通信

用来让两个进程间进行通信,两个进程可以是本地进程,也可以是远程进程,类似于socket连接,是用来传输数据的,可以设置具体的权限让指定权限的进程才能连接命名管道,理论上每个程序都能连接命名管道,只是连接之后能做的事情不同,具体能做什么事跟服务端的配置有关系。

命名管道是啥

1.命名管道是C/S架构,必须让服务端某个进程先创建命名管道。

2.命名管道可以被任何符合权限的进程去访问,且何种权限可以访问是可以自定义的。

3.客户端可以是本地的某个进程或者远程的某个进程,本地进程访问命名管道方式为.\pipe\pipename,远程进程访问命名管道方法为\ip\pipe\pipename。

4.在powershell中使用dir .\pipe\ | select name可以查看当前所有命名管道的名称。

命名管道还有一个特点就是当服务端进程被客户端进程连接的时候,理论上说服务端进程有可能获取到客户端的权限。ImpersonateNamedPipeClient()这个api可以帮助我们进行实现,前提是我们当前用户具有SeImpersontePrivilege权限。

msf中的getsystem的原理

1.创建一个以system权限启动的程序,这个程序的作用是连接指定的命名管道。
2.创建一个进程,并让进程创建命名管道。
3.让之前的以system权限启动的程序启动并连接这个命名管道。
4.利用ImpersonateNamedPipeClient()函数生成system权限的token。
5.利用system权限的token启动cmd.exe。

过程

在一个拥有SeImpersonatePrivilege权限的用户(User组)启动一个进程,作用是创建一个命名管道等待连接,连接成功后模拟客户端的权限,并用这个权限启动一个cmd窗口。

whoami /priv查看权限

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值