IPC,一直被人们忽视的“东西”。

本文涉及的产品
云防火墙,500元 1000GB
简介: IPC(instruction per clock) 实际上是频率和IPC在真正影响CPU性能。准确的CPU性能判断标准应该是:CPU性能=IPC(CPU每一时钟周期内所执行的指令多少)×频率(MHz时钟速度),这个公式最初由英特尔提出并被业界广泛认可。

IPC(instruction per clock)

实际上是频率和IPC在真正影响 CPU性能。准确的CPU性能判断标准应该是:CPU性能=IPC(CPU每一 时钟周期内所执行的指令多少)× 频率(MHz时钟速度),这个公式最初由 英特尔提出并被业界广泛认可。

通信

IPC 进程间通信
IPC(Inter-Process Communication)是共享"命名管道"的资源,它是为了让 进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。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的环境下测试的,别的系统没做测试,不过相信都大同小异,出现的问题也应该差不多,我将列举我在两个系统的实验中所出现的所有问题供大家参考。
另外如果是初学者,对IPC及 DOS命令毫无概念,请配合上一篇《IPC基础及IPC-DOS命令》一起阅读。

进入正题

第一步

按WIN+R弹出一个运行框(别告诉我说WIN键都不知道是哪一个,那没救了!就是打开 开始菜单的那个键,上面有一个WINDOWS的标志的键),键入CMD,进入DOS中。

第二步

输入net use \\目标IP\ipc$ "密码" /user:"用户名"。输入完这个之后,将会显示命令成功完成的提示符。值的注意的是语法的格式问题。在这条语法中一共有四个空格。USE前后各有一个空格,密码前后各有一个空格。此外需要注意的是这里的用户名和密码是入侵 主机的登录系统用的用户名和密码而非宽带拨号的那个。在这个过程中,如果目标机是 VISTA系统的话,那么可以很轻松的入侵,因为VISTA系统中 微软默认就把SERVER服务给开了,只要知道用户名和密码就可以进来。而XP中却是关闭的,如果别人用的是XP系统而你又只是做实验的话那就放弃吧。或者你还不死心,打个电话给别人叫别人开一下吧!别人问你怎么开怎么办?如果你也不知道的话,晕,算了,好人做到底了,我告诉你吧,免得你去百度上去找了。打开“ 控制面板-经典视图-管理工具-服务”在服务项目中找到SERVER那一项,然后自己想办法开启吧!要再不会,那我也没辙了!

第三步

输入net view \\目标IP 查看一下目标开放了哪些共享。如果对方已将全部的盘上的资源都共享了的话,那么已经可以说入侵已经接近尾声了(在XP中默认开启的共享有:打印机什么的,而VISTA默认中几乎把所有的共享都开了)。但是如果对方没有开启共享的话那我们就得自己想办法来解决这个问题了。一般我们都是用telnet这项服务进入对方的电脑,然后帮他开启你想要的那些共享。那么怎么样进入telnet呢?这又是一个比较大的问题了。在XP中默认telnet服务是禁用的,也就是说你不可以用这项服务。而VISTA做的更绝,在服务项中都没有这一项,不过没关系我们可以自己加。具体方法如下:“ 控制面板-进入控制面板主页-打开或关闭WINDOWS功能(左下方)-在里面找到telnet两项都添加就行”。碰到这种情况,像我们这种做实验的类型的应该就要选择放弃了。如果你再打个电话叫对方把禁用去掉,改成自动的,那么情况又不一样了(修改方法和刚才开启SERVER差不多,这里就不详细介绍了),只要不是禁用,不管他的服务有没有开启我们都有办法把它变成开启的。下面我给大家介绍一个比较简单的方法。首先打开“ 记事本-在里面输入@net start telnet"保存为opentelnet.bat放在C盘中吧!这里是用的一个 批处理命令来实现的,具体怎么实现的在这里我就不多说了,因为今天的重点不是它。大家按做就行了,不过我可以告诉大家的是这个命令的效果就是打开停用的telnet服务(注意是停用的而非禁用的)。接下来我们要做的就是把这个文件复制到目标机的根目录中去。具体操作为:

第四步

输入 copy c:\opentelnet.bat \\目标IP\admin$ 这样我们就把刚才建的那个文件复制到对方 主机的根目录中去了。不过在复制的过程中可能会出现在一些问题,我在向XP中上复制时就出现问题了,而且一直找不到问题出在哪,不过复制失败的原因具体有以下一些,我从网上找的,现在COPY过来。
复制文件的时候提示出错,原因可能有以下几个方面:
1)盲目复制:
复制根本就不存在的共享文件,复制前应使用net view\\IP命令查看目标 主机的共享情况;
2) 默认共享判断错误:
ipc$共享与 默认共享是两码事,ipc$共享是一个 命名管道,不是具体的文件夹,而默认共享并不是ipc$共享的必要条件;
net view\\IP无法显示 默认共享(因为默认共享带$),我们无法通过这个命令判断对方是否开启了默认共享。
3)用户权限不够:
空连接向所有共享(默认共享和普通共享)复制时,大多情况下权限是不够的;
默认共享复制时,要具有 管理员权限;
向普通共享复制时,要具有相应权限(即目标 主机预设的访问权限);
目标主机通过 防火墙安全软件的设置,禁止外部访问共享;
4)被 防火墙杀死或在局域网

第五步

