IPC$建立通道与用户权限的故事
IPC$
IPC(Internet Process Connection),为了让进程之间通信所建立的管道,两个进程之间使用它可以进行数据交互,通过用户名和密码获得响应的权限。
使用net share查看本机共享目录:
IPC访问限制
- 同一时间,两个IP之间只允许建立一个连接
- 系统安装之后一般都对各个盘符进行了默认共享,如C$,D$,Admin$(C:\windows),但因为Windows系统存在用户访问控制(UAC)的原因,因此除了默认SID为500的用户Administrator之外其他的用户只有执行net time命令的权限,就算是本地账户管理组当中的用户也不行。但在域环境当中会有所不同,在接下来的实验当中会进行验证,如果需要看最后的结论请移步到文章末尾即可。
- 注:IPC$一般会禁用空密码连接,并且目前的Windows系统在安装的时候会禁用Administrator用户,而是创建一个普通用户并添加到管理组内。
IPC建立条件
139或445端口被开启:如果连接的目标主机没有开放139或445端口,使用IPC连接,会提示找不到网络名。
● SMB协议(445端口):Windows文件打印共享服务使用的就是此端口,永恒之蓝也利用这个端口,还有在MSF当中的smb_login攻击模块的密码喷洒也使用的此端口。
● NETBios(139端口):NETBios协议是一种在局域网上的程序可以使用的应用程序编程接口(API)。
实验验证
这个问题困扰很久,因为在平时没有U盘或者虚拟机VMTools存在问题的时候,经常使用它来传输文件,当然Windows传输文件的方式不止这一种手段,比如就还有直接共享文件夹。接下来就对比几个实验验证什么用户能够使用IPC连接进行文件传输以及执行命令。
- 实验一:同为管理员组的Administrator用户和cds用户分别建立IPC共享通道,是否都能执行命令?
- 查看本地管理组成员,并且查看开放共享
- 分别用管理组普通用户cds和管理组用户Administrator用户建立连接并复制文件
● 实验二:在域环境当中,当域账户为本地管理组成员是否能够执行IPC命令呢? - 查看本地管理组与共享
- 使用域账户建立IPC连接并执行命令
结论
通过实验可以看到在不存在域的时候,只有系统内置账号Administrator才有权限执行命令,但在域环境当中,只要域账户在本地账户管理组当中,就可以执行命令,为什么呢?下面是微软的官方文档,官方文档链接:
通过官方文档可知,当我们使用目标计算机上本地Administrators组成员的用户使用net use命令建立远程管理时,是没有执行管理任务的权限的。想要拥有管理任务的权限需要才有远程协助和远程桌面的方式。而针对域用户在本地管理组内的情况,登录到远程计算机则会使用管理员令牌,并且UAC不会生效。
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
请登录/注册后在FreeBuf发布内容哦