提到windows系统的网络登录,一般我们首先想到的是3389登录,也就是通过终端连接服务器登录目标机器。但是,你可能还不是十分清楚,windows系统之间的网络登录其实大部分是通过139端口进行的。这是由smb/cifs协议所规定的,客户端通过139建立连接,发送用户名和密码到服务器端,服务器端在139端口监听,接受到客户端的请求后,检查接收到的用户名和口令,如果错误,则拒绝连接,如果正确,则给予客户端相应的权限,这就是windows最基本网络登录过程。
上面的说法你可能会觉得很抽象,实质上,这个登录过程我们可以形象的把它看作目标机器建立ipc连接。你执行.net use命令跟机器建立ipc连接,就是通过139发出请求,如果你.net命令里所使用的用户是administrators组的,则建立成功后目标机器会给你的ipc连接administrators权限,如果是guest的权限,当然,如果是用空连接,那得到的权限是微不足道的了。
关于ipc的小知识:ipc是inte.net process connection的缩写,也就是远程网络连接。它是windows nt/2000/xp特有的一项功能,就是在两个计算机进程之间建立通信连接。然后,一些网络通信程序的通信可以建立在ipc上面。打个比方,ipc连接就像是挖好的地道,然后我们用程序通过地道访问远程主机。默认情况下,ipc是共享的,也就是说微软已经为我们挖好了这个地道(ipc)。建立ipc连接需要什么条件呢?首先自己的系统应该是winnt以上的,windows 98不可以,因为win98网络管理这方面的功能很少,windows 98没有ipc,ipc是windows nt和windows 2k/xp/2003才有的。
ok,理解了ipc连接,我们再深入一步,其实ipc也是一种共享资源,只不过比较特殊罢了,我们.net use建立ipc连接的时候,说白了,就是用我们所掌握的用户名和口令申请对方的ipc共享资源。同样的,我们.net use命令映射对方磁盘的时候,也是用我们掌握的用户名和口令申请对方磁盘共享资源。所以.net use这个命令不管你申请ipc资源还是磁盘资源,都通过139端口先进行网络登录,然后进行的。
网络登录过程基本上就这样了,我们继续深入,看一下网络登录获得的权限问题。首先要说一下,在这权限问题上,windows 2000系统和windows xp系统的处理是不同的。
先来看windows 2000。windws 2000系统做得比较实在(呵呵,怎么这么说呢?),windows 2000系统完全是按照你提供的用户名和口令赋予登录权限的,也就是你用超级用户登录(就是建立连接了),那你就可以得到超级用户的连接权限,你用guest登录,你得到guest的连接权限,而你用空连接的话,那得到的权限就象前面说的,微不足道。
再来看windows xp,这就跟windows 2k系统不同了。默认的windows xp系统不是根据你提供的用户名和口令来赋予登录权限的。这点你可以在windows xp系统的帮助里面找到,如图所示(如图)。windows xp的网络登录有两种模式可用:“典型”和“仅来宾”,详细的解释如下:
如果将登录模式设置为“典型”则登录过程中使用客户提供的用户进行登录,登录成功后具有这个用户的权限。如果设置为“仅来宾”,则登录过程中不论是用什么用户登录,如果登录成功,则自动映射到“来宾”帐户,也就是只有guest用户的权限,简单的说,windows xp网络登录所获得的权限取决于系统的设置,如果为“典型”,那么你可以获得你所拥有用户的相应权限,如果你有超级用户,那么取得的权限就是超级用户权限,而如果为“仅来宾”,那么无论你用什么用户权限,即使是超级用户,建立连接后得到的只能是guest权限,很不幸的是,windows xp系统默认设置是“仅来宾”。
网络登录的权限问题搞清楚了,下面我们扩展一下,当我们去请求目标机器的资源的时候都需要什么权限,ipc$很简单,在目标系统默认设置下,无论guest用户,administrator用户,甚至null,都可以进行登录,而磁盘资源则不同,默认设置下,只能用administrators组的用户登录,也就是只能超级用户权限映射磁盘。
现在网络登录已经讲的差不多了,下面看一下一个具体的问题,以下是一个朋友在论坛上发的帖子:局域网中,对方使用xp,打开了139端口,我用对方机器上的超级用户ipc连接(密码和用户名都肯定正确),提示成功,想.net use z:\ip\d$这个命令映射对方的d盘,却老是提示用户名和密码不正确,就算我把正确的用户名和密码输进去,还是不行。这是为什么啊??
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器