




已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
;.目錄1CIFS協(xié)議 31.1CIFS協(xié)議概述 31.2CIFS協(xié)議頭格式 31.2.1頭域 31.2.2命令域 31.2.3錯(cuò)誤類(lèi)域 51.2.4錯(cuò)誤代碼域 51.2.5flags域 51.2.6flags2域 61.2.7填充或安全簽名域 81.2.8TID域 81.2.9PID域 81.2.10UID域 81.2.11MID域 81.2.12 Wordcount和Parameterwords(參數(shù)域) 81.2.13Bytecount和buffer域(緩沖) 91.3CIFS協(xié)議的安全機(jī)制 91.3.1用戶級(jí)安全 91.3.2共享級(jí)安全 91.3.3加密 91.4CIFS協(xié)議的完整性 101.4.1機(jī)會(huì)鎖 101.5CIFS協(xié)議包交換流程 101.5.1包交換的第一部分協(xié)商和參數(shù)傳遞 建立NetBIOS會(huì)話 CIFS協(xié)議版本協(xié)商 用戶登錄 連接特定資源 121.5.2包交換的第二部分?jǐn)?shù)據(jù)交換 屬性、操作等參數(shù)傳遞 數(shù)據(jù)交換 142NetBIOS協(xié)議 152.1NetBIOS概述 152.2NetBIOS名稱(chēng)服務(wù) 152.2.1NetBIOS名稱(chēng) 152.2.2NetBIOS名稱(chēng)屬性和格式 152.2.3NetBIOS名稱(chēng)解析方式 152.2.4NetBIOS名稱(chēng)識(shí)別策略 162.2.5NetBIOS名稱(chēng)管理 162.3NetBIOS會(huì)話服務(wù) 162.3.1概述 162.3.2NetBIOS會(huì)話原語(yǔ) 172.4NetBIOS數(shù)據(jù)報(bào)服務(wù) 171、CIFS協(xié)議1.1 CIFS協(xié)議概述通用網(wǎng)際文件系統(tǒng)(CIFS)是微軟服務(wù)器消息塊協(xié)議(SMB)的增強(qiáng)版本,是計(jì)算機(jī)用戶在企業(yè)內(nèi)部網(wǎng)和因特網(wǎng)上共享文件的標(biāo)準(zhǔn)方法。CIFS 通過(guò)定義一種與應(yīng)用程序在本地磁盤(pán)和網(wǎng)絡(luò)文件服務(wù)器上共享數(shù)據(jù)的方式相兼容的遠(yuǎn)程文件訪問(wèn)協(xié)議使之能夠在因特網(wǎng)上進(jìn)行協(xié)作。定義了客戶端向服務(wù)器端的請(qǐng)求和服務(wù)器端得應(yīng)答報(bào)文。CIFS數(shù)據(jù)包格式為標(biāo)準(zhǔn)頭部+2個(gè)可變長(zhǎng)區(qū)域。CIFS協(xié)議有很多版本,每個(gè)協(xié)議的版本稱(chēng)為一種方言,并分配一個(gè)唯一的字符串來(lái)識(shí)別。當(dāng)客戶端希望訪問(wèn)遠(yuǎn)程服務(wù)器上的文件時(shí),第一次發(fā)送的CIFS數(shù)據(jù)包是一個(gè)協(xié)商版本的數(shù)據(jù)包。在這個(gè)數(shù)據(jù)包中,客戶端列出了自己可以提供的版本字符串。服務(wù)器在響應(yīng)數(shù)據(jù)包中選擇其中一種版本字符串發(fā)送給客戶端。這樣兩者就協(xié)商出一個(gè)CIFS協(xié)議的版本。1.2CIFS協(xié)議頭格式012345670123456701234567012345670xFFSMBCommandError classMust be zeroError codeError code(continued)FlagsFlags2填充或者安全簽名,通常標(biāo)準(zhǔn)的填充是0樹(shù)ID(TID)進(jìn)程ID(PID)用戶ID(UID)多重識(shí)別碼(MID)wordcountParameterwordswordcountBytecountBufferbytecount1.2.1頭域每個(gè)CIFS數(shù)據(jù)包的開(kāi)始包含4個(gè)字節(jié)的頭。第一個(gè)字節(jié)是0xFF,第二個(gè)字節(jié)是字母S的ASCII表示,第三個(gè)字節(jié)和第四個(gè)字節(jié)分別為M和B。1.2.2命令域命令域?yàn)?個(gè)字節(jié),用來(lái)表示CIFS數(shù)據(jù)包的類(lèi)型。其各種命令對(duì)應(yīng)的數(shù)值見(jiàn)下:SMB_COM_CREATE_DIRECTORY 0x00SMB_COM_DELETE_DIRECTORY 0x01SMB_COM_OPEN 0x02SMB_COM_CREATE 0x03SMB_COM_CLOSE 0x04SMB_COM_FLUSH 0x05SMB_COM_DELETE 0x06SMB_COM_RENAME 0x07SMB_COM_QUERY_INFORMATION 0x08SMB_COM_SET_INFORMATION 0x09SMB_COM_READ 0x0ASMB_COM_WRITE 0x0BSMB_COM_LOCK_BYTE_RANGE 0x0CSMB_COM_UNLOCK_BYTE_RANGE 0x0DSMB_COM_CREATE_TEMPORARY 0x0ESMB_COM_CREATE_NEW 0x0FSMB_COM_CHECK_DIRECTORY 0x10SMB_COM_PROCESS_EXIT 0x11SMB_COM_SEEK 0x12SMB_COM_LOCK_AND_READ 0x13SMB_COM_WRITE_AND_UNLOCK 0x14SMB_COM_READ_RAW 0x1ASMB_COM_READ_MPX 0x1BSMB_COM_READ_MPX_SECONDARY 0x1CSMB_COM_WRITE_RAW 0x1DSMB_COM_WRITE_MPX 0x1ESMB_COM_WRITE_COMPLETE 0x20SMB_COM_SET_INFORMATION2 0x22SMB_COM_QUERY_INFORMATION2 0x23SMB_COM_LOCKING_ANDX 0x24SMB_COM_TRANSACTION 0x25SMB_COM_TRANSACTION_SECONDARY 0x26SMB_COM_IOCTL 0x27SMB_COM_IOCTL_SECONDARY 0x28SMB_COM_COPY 0x29SMB_COM_MOVE 0x2ASMB_COM_ECHO 0x2BSMB_COM_WRITE_AND_CLOSE 0x2CSMB_COM_OPEN_ANDX 0x2DSMB_COM_READ_ANDX 0x2ESMB_COM_WRITE_ANDX 0x2FSMB_COM_CLOSE_AND_TREE_DISC 0x31SMB_COM_TRANSACTION2 0x32SMB_COM_TRANSACTION2_SECONDARY 0x33SMB_COM_FIND_CLOSE2 0x34SMB_COM_FIND_NOTIFY_CLOSE 0x35SMB_COM_TREE_CONNECT 0x70SMB_COM_TREE_DISCONNECT 0x71SMB_COM_NEGOTIATE 0x72SMB_COM_SESSION_SETUP_ANDX 0x73SMB_COM_LOGOFF_ANDX 0x74SMB_COM_TREE_CONNECT_ANDX 0x75SMB_COM_QUERY_INFORMATION_DISK 0x80SMB_COM_SEARCH 0x81SMB_COM_FIND 0x82SMB_COM_FIND_UNIQUE 0x83SMB_COM_NT_TRANSACT 0xA0SMB_COM_NT_TRANSACT_SECONDARY 0xA1SMB_COM_NT_CREATE_ANDX 0xA2SMB_COM_NT_CANCEL 0xA4SMB_COM_OPEN_PRINT_FILE 0xC0SMB_COM_WRITE_PRINT_FILE 0xC1SMB_COM_CLOSE_PRINT_FILE 0xC2SMB_COM_GET_PRINT_QUEUE 0xC3SMB_COM_READ_BULK 0xD8SMB_COM_WRITE_BULK 0xD9SMB_COM_WRITE_BULK_DATA 0xDA1.2.3錯(cuò)誤類(lèi)域服務(wù)器用來(lái)指明請(qǐng)求是否成功。通常情況下為0表示成功,如果不為零,這個(gè)域表示該錯(cuò)誤代碼是什么類(lèi)。錯(cuò)誤類(lèi)為以下值之一:ERRDOS (0X01) - 錯(cuò)誤是從核心DOS操作系統(tǒng)設(shè)置ERRSRV (0x02) - 錯(cuò)誤是由服務(wù)器的網(wǎng)絡(luò)文件管理器 ERRHRD (0x03) - 硬件錯(cuò)誤 ERRCMD (0xFF) - 命令沒(méi)有在“SMB”格式 1.2.4錯(cuò)誤代碼域該域?yàn)?字節(jié)長(zhǎng)度,表示已發(fā)生的錯(cuò)誤的類(lèi)型。通常為0表示沒(méi)有錯(cuò)誤。各種錯(cuò)誤對(duì)應(yīng)的數(shù)值見(jiàn)下:1.2.5flags域長(zhǎng)度為1字節(jié),此域包含了8個(gè)獨(dú)立的標(biāo)志。沒(méi)有設(shè)置的標(biāo)志客戶端必須設(shè)定為0,服務(wù)器需要忽略該標(biāo)志。編號(hào)從最低位到最高位其定義如下:0:為過(guò)時(shí)的請(qǐng)求保留位(LOCK_AND_READ,LOCK_AND_CLOSE);1:保留位。(必須為0);2:保留位。(必須為0);3:設(shè)置為1時(shí),路徑名無(wú)視大小寫(xiě),設(shè)置為0時(shí),路徑名是區(qū)分大小寫(xiě)的。4:保留位。(客戶端必須設(shè)置為0,服務(wù)器端忽略該位);5:為過(guò)時(shí)的請(qǐng)求保留位(SMB_COM_OPEN,SMB_COM_CREATE,SMB_COM_CREATE_NEW);6:為過(guò)時(shí)的請(qǐng)求保留位(SMB_COM_OPEN,SMB_COM_CREATE,SMB_COM_CREATE_NEW);7:設(shè)置為1時(shí),表示是服務(wù)器對(duì)客戶端請(qǐng)求的應(yīng)答,其命令域常與客戶端請(qǐng)求的命令域相同。該域可以通過(guò)設(shè)置為0和1明確區(qū)分是請(qǐng)求還是應(yīng)答。1.2.6flags2域2字節(jié),定義了更多的標(biāo)志位。0:設(shè)置為1,表示服務(wù)器可能在響應(yīng)中返回長(zhǎng)文件名。(KNOWS_LONG_NAMES)1:設(shè)置為1,表示客戶端知道擴(kuò)展屬性。(KNOWS_EAS)2:設(shè)置為1,表示SMB需要驗(yàn)證。(誠(chéng)信檢查?)(SECURITY_SIGNATURE)3:保留位。6:設(shè)置為1,任何請(qǐng)求的路徑名為長(zhǎng)路徑名。(IS_LONG_NAME)11:設(shè)置為1,客戶端知道擴(kuò)展安全協(xié)商。(EXT_SEC)12:設(shè)置為1,SMB中的任何請(qǐng)求的路徑名需在分布式文件系統(tǒng)中解決。(DFS)13:設(shè)置為1,表明如果客戶端沒(méi)有讀權(quán)限但有執(zhí)行權(quán)限,讀命令被允許。這個(gè)標(biāo)志只對(duì)讀請(qǐng)求有效。14:設(shè)置為1,返回的錯(cuò)誤代碼為32位。否則錯(cuò)誤類(lèi)和錯(cuò)誤域包含DOS-style錯(cuò)誤信息。當(dāng)傳輸協(xié)商的NT狀態(tài)代碼時(shí),該域在每個(gè)SMB中都必須為1。16:設(shè)置為1,表示數(shù)據(jù)包中的字符編碼為UNICODE,設(shè)置為0,表示數(shù)據(jù)包中的字符編碼為ASCII。1.2.7填充或安全簽名域通常標(biāo)準(zhǔn)的填充是0,此欄通常設(shè)置為0。1.2.8TID域TID是一個(gè)16位的數(shù)字,用來(lái)標(biāo)識(shí)這個(gè)CIFS數(shù)據(jù)包指的是什么資源(通常為磁盤(pán)共享或者打印機(jī))。當(dāng)數(shù)據(jù)包交換沒(méi)有牽涉到某個(gè)資源時(shí),這個(gè)域是無(wú)意義的,可以忽略的。如果某客戶端希望對(duì)某資源進(jìn)行訪問(wèn),則該客戶端發(fā)送的CIFS數(shù)據(jù)包中的命令域設(shè)置為SMB_COM_TREE_CONNECT_ANDX。在這個(gè)包中就指定共享或者打印機(jī)的名稱(chēng)。然后服務(wù)器將對(duì)該資源和客戶端進(jìn)行驗(yàn)證,然后發(fā)送應(yīng)答表示成功。在這個(gè)應(yīng)答數(shù)據(jù)包中,服務(wù)器可以將TID域設(shè)置為任何數(shù)字。而從那時(shí)起,如果客戶端希望對(duì)該資源提出請(qǐng)求,TID就會(huì)被設(shè)置為上次客戶端給定的TID數(shù)字。1.2.9PID域PID是一個(gè)16位的數(shù)字,用來(lái)標(biāo)識(shí)客戶端上的哪個(gè)進(jìn)程發(fā)出的CIFS請(qǐng)求。服務(wù)器使用這個(gè)數(shù)字來(lái)檢查并發(fā)問(wèn)題(通常是為了保證文件不會(huì)被競(jìng)爭(zhēng)中的客戶端進(jìn)程所損壞)。1.2.10UID域UID是一個(gè)16位的數(shù)字,迎來(lái)標(biāo)識(shí)在客戶端發(fā)出CIFS請(qǐng)求的用戶??蛻舳吮仨毎l(fā)送一個(gè)包含用戶名和密碼的CIFS數(shù)據(jù)包請(qǐng)求來(lái)獲得服務(wù)器給定的UID。服務(wù)器在驗(yàn)證了用戶名和密碼之后會(huì)應(yīng)答該請(qǐng)求,該應(yīng)答中包含一個(gè)服務(wù)器生成的UID。之后該客戶端在未來(lái)的CIFS請(qǐng)求中均使用該UID。如果客戶端的請(qǐng)求需要檢查權(quán)限,服務(wù)器將驗(yàn)證請(qǐng)求的UID有沒(méi)有必須的權(quán)限。一個(gè)UID只為已形成的NetBIOS會(huì)話有效。服務(wù)器和不同的用戶的其他會(huì)話可能使用相同的UID。注意:如果服務(wù)器是在共享級(jí)的安全模式下,UID是無(wú)意義的,可以忽略。1.2.11MID域MID是一個(gè)16位數(shù)字,用來(lái)標(biāo)識(shí)多個(gè)客戶端的要求。每當(dāng)客戶端發(fā)送一個(gè)CIFS數(shù)據(jù)包,服務(wù)器就檢查MID來(lái)看它是否還有沒(méi)有應(yīng)答的請(qǐng)求。如果有,它保證了新要求會(huì)被被賦予一個(gè)新的MID以區(qū)別以前的請(qǐng)求。每當(dāng)服務(wù)器應(yīng)答一個(gè)CIFS請(qǐng)求時(shí),發(fā)送的應(yīng)答包中確保和相應(yīng)地請(qǐng)求中的MID相同。這樣,用戶就知道哪些未完成的請(qǐng)求與收到的應(yīng)答是對(duì)應(yīng)的。1.2.12 Wordcount和Parameterwords(參數(shù)域)CIFS數(shù)據(jù)包使用這兩個(gè)域來(lái)表示命令的具體參數(shù)數(shù)據(jù)。Parameterwords域是一個(gè)可變長(zhǎng)(需是16位的整數(shù)倍)。Wordcount域?qū)嶋H表明parameterwords域的長(zhǎng)度(以2字節(jié)為單位)。每種數(shù)據(jù)包類(lèi)型的wordcount域在CIFS1.0草案中有定義。每個(gè)單獨(dú)的命令都有2個(gè)wordcount定義,一個(gè)是給客戶端定義的,一個(gè)是給服務(wù)器端定義的。這是必要的,因?yàn)檎?qǐng)求和應(yīng)答不一定需要相同的wordcount。1.2.13 Bytecount和buffer(緩沖區(qū))和wordcount、parameterwords的定義非常相似。Buffer域的長(zhǎng)度是可變的。Bytecount表示buffer域有多少字節(jié)。參數(shù)域和緩沖區(qū)的主要區(qū)別是存儲(chǔ)什么類(lèi)型的數(shù)據(jù)。參數(shù)域通常包含少量的數(shù)據(jù)包命令參數(shù)選項(xiàng),而緩沖區(qū)包含大量的原始數(shù)據(jù)(如共享文件中的數(shù)據(jù))。1.3CIFS協(xié)議的安全機(jī)制CIFS提供認(rèn)證和授權(quán)這2種安全機(jī)制,其中認(rèn)證又包括共享級(jí)認(rèn)證和用戶級(jí)認(rèn)證。A是一個(gè)對(duì)CIFS客戶端標(biāo)記為網(wǎng)絡(luò)共享可用的共享服務(wù)器(通常是一個(gè)文件夾或者打印機(jī))。限制訪問(wèn)共享文件有兩種辦法:1.3.1用戶級(jí)安全希望訪問(wèn)該共享的客戶端必須提供用戶名和密碼。(windows NT 和windows 2000)用戶級(jí)認(rèn)證方式為不同用戶提供不同的用戶名,因此能提供高于共享級(jí)認(rèn)證的安全性,但用戶名和口令是以明文方式傳送或者雖然加密也容易受到字典攻擊,因此也存在被監(jiān)聽(tīng)和破解的威脅。進(jìn)一步的改進(jìn)方法可以加密用戶名和口令,還可以利用服務(wù)器消息塊SMB(Server Message Block)的簽名機(jī)制實(shí)現(xiàn)客戶機(jī)和服務(wù)器之間的雙向認(rèn)證。1.3.2共享級(jí)安全被共享的文件本身需要一個(gè)密碼來(lái)訪問(wèn),客戶端訪問(wèn)不需要用戶名,用戶的身份不需要確認(rèn)。(windows 95和windows98)在共享級(jí)認(rèn)證方式下,整個(gè)共享點(diǎn)只有一個(gè)單一的口令用于共享訪問(wèn),提供的安全保障有限,只能用于對(duì)安全性要求不高的公共資源共享或臨時(shí)資源共享等場(chǎng)合。1.3.3加密用戶和共享級(jí)安全性中,實(shí)際的密碼是以加密格式發(fā)送到服務(wù)器的。常用兩種加密方法較新的NT style和老的LAN manage style,但兩種加密方法均采用挑戰(zhàn)-應(yīng)答認(rèn)證,服務(wù)器向客戶端發(fā)送一個(gè)隨機(jī)字符串并期望得到響應(yīng),客戶端將用戶名和隨機(jī)數(shù)合并后用HASH函數(shù)生成一個(gè)字節(jié)串發(fā)送給服務(wù)器(其在HASH函數(shù)中使用的密鑰就是由口令生成的?)就是這個(gè)地方不是很明白,在HASH中,這個(gè)隨機(jī)串扮演什么角色。我理解的是:當(dāng)時(shí)用戶注冊(cè)時(shí)就將用戶名明文存儲(chǔ)在服務(wù)器中,而密碼是經(jīng)過(guò)HASH(或者其他處理)得到的長(zhǎng)度確定的字符串存放于服務(wù)器中,這樣突破服務(wù)器只知道用戶名,不知道密碼。但是這個(gè)密碼形成的字符串(設(shè)為m)卻可以用來(lái)驗(yàn)證??蛻舳藢⒆约旱挠脩裘碗S機(jī)串合并成一個(gè)長(zhǎng)串,密碼再次經(jīng)過(guò)相同的步驟形成定長(zhǎng)字符串作為HASH的密碼使用。即如下式:username(用戶名)key(密碼)string(隨機(jī)字符串)m是處理過(guò)的key,由key可以很容易得到m,由m得到key很難客戶端發(fā)送=HASHm(username|string)服務(wù)器將該字節(jié)串和自己的計(jì)算結(jié)果比較,若二者相同則通過(guò)認(rèn)證,否則認(rèn)證失敗。1.4CIFS協(xié)議的完整性1.4.1機(jī)會(huì)鎖機(jī)會(huì)鎖(數(shù)據(jù)完整性,感覺(jué)和數(shù)據(jù)庫(kù)中的鎖異曲同工),當(dāng)CIFS數(shù)據(jù)包指定打開(kāi)一個(gè)文件,就需要對(duì)該文件加一個(gè)機(jī)會(huì)鎖,如果服務(wù)器將這個(gè)文件加鎖后,其他客戶端實(shí)體就不能再訪問(wèn)這個(gè)文件。這允許客戶端對(duì)這個(gè)文件進(jìn)行任何它想要的修改二不需要將其立即寫(xiě)入服務(wù)器。1. level II oplock 2. Exclusive oplock3. Batch oplock1.5CIFS協(xié)議包交換流程CIFS數(shù)據(jù)包交換流程一共分為兩個(gè)部分:1. 第一部分(當(dāng)客戶端啟動(dòng)與服務(wù)器建立連接時(shí)):一個(gè)NetBIOS會(huì)話建立、CIFS版本協(xié)商、發(fā)送用戶名和密碼,這樣,服務(wù)器端的一個(gè)資源被連接。2. 第二部分:訪問(wèn)一個(gè)共享文件從中讀取需要的數(shù)據(jù)。注意:客戶端總是發(fā)送到服務(wù)器的TCP的139端口,而服務(wù)器應(yīng)答給客戶端自己選擇的臨時(shí)端口。此外,以下CIFS域可設(shè)為下面的默認(rèn)值,當(dāng)然也可以根據(jù)自己的具體情況進(jìn)行設(shè)定:1. error class/error codes :客戶端發(fā)送時(shí)總為0,服務(wù)器端應(yīng)答時(shí)也為0。2. Flags:所有數(shù)據(jù)包均設(shè)置成0x00。(區(qū)分大小寫(xiě)路徑)3. Flags2:所有數(shù)據(jù)包均設(shè)置成0x0001。(支持長(zhǎng)文件名)4. 填充和安全簽名:所有數(shù)據(jù)包均設(shè)為包交換的第一部分協(xié)商和參數(shù)傳遞當(dāng)CIFS客戶端確定希望訪問(wèn)CIFS服務(wù)器上的資源,交換下面的數(shù)據(jù)包。首先,NetBIOS會(huì)話建立,提供可靠的傳輸服務(wù)。然后,客戶端和服務(wù)器端協(xié)商CIFS版本。然后客戶端登錄到服務(wù)器,發(fā)送用戶名和密碼,服務(wù)器驗(yàn)證成功后客戶端連接到所需的資源。建立NetBIOS會(huì)話包1C-S請(qǐng)求:目的:建立NetBIOS會(huì)話(listen 和 call)首先客戶端在139端口建立一個(gè)與服務(wù)器之間的全雙工TCP連接。完成之后,客戶端通過(guò)建立TCP連接和發(fā)送NetBIOS會(huì)話請(qǐng)求數(shù)據(jù)包。會(huì)話的請(qǐng)求報(bào)文中包含客戶端的NetBIOS名稱(chēng),服務(wù)器的NetBIOS名稱(chēng)和一個(gè)整數(shù)常量表示數(shù)據(jù)包的目的是建立一個(gè)NetBIOS會(huì)話。包2S-C應(yīng)答:目的:NetBIOS會(huì)話確認(rèn)如果上述會(huì)話請(qǐng)求數(shù)據(jù)包中包含服務(wù)器的NetBIOS名稱(chēng),而且數(shù)據(jù)包是正確的格式,服務(wù)器會(huì)發(fā)送一個(gè)簡(jiǎn)單的會(huì)話確認(rèn)數(shù)據(jù)包(4字節(jié))來(lái)表明會(huì)話建立成功或者失敗。CIFS協(xié)議版本協(xié)商包3C-S請(qǐng)求:目的:CIFS協(xié)議版本協(xié)商客戶端發(fā)送一個(gè)CIFS請(qǐng)求數(shù)據(jù)包包含SMB_COM_NEGOTIATE命令,緩沖區(qū)中包含客戶端可以解析的CIFS協(xié)議版本。具體各個(gè)域的值為:Command:SMB_COM_NEGOTIATE(0x72)TID:在這個(gè)包中被忽略PID:設(shè)置為客戶端處理進(jìn)程的IDUID:在這個(gè)包中被忽略MID:任何唯一的編號(hào)Wordcount:0Parameterwords:無(wú)Butecount:設(shè)置為119(可根據(jù)客戶端可以解析的版本數(shù)變化)Buffer:包含119字節(jié)的版本描述包4S-C應(yīng)答:目的:CIFS協(xié)議版本協(xié)商服務(wù)器響應(yīng)客戶端的協(xié)商請(qǐng)求,從客戶端給定的版本中選擇一個(gè)。應(yīng)答數(shù)據(jù)包中各個(gè)域的值為:Command:SMB_COM_NEGOTIATE(0x72)TID:在這個(gè)包中被忽略PID:因?yàn)槭菑姆?wù)器發(fā)送,被忽略UID:在這個(gè)包中被忽略MID:匹配客戶端發(fā)送的唯一的編號(hào)Wordcount:取決于選擇的版本。Parameterwords:包含選定的版本和許多服務(wù)器屬性。比較重要的是MAXMPXCOUNT(客戶端可以發(fā)起的請(qǐng)求最大數(shù))和32位能力標(biāo)志。Bytecount:可變,通常大于8Buffer:通常包含一個(gè)8字節(jié)的隨機(jī)字符串,在以后的數(shù)據(jù)包中,客戶端用來(lái)加密。用戶登錄包5C-S請(qǐng)求:目的:用戶登錄客戶端發(fā)送CIFS數(shù)據(jù)包,包含用戶名和密碼,以獲得一個(gè)UID。這個(gè)數(shù)據(jù)包也要轉(zhuǎn)發(fā)客戶端功能給服務(wù)器,所以即使使用共享級(jí)安全也必須發(fā)送這個(gè)數(shù)據(jù)包。數(shù)據(jù)包各個(gè)域的值如下:Command:SMB_SESSION_SETUP_ANDX(0x73)TID:在這個(gè)包中北忽略PID:設(shè)置為客戶端處理進(jìn)程的IDUID:在這個(gè)包中被忽略MID:任何唯一的編號(hào)Wordcount:12Parameterwords:列出了客戶端的功能。也包含了要在下面緩沖區(qū)中提供的密碼的大小。Bytecount:可變值,下面的緩沖區(qū)包含加密的用戶名、密碼、操作系統(tǒng)的名稱(chēng)和LAN Manager。Bytecount的值取決于這些尸體的字符串的大小Buffer:包含用戶名、密碼、操作系統(tǒng)的名稱(chēng)等。包6S-C應(yīng)答:目的:返回給客戶端UID或者返回錯(cuò)誤,如果驗(yàn)證不成功的話。一旦服務(wù)器受到加密的用戶名和密碼,檢查后如果是正確的,發(fā)送應(yīng)答數(shù)據(jù)包,包中包含UID。如果結(jié)果是錯(cuò)誤的,這個(gè)響應(yīng)將返回錯(cuò)誤類(lèi),并設(shè)置響應(yīng)的錯(cuò)誤代碼。數(shù)據(jù)包的各個(gè)域的值如下:Command:SMB_COM_SESSION_SETUP_ANDX(0x73)TID:在這個(gè)包中被忽略PID:因?yàn)槭菑姆?wù)器發(fā)送,被忽略UID:16位數(shù)字,是該服務(wù)器分配給客戶端的用戶身份IDMID:匹配客戶端發(fā)送的唯一的編號(hào)Wordcount:3Parameterwords:沒(méi)有和正常操作有關(guān)的內(nèi)容Bytecount:可變值,下面的緩沖區(qū)包含說(shuō)明服務(wù)器操作系統(tǒng)和LAN Manager類(lèi)型的字符串Buffer:包含表示服務(wù)器操作系統(tǒng)和LAN Manager類(lèi)型連接特定資源包7C-S請(qǐng)求:目的:連接到特定資源客戶端已被認(rèn)證,可以連接到世界的共享文件。在這個(gè)數(shù)據(jù)包中,客戶端指定它希望訪問(wèn)的共享文件。共享名為UNC格式。數(shù)據(jù)包中各個(gè)域的值如下:Command:SMB_COM_TREE_CONNECT_ANDX(0x75)TID:在這個(gè)包中被忽略PID:設(shè)置為客戶端處理進(jìn)程的IDUID:為包6中服務(wù)器發(fā)送的UIDMID:任何唯一的編號(hào)Wordcount:4Parameterwords:沒(méi)有與正常操作有關(guān)的內(nèi)容Bytecount:可變值,取決于一下要求的UNC字符串的大小Buffer:包含客戶端希望訪問(wèn)的共享的名稱(chēng)包8S-C應(yīng)答:目的:返回TID或者錯(cuò)誤,如果共享名稱(chēng)不存在如果共享名稱(chēng)存在,也擁有訪問(wèn)權(quán)限,則服務(wù)器返回一個(gè)成功的響應(yīng)和TID。如果共享不存在或者用戶不具有訪問(wèn)權(quán)限,服務(wù)器返回相應(yīng)地錯(cuò)誤類(lèi)和錯(cuò)誤代碼。如果這個(gè)數(shù)據(jù)包是一個(gè)表示成功的響應(yīng),則客戶端可以訪問(wèn)既定的共享文件了。這是客戶端和服務(wù)器交換的最后的數(shù)據(jù)包。數(shù)據(jù)包中各個(gè)域的值如下:Command:SMB_COM_SESSION_SETUP_ANDX(0x73)TID:16位數(shù)字代表服務(wù)器分配給指定共享資源的TIDPID:因?yàn)槭菑姆?wù)器發(fā)送,被忽略UID:16位數(shù)字,是該服務(wù)器分配給客戶端的用戶身份IDMID:匹配客戶端發(fā)送的唯一的編號(hào)Wordcount:3Parameterwords:沒(méi)有與正常操作有關(guān)的內(nèi)容Bytecount:可變值,取決于下面的緩沖區(qū)Buffer:包含本地文件系統(tǒng)和設(shè)備類(lèi)型的字符串1.5.2包交換的第二部分?jǐn)?shù)據(jù)交換以打開(kāi)和讀取文件數(shù)據(jù)為例。屬性、操作等參數(shù)傳遞包1C-S請(qǐng)求:目的:打開(kāi)一個(gè)文件數(shù)據(jù)包中各個(gè)域的值如下:Command:SMB_COM_OPEN_ANDX(0x2D)TID:上面服務(wù)器應(yīng)答給定的TIDPID:設(shè)置為處理客戶端處理進(jìn)程的IDUID:設(shè)置為服務(wù)器返回的表示客戶端的UIDMID:任何唯一的編號(hào)Wordcount:15Parameterwords:指定模式(讀、寫(xiě)或者讀寫(xiě))和共享模式(無(wú)、讀、寫(xiě))等許多開(kāi)放的選擇Bytecount:可變值,依賴(lài)于文件名的字符串Buffer:包含要打開(kāi)的文件的名稱(chēng)包2S-C應(yīng)答:目的:顯示文件的ID,或者如果有問(wèn)題則返回錯(cuò)誤代碼服務(wù)器檢查,如果請(qǐng)求的文件名存在,且UID指定的用戶有權(quán)訪問(wèn)該文件,則發(fā)送一個(gè)響應(yīng)包,其中包含F(xiàn)ID以便以后對(duì)該文件的訪問(wèn)。如果條件不滿足,服務(wù)器返回相應(yīng)地錯(cuò)誤類(lèi)和錯(cuò)誤代碼。數(shù)據(jù)包中各個(gè)域的值如下:Command:SMB_COM_OPEN_ANDX(0x2D)TID:16位數(shù)字代表服務(wù)器分配給指定共享資源的TIDPID:因?yàn)槭菑姆?wù)器發(fā)送,被忽略UID:16位數(shù)字,是該服務(wù)器分配給客戶端的用戶身份IDMID:匹配客戶端發(fā)送的唯一的編號(hào)Wordcount:15Parameterwords:表明要發(fā)生動(dòng)作的類(lèi)型的許多標(biāo)志和非常重要的16位FIDBytecount:0Buffer:沒(méi)有數(shù)據(jù)數(shù)據(jù)交換包3C-S請(qǐng)求:目的:從文件中讀取數(shù)據(jù)包中各個(gè)域的值如下:Command:SMB_COM_READ_ANDX(0x2E)TID:16位數(shù)字代表服務(wù)器分配給指定共享資源的TIDPID:設(shè)置為客戶端處理進(jìn)程的IDUID:16位數(shù)字,是該服務(wù)器分配給客戶端的用戶身份IDMID:任何唯一的編號(hào)Wordcount:10Parameterwords:包含F(xiàn)ID使得服務(wù)器端知道客戶端要打開(kāi)那一個(gè)文件。還包含一個(gè)32位文件編譯和16位計(jì)數(shù)值,用來(lái)決定有多少文件數(shù)據(jù)返回Bytecount:0Buffer:沒(méi)有數(shù)據(jù)包4S-C應(yīng)答:目的:返回文件中的數(shù)據(jù)數(shù)據(jù)包中各個(gè)域的值如下:Command:SMB_COM_READ_ANDX(0x2E)TID:16位數(shù)字代表服務(wù)器分配給指定共享資源的TIDPID:因?yàn)槭菑姆?wù)器發(fā)送,被忽略UID:16位數(shù)字,是該服務(wù)器分配給客戶端的用戶身份IDMID:匹配客戶端發(fā)送的唯一的編號(hào)Wordcount:12Parameterwords:表明實(shí)際讀的數(shù)據(jù)的長(zhǎng)度(?)Bytecount:可變值Buffer:客戶端所要求的文件數(shù)據(jù)2、NetBIOS協(xié)議2.1NetBIOS協(xié)議概述NetBIOS協(xié)議是由IBM公司開(kāi)發(fā),主要用于數(shù)十臺(tái)計(jì)算機(jī)的小型局域網(wǎng)。NetBIOS協(xié)議是一種在局域網(wǎng)上的程序可以使用的應(yīng)用程序編程接口(API),為程序提供了請(qǐng)求低級(jí)服務(wù)的統(tǒng)一的命令集,作用是為了給局域網(wǎng)提供網(wǎng)絡(luò)以及其他特殊功能,幾乎所有的局域網(wǎng)都是在NetBIOS協(xié)議的基礎(chǔ)上工作的。2.2 NetBIOS名稱(chēng)服務(wù)2.2.1NetBIOS名稱(chēng):NetBIOS具備獨(dú)立的名稱(chēng)解析概念和能力,其使用的名稱(chēng)解析方式和TCP/IP標(biāo)準(zhǔn)解析方式不同。如果經(jīng)過(guò)NetBIOS名稱(chēng)解析并獲得相應(yīng)地IP地址后,NetBIOS會(huì)話就可以建立普通的TCP連接了。NetBIOS的名字解析是動(dòng)態(tài)的。計(jì)算機(jī)必須先注冊(cè)自己的名稱(chēng)然后才能解析該名稱(chēng)。雖然動(dòng)態(tài)解析很方便,但由于其復(fù)雜性和低效性,使得NetBIOS只能使用于小范圍的局域網(wǎng)。2.2.2NetBIOS 名稱(chēng)屬性與格式:1.已注冊(cè)的NetBIOS名稱(chēng)唯一指代一臺(tái)工作站或者組名;2.和IP地址類(lèi)比,NetBIOS名稱(chēng)沒(méi)有分層格式,即沒(méi)有“點(diǎn)”(“.”字符);3.NetBIOS名稱(chēng)必須包含A-Z、a-z、0-9范圍之內(nèi)的字符,或者$( ) - . 字符之一;4.NetBIOS命名允許16個(gè)字母用在NetBIOS名稱(chēng)中。而微軟只允許15個(gè)字母用在NetBIOS名稱(chēng)中,第十六個(gè)為NetBIOS后綴。NetBIOS后綴用在Microsoft
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年國(guó)際化教育中跨文化交流能力培養(yǎng)的跨文化教育政策創(chuàng)新研究報(bào)告
- 城市生活垃圾分類(lèi)公眾參與機(jī)制優(yōu)化與長(zhǎng)效管理效果評(píng)估分析研究報(bào)告
- 2025年醫(yī)院電子病歷系統(tǒng)在醫(yī)院信息化建設(shè)中的知識(shí)圖譜構(gòu)建應(yīng)用報(bào)告
- 2025年互聯(lián)網(wǎng)醫(yī)療平臺(tái)在線問(wèn)診服務(wù)與患者疾病管理報(bào)告
- 海洋生態(tài)保護(hù)與修復(fù)2025:政策法規(guī)與海洋生態(tài)修復(fù)技術(shù)標(biāo)準(zhǔn)應(yīng)用分析報(bào)告
- 咨詢(xún)工程師付子健課件
- 2025年海上風(fēng)能資源評(píng)估與深遠(yuǎn)海風(fēng)電場(chǎng)技術(shù)交流與合作平臺(tái)報(bào)告
- 2025年福建省廈門(mén)市雙十中學(xué)英語(yǔ)八年級(jí)第二學(xué)期期末檢測(cè)試題含答案
- 數(shù)字文化產(chǎn)業(yè)發(fā)展報(bào)告:2025年商業(yè)模式創(chuàng)新與文化產(chǎn)業(yè)發(fā)展與文化產(chǎn)業(yè)創(chuàng)新
- 2025年教育信息化基礎(chǔ)設(shè)施建設(shè)與教育信息化產(chǎn)業(yè)創(chuàng)新趨勢(shì)研究報(bào)告
- 垃圾焚燒發(fā)電行業(yè)潤(rùn)滑
- 鋁合金門(mén)窗安裝施工方案
- 采血后預(yù)防淤青的按壓方式
- 胃癌化療患者的護(hù)理查房
- 香菇種植可行性分析報(bào)告
- 2025年會(huì)考地理考試試題及答案
- 2025-2030全球智慧康養(yǎng)平臺(tái)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 安全生產(chǎn)網(wǎng)格員培訓(xùn)
- 醫(yī)院預(yù)防職務(wù)犯罪講座
- 食品安全主題墻框架
- 吸脂術(shù)護(hù)理查房
評(píng)論
0/150
提交評(píng)論