ipc(桌面云产品)

IPC(Inter-Process Communication,进程间通信)。

IPC ( Instruction Per Clock, 即 CPU 每一时钟周期内所执行的指令多少) IPC代表了一款处理器的设计架构,一旦该处理器设计完成之后,IPC值就不会再改变了。在这里,IPC值的高低起到了决定性的作用,而频率似乎不再高于一切。

IPC(Inter-Process Communication)进程间通信,提供了各种进程间通信的方法。在Linux C编程中有几种方法

(1) 半双工Unix管道
  (2) FIFOs(命名管道)
  (3) 消息队列
  (4) 信号量
  (5) 共享内存
  (6) 网络Socket

FIFOs是共享"命名管道"的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。IPC是NT/2000的一项新功能,它有一个特点,即在同一时间内,两个IP之间只允许建立一个连接。NT/2000在提供了ipc功能的同时,在初次安装系统时还打开了默认共享,即所有的逻辑共享(c,d,e……)和系统目录winnt或windows(admin)共享。所有的这些,微软的初衷都是为了方便管理员的管理,但在有意无意中,导致了系统安全性的降低。

平时我们总能听到有人在说ipc漏洞,ipc漏洞,其实ipc并不是一个真正意义上的漏洞,我想之所以有人这么说,一定是指微软自己安置的那个‘后门’:空会话(Null session)。

网络入侵

IPC(Inter-Process Communication)网络入侵

为了帮助大家更好的学习IPC,我在这里特定整理及完善了一下IPC的概念、一些常用命令、在IPC出现在些问题的原因等等,资料大都来自因特网,由于不知道作者名字,故不能标记内容来处,敬请见谅。

IPC的概念

空会话的概念

空会话是在没有信任的情况下与服务器建立的会话,对于一个空会话,LSA提供的令牌的SID(空会话的SID)是S-1-5-7,用户名是:ANONYMOUS LOGON(系统内置的帐号),该访问令牌包含下面伪装的组:Everyone和Network。

IPC建立的过程

1)会话请求者(客户)向会话接收者(服务器)传送一个数据包,请求安全隧道的建立;

2)服务器产生一个随机的64位数(实现挑战)传送回客户;

3)客户取得这个由服务器产生的64位数,用试图建立会话的帐号的口令打乱它,将结果返回到服务器(实现响应);

4)服务器接受响应后发送给本地安全验证(LSA),LSA通过使用该用户正确的口令来核实响应以便确认请求者身份。如果请求者的帐号是服务器的本地帐号,核实本地发生;如果请求的帐号是一个域的帐号,响应传送到域控制器去核实。当对挑战的响应核实为正确后,一个访问令牌产生,然后传送给客户。客户使用这个访问令牌连接到服务器上的资源直到建议的会话被终止。

IPC连接条件

★ 跟操作系统相关(NT/2000/XP可以建立ipc$连接,98/ME不能建立ipc$连接);

★ 目标主机必须要开启ipc$共享;

★本地主机必须要启动Lanmanworkstation服务(功能为提供网络链结和通讯);

★ 目标主机必须要启动Lanmanserver服务(ipc$依赖于此服务,它提供了 RPC 支持、文件、打印以及命名管道共享);

★ 目标主机必须要启动NetLogon,它支持网络上计算机 pass-through 帐户登录身份;

★ 目标主机应该启动NBT(打开139端口);

★ 目标主机防火墙配置(如果屏蔽139和445端口也将导致连接失败);

★ 用户名或者密码错误;

★ 命令输入错误(特别要注意空格的输入,用户名和密码中不包含空格时两边的双引号可以省略,密码为空,直接输入两个引号"");

★ 建立好连接后目标主机重启,ipc$连接会自动断开。

连接错误号分析

错误号5: 拒绝访问,权限不够;

错误号51: 无法找到网络路径(网络有问题);

错误号53: 找不到网络路径(ip地址错误;目标主机未开机;目标主机lanmanserver服务未启动;目标主机防火墙设置过滤端口);

错误号67: 找不到网络名(本地主机中lanmanworkstation服务未启动或者目标主机删除了ipc$);

错误号1219: 提供的凭据与已存在的凭据集冲突(已经建立了一个ipc$,可以删除再连);

错误号1326: 用户名或密码错误;

错误号1792: 试图登录,网络登录服务没有启动(目标主机中NetLogon服务未启动);

错误号2242: 该用户的密码已经过期。

常用口令

★ 建立空连接: net use\\IP\ipc$"" /user:""

★ 建立非空连接: net use\\IP\ipc$"password" /user:"username"

★ 查看远程主机的共享资源(但看不到默认共享) net view\\IP

★ 查看本地主机的共享资源(可以看到本地的默认共享) net share

★ 得到远程主机的用户名列表 nbtstat -A IP

★ 得到本地主机的用户列表 net user

★ 查看远程主机的当前时间 net time\\IP

★ 显示本地主机当前服务 net start

★ 启动/关闭本地服务 net start 服务名 /y net stop 服务名 /y

★ 映射远程共享: net use z:\\IP\sihochina此命令将共享名为sihochina的共享资源映射到z盘

★ 删除共享映射 net use z: /del /y 删除映射的z盘net use * /del /y 删除全部

★ 向远程主机复制文件 copy \路径\*.exe\\IP\共享目录名,如: copy sihochina.exe\\IP\c将当前目录下的sihochina.exe复制到对方c盘内

★ 远程添加计划任务 at\\ip时间 程序名,如: at\\192.168.0.111:00 sihochina.exe 11:00在主机192.168.0.1上运行sihochina.exe

本文所用的方法主要是在VISTA 旗舰版SP2以及XP SP2的环境下测试的,别的系统没做测试,不过相信都大同小异,出现的问题也应该差不多,我将列举我在两个系统的实验中所出现的所有问题供大家参考。

相关词汇