提到Windows系統的網絡登錄,一般我們首先想到的是3389登錄,也就是通過終端連接服務器登錄目標機器。但是,你可能還不是十分清楚,Windows系統之間的網絡登錄其實大部分是通過139端口進行的。這是由SMB/CIFS協議所規定的,客戶端通過139建立連接,發送用戶名和密碼到服務器端,服務器端在139端口監聽,接受到客戶端的請求後,檢查接收到的用戶名和口令,如果錯誤,則拒絕連接,如果正確,則給予客戶端相應的權限,這就是Windows最基本網絡登錄過程。
上面的說法你可能會覺得很抽象,實質上,這個登錄過程我們可以形象的把它看作目標機器建立IPC連接。你執行的net use命令跟機器建立IPC連接,就是通過139發出請求,如果你的net命令裡所使用的用戶是Administrators組的,則建立成功後目標機器會給你的IPC連接Administrators權限,如果是Guest的權限,當然,如果是用空連接,那得到的權限是微不足道的了。
關於IPC的小知識:IPC是Internet 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盤,卻老是提示用戶名和密碼不正確,就算我把正確的用戶名和密碼輸進去,還是不行。這是為什麼啊??
有了前面我所介紹的基礎,現在我們完全可以來回答這個問題了,對方是Windows XP系統,有了正確的超級用戶的口令,用這個口令建立IPC連接成功,可是映射磁盤不成功,原因就出在Windows XP的“僅來賓”的默認設置上,不管你用什麼口令登錄,都是Guest權限,而映射磁盤必須是Administrator權限,所以,磁盤根本無法映射成功,IPC可以連接成功,是因為建立IPC連接不需要什麼特別的權限,任何用戶口令甚至為NULL都可以。
下面我們來總結一下,默認設置下,Windows 2000系統只要你有超級用戶的權限,就可以獲取目標的任何共享資源,Windows XP系統則不同了,因為默認設置是“僅來賓”,所以,無論你用什麼用戶登錄,即使你有超級用戶的口令,但登錄後得到的權限僅僅是Guest。