运行这个文件。就这要用到我们的at命令了。方法如下:首先看一下目标机的时间。键入net time 目标机IP 知道目标机时间我们就可以给它一个任务让它在要求的时间运行。假设刚才看到的时间为14:20,那么我们可以键入 at opentelnet.bat 14:30 \\目标IP 这行命令将使目标机在14:30的时候准时运行opentelnet.bat这个文件。

第六步

telnet 目标IP 这就是和对方建立telnet连接,有了这个连接我们可以在别人的计算机上做任何事了,损害他人利益的事禁止做,否则格杀勿论。具体可以做哪些事我也不自己写了,累啊,复制一下:
在远程 主机上建立用户,激活用户,修改用户密码,加入管理组等操作;
打开远程 主机ipc$共享, 默认共享,普通共享的操作;
运行/关闭远程主机的服务;
启动/杀掉远程 主机的进程。
其中第二个应用才是我们要做的事,打开主机的IPC$共享(加一个美元符号其实就是打开共享之后不会在对方机器上显示一个手托盘的符号)

第七步

先退出telnet,输入exit就可以了。然后键入 net use h: \\目标IP\c$ 这个命令的作用是将对方的C盘映射到本地盘的h盘,其中h盘不能是本机原来已有的盘。映射,不懂?好的,不急。我来解释一下:就是把别人的东西反射到自己的电脑,然后可以对其进行任何操作,就相当于是自己的电脑一样,至此,恭喜你,入侵成功!
YES
相关文章
|
6月前
|
消息中间件 Linux API
C/C++ 进程间通信system V IPC对象超详细讲解(系统性学习day9)
C/C++ 进程间通信system V IPC对象超详细讲解(系统性学习day9)
|
22天前
|
消息中间件 存储 Linux
|
1月前
|
消息中间件 存储 网络协议
操作系统的心脏:深入理解进程间通信(IPC)机制
在现代计算机系统中,操作系统扮演着至关重要的角色,而进程间通信(IPC)作为操作系统的核心功能之一,极大地影响着系统的性能和稳定性。本文将通过浅显易懂的语言,详细探讨进程间通信的基本原理、主要类型及其实际应用,旨在为读者提供一个清晰且全面的理解和认识。 ##
132 1
|
2月前
|
消息中间件 Unix
操作系统的心脏:深入理解进程间通信(IPC)
在现代计算中,操作系统扮演着至关重要的角色,它不仅管理着硬件资源,还负责协调和优化应用程序之间的交互。本文将深入探讨操作系统中的一个核心概念——进程间通信(IPC),揭示其背后的机制以及在实际应用中的重要性。通过通俗易懂的语言和条理清晰的解释,本文旨在为读者提供一个关于IPC的全面了解,从基本定义到高级应用,带领大家走进操作系统的神秘世界。
|
2月前
|
消息中间件 程序员 数据处理
探究操作系统中的进程间通信(IPC)机制及其在现代软件开发中的应用
本文深入探讨了操作系统中的核心概念——进程间通信(IPC),揭示了其在现代软件开发中的关键作用。通过对各种IPC机制如管道、消息队列、共享内存等的详细分析,本文旨在为读者提供一个清晰的理解框架,帮助他们掌握如何在实际应用中有效利用这些技术以实现进程间的协同工作。此外,文章还将探讨IPC在高并发环境下的性能优化策略,以及如何避免常见的IPC编程错误。通过结合理论与实践,本文不仅适合希望深入了解操作系统原理的技术人员阅读,也对那些致力于提升软件质量和开发效率的程序员具有重要参考价值。
51 0
|
6月前
|
消息中间件 存储 网络协议
Linux IPC 进程间通讯方式的深入对比与分析和权衡
Linux IPC 进程间通讯方式的深入对比与分析和权衡
545 1
|
消息中间件 算法 网络协议
深入探讨进程间通信的重要性:理解不同的通信机制(下)
本文旨在探讨进程间通信的重要性,并介绍了不同的通信机制,如管道、消息队列、共享内存、信号量、信号和套接字。通过理解这些通信机制的特点和应用场景,可以更好地实现进程间的高效数据共享。同时,本文还强调了同步和互斥机制的重要性,以确保数据的一致性和正确性。最后,还介绍了套接字作为一种跨网络和同一主机上进程间通信的通信机制,为读者提供了更全面的了解。通过阅读本文,读者将能够深入理解进程间通信的概念和不同机制,为实现有效的数据共享提供指导。
深入探讨进程间通信的重要性:理解不同的通信机制(下)
|
消息中间件 存储 Java
深入探讨进程间通信的重要性:理解不同的通信机制(上)
本文旨在探讨进程间通信的重要性,并介绍了不同的通信机制,如管道、消息队列、共享内存、信号量、信号和套接字。通过理解这些通信机制的特点和应用场景,可以更好地实现进程间的高效数据共享。同时,本文还强调了同步和互斥机制的重要性,以确保数据的一致性和正确性。最后,还介绍了套接字作为一种跨网络和同一主机上进程间通信的通信机制,为读者提供了更全面的了解。通过阅读本文,读者将能够深入理解进程间通信的概念和不同机制,为实现有效的数据共享提供指导。
223 0
深入探讨进程间通信的重要性:理解不同的通信机制(上)
|
NoSQL Linux
进程间通信--打下坚实的基础篇(IPC)
进程间通信--打下坚实的基础篇(IPC)
41 0
|
消息中间件 Linux
system V IPC进程间通信机制一网打尽
system V IPC进程间通信机制一网打尽
system V IPC进程间通信机制一网打尽