Scénář výměny paketů protokolu MICROSOFT SMB
Toto téma obsahuje příklad výměny paketů protokolu SMB microsoftu mezi klientem a serverem. Následující kroky jsou přehledem tohoto procesu:
- Klient a server navazují relaci rozhraní NetBIOS.
- Klient a server vyjednávají dialekt protokolu SMB společnosti Microsoft.
- Klient se přihlásí k serveru.
- Klient se připojí ke sdílené složce na serveru.
- Klient otevře soubor ve sdílené složce.
- Klient čte ze souboru.
Nejprve je klientem se serverem navázáno plně duplexní připojení TCP. Potom klient sestaví a odešle paket požadavku na relaci NetBIOS přes připojení TCP. Pokud byl paket správně naformátován, server pak vrátí paket, který obsahuje zprávu s potvrzením, že relace byla vytvořena. Potom klient odešle na server první pakety protokolu MICROSOFT SMB.
paket 1: SMB_COM_NEGOTIATE směr : Klient na server Popis: klient požaduje, aby server vyjednal dialekt protokolu MICROSOFT SMB. Seznam řetězců identifikující dialekty, se kterými může klient pracovat, je součástí paketu. |
paket 2: SMB_COM_NEGOTIATE směr : Server do klienta Popis: Server odpoví na požadavek klienta, aby identifikoval dialekt protokolu MICROSOFT SMB, který se bude v relaci používat. Vrácený paket obsahuje také 8bajtů náhodný řetězec, který se použije v dalším kroku k ověření klienta během procesu přihlášení. |
paket 3: SMB_COM_SESSION_SETUP_ANDX směr : Klient na server Popis: Tento paket obsahuje informace o možnostech klienta, takže tento paket musí být odeslán i v případě, že server implementoval pouze zabezpečení na úrovni sdílené složky. paket 3: SMB_COM_SESSION_SETUP_ANDX směr : Server do klienta Popis: Pokud server přijme výzvu nebo odpověď, zahrne se do paketu vráceného klientovi platné UID. Pokud není akceptovaná, server vrátí kód chyby v tomto paketu a odepře přístup. |
paket 4: SMB_COM_TREE_CONNECT_ANDX směr : Klient na server Popis: Klient požádá o přístup ke sdílené složce. Paket obsahuje plně zadanou cestu sdílené složky ve formátu UNC. |
paket 5: SMB_COM_TREE_CONNECT_ANDX směr : Server do klienta Popis: Pokud je udělen přístup ke sdílené složce, vrátí server 16bitové ID stromu (TID), které odpovídá sdílené složce v tomto paketu. Pokud sdílená složka neexistuje nebo uživatel nemá dostatek přihlašovacích údajů pro přístup ke sdílené složce, server vrátí kód chyby v tomto paketu a odepře přístup ke sdílené složce. |
paket 6: SMB_COM_OPEN_ANDX směr : Klient na server Popis: klient požaduje, aby server otevřel soubor v přístupové sdílené složce jménem klienta. Tento paket obsahuje název souboru, který se má otevřít. |
paket 7: SMB_COM_OPEN_ANDX směr : Server do klienta Popis: Pokud je udělen přístup k souboru, server vrátí ID souboru požadovaného souboru. Pokud soubor neexistuje nebo uživatel nemá dostatek přihlašovacích údajů pro přístup k souboru, server vrátí kód chyby v tomto paketu a odepře přístup k souboru. |
paket 8: SMB_COM_READ_ANDX směr : Klient na server Popis: Klient požádá server o načtení dat z otevřeného souboru jménem klienta a vrácení těchto dat klientovi. ID souboru získaného klientem při otevření souboru je součástí tohoto paketu, aby bylo možné určit, ze kterého otevřeného souboru by měl server číst data. |
paket 9: SMB_COM_READ_ANDX směr : Server do klienta Popis: Server vrátí požadovaná data souboru v tomto paketu. Tady je nepravděpodobné, že byl udělen přístup k serveru, sdílené složce a souboru. Může k tomu dojít v některých situacích: například pokud se přístup ke sdílené složce změní mezi časem otevření souboru a časem čtení ze souboru. |
Poznámka
Pokud implementujete CIFS, která nepodporuje oznámení o změnách, systém Windows nemůže zachovat nevyrovnaný popisovač systému souborů a připojení SMB může bez předchozího upozornění odejít.