Microsoft Networks. SMB File Sharing Protocol Extensions. Document Version 3.4



Similar documents
Microsoft Networks/OpenNET FILE SHARING PROTOCOL. INTEL Part Number Document Version 2.0. November 7, 1988

Note that if at any time during the setup process you are asked to login, click either Cancel or Work Offline depending upon the prompt.

Installation Guide for Microsoft SQL Server 2008 R2 Express. October 2011 (GUIDE 1)

Parallels Plesk Panel

WatchGuard Mobile User VPN Guide

Default configuration for the Workstation service and the Server service

Larger, active workgroups (or workgroups with large databases) must use one of the full editions of SQL Server.

Protocols for Dummies

Microsoft SQL Server Staging

by New Media Solutions 37 Walnut Street Wellesley, MA p f Avitage IT Infrastructure Security Document

Getting Started With Delegated Administration

NETWRIX IDENTITY MANAGEMENT SUITE

V Series Rapid Deployment Version 7.5

Creating a User Profile for Outlook 2013

How To Set Up A Macintosh With A Cds And Cds On A Pc Or Macbook With A Domain Name On A Macbook (For A Pc) For A Domain Account (For An Ipad) For Free

Using. Microsoft Virtual PC. Page 1

Using the ECM VPN with OSX devices

Microsoft SMB Running Over RDMA in Windows Server 8

Windows passwords security

1 Outlook 2010 (Windows OS) and MAPI Configuration

INFUSION BUSINESS SOFTWARE Installation and Upgrade Guide

CIFS Explained Copyright 2001, CodeFX

How To Use 1Bay 1Bay From Awn.Net On A Pc Or Mac Or Ipad (For Pc Or Ipa) With A Network Box (For Mac) With An Ipad Or Ipod (For Ipad) With The

Understanding the Windows SMB NTLM Authentication Weak Nonce Vulnerability

FTP Client Engine Library for Visual dbase. Programmer's Manual

Installation of MicroSoft Active Directory

Integration with Active Directory

Copyright

SELF SERVICE RESET PASSWORD MANAGEMENT DATABASE REPLICATION GUIDE

CRYPTOLogon Agent. for Windows Domain Logon Authentication. Deployment Guide. Copyright , CRYPTOCard Corporation, All Rights Reserved.

Active Directory Integration with Blue Coat

Operating Instructions (For User Authentication)

User s Guide. Security Operations Ver. 1.02

The Win32 Network Management APIs

TECHNICAL TRACKSNETWORKING ESSENTIALS OPPORTUNISTIC LOCKING

Jet Data Manager 2012 User Guide

Implementing Microsoft SQL Server 2008 Exercise Guide. Database by Design

Instructions: Configuring Outlook 2003 with Exchange 2010 on the FIUMail

PayPal PRO Sandbox Testing

CA ARCserve and CA XOsoft r12.5 Best Practices for protecting Microsoft SQL Server

Microsoft Exchange Mailbox Software Setup Guide

MAPI Connector Overview

File Transfer Protocol (FTP) Chuan-Ming Liu Computer Science and Information Engineering National Taipei University of Technology Fall 2007, TAIWAN

Five Steps to Improve Internal Network Security. Chattanooga ISSA

Install MS SQL Server 2012 Express Edition

Using the ECM VPN with Windows 7

Professional Mailbox Software Setup Guide

Windows Server 2008/2012 Server Hardening

User s Guide [Security Operations]

CIDR Range Subnet Mask /

E-Commerce for IT Advanced. Louis Aguila & Matt Burt

How To Set Up An Outlook Mailbox On A Windows 2007 (For Free) With A Free Account On A Blackberry Or Ipad (For A Free) Or Ipa (For An Ipa) With An Outlook 2007 (Free) Or

INTRODUCTION: SQL SERVER ACCESS / LOGIN ACCOUNT INFO:

Moving/Restoring the StarShip SQL database

TOE2-IP FTP Server Demo Reference Design Manual Rev1.0 9-Jan-15

SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2

HGC SUPERHUB HOSTED EXCHANGE

How to Use the Yellow Machine Appliance in a Windows 2000/2003 Server Environment

Creating Home Directories for Windows and Macintosh Computers

Appendix. Web Command Error Codes. Web Command Error Codes

NETWRIX EVENT LOG MANAGER

Contents. Before You Install Server Installation Configuring Print Audit Secure... 10

1. Technical requirements 2. Installing Microsoft SQL Server Configuring the server settings

OCS Training Workshop LAB14. Setup

Virto Password Reset Web Part for SharePoint. Release Installation and User Guide

Yubico YubiHSM Monitor

SELF SERVICE RESET PASSWORD MANAGEMENT IMPLEMENTATION GUIDE

QUANTIFY INSTALLATION GUIDE

How to Configure Outlook Client for Exchange

Installing LearningBay Enterprise Part 2

Chapter 17. Transport-Level Security

Iridium Extreme TM Satellite Phone. Data Services Manual

HELP DOCUMENTATION SSRPM WEB INTERFACE GUIDE

Guideline for setting up a functional VPN

CA Nimsoft Monitor Snap

SWsoft, Inc. Plesk File Server. Administrator's Guide. Plesk 7.5 Reloaded

(n)code Solutions CA A DIVISION OF GUJARAT NARMADA VALLEY FERTILIZERS COMPANY LIMITED P ROCEDURE F OR D OWNLOADING

Virtual Machine Encryption Basics

Chapter 12 File Management. Roadmap

A Transend Corporation White Paper Preparing Microsoft Exchange Server for Migration

Chapter 12 File Management

A COMPARISON BETWEEN THE SAMBA3 AND LIKEWISE LWIOD FILE SERVERS

Documentum Desktop Client on Windows 2000 Terminal Services

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

SOLUTION BRIEF: SLCM R12.7 PERFORMANCE TEST RESULTS JANUARY, Load Test Results for Submit and Approval Phases of Request Life Cycle

CTERA Agent for Linux

FAQ. How does the new Big Bend Backup (powered by Keepit) work?

SQL EXPRESS INSTALLATION...

Device Installer User Guide

Core Protection for Virtual Machines 1

1 Getting Started. Before you can connect to a network

SQL Server Setup Guide for BusinessObjects Planning

Creating client-server setup with multiple clients

WS_FTP Professional 12

Carisbrooke. End User Guide

User Authentication Job Tracking Fax Transmission via RightFax Server Secure Printing Functions HDD/Memory Security Fax to Ethernet Connection

Using LDAP Authentication in a PowerCenter Domain

CHAPTER 23: USING ODBC

Exchange 2013 mailbox setup guide

Settle-to-File Credit Card Driver for 3700 POS

Transcription:

Microsoft Networks SMB File Sharing Protocol Extensions Document Version 3.4 February 7, 2010

1. Introduction...2 2. Negotiate Protocol...2 3. Session Setup and X...3 4. Tree Connect and X SMB...4 5. Locking and X SMB...5 6. Unlock SMB correction...6 7. T2FindFirst SMB...6 8. Extension for Open Modes on the OpenX and T2Open SMBs...6

1. Introduction This document is meant as amendment to the existing SMB documents and as such does not discuss the SMB protocol in general. Refer to Version 3.3 for a thorough description of the protocol. This document only discusses those changes to the protocol required for compatibility with the Lanman 2.1 protocol dialect. 2. Negotiate Protocol 2.1 NegProt Resp SMB The dialects requested for the LM2.1 protocol are "LANMAN2.1" for the OS/2 clients and "DOS LANMAN2.1" for DOS clients. When one of the above protocols is negotiated, a new response is returned to the NegProt SMB. The new response is represented by the data structure below (* indicates change from earlier protocol). byte smb_wct word smb_index word smb_secmode word smb_maxxmt word smb_maxmux word smb_maxvcs word smb_blkmode dword smb_sesskey word smb_srv_time word smb_srv_date word smb_srv_tzone * word smb_cryptkeylen * word smb_rsvd word smb_bcc byte smb_cryptkey * byte smb_domain[] In earlier versions of this protocol smb_rsvd was a dword, and the encryption key length was indicated by smb_bcc. There is a new field, smb_domain, that is a null terminated string that contains the name of the domain that this server is a member of. With the addition of this field, smb_bcc now represents the total bytes present due to both smb_cryptkey and smb_domain. To account for this smb_rsvd was split and the new field smb_cryptkeylen was created to represent the length of the smb_cryptkey field.

3. Session Setup and X 3.1 SessSetupX Request The SessSetupX request SMB for the LM2.1 protocol has an additional 3 fields. These fields are used to indicate, the name of the domain on which the client was authenticated (smb_domain), the type of operating system the client machine is using (smb_nativeos) and what kind of LAN Manager software the client is using (smb_nativelm). All theses fields are null terminated strings and their orientation in the SMB is indicated in the data structure below (* indicates new field). byte smb_wct /* value = 10 */ byte smb_reh2 /* reserved, MBZ */ word smb_off2 /* offset (from SMB header) to next cmd (@smb_wct) */ word smb_bufsize /* the consumers max buffer size */ word smb_mpxmax /* actual max multiplexed pending requests */ word smb_vc_num /* 0 = first only, non zero - additional VC number */ dword smb_sesskey /* Session key (valid only if smb_vc_num!= 0) */ word smb_apasslen /* size of account password (smb_apasswd) */ dword smb_rsvd /* reserved */ word smb_bcc /* minimum value = 0 */ byte smb_apasswrd[*] /* account password (* = smb_apasslen value) */ byte smb_aname[] /* account name string*/ * byte smb_domain[] /* name of domain that client was authenticated on */ * byte smb_nativeos[] /* native operating system of client */ * byte smb_nativelm[] /* native LAN Manager type */ Some examples of the smb_nativeos field might be, "OS/2 1.0", "OS/2 1.21", "MS-DOS 5.0", "Unix BSD 4.0",... etc. Examples of smb_nativelm field might be, "LAN Manager 2.1", "LAN Manager 2.1", "LAN Server 2.0",... etc. 3.1 SessSetupX Response The SessSetupX response SMB for the LM 2.1 protocol contains 2 additional fields. These fields are the servers corresponding smb_nativeos and smb_nativelm fields. These fields are null terminated strings. There orientation in the SMB are indicated in the data structure below (* indicates new field). byte smb_wct /* value = 3 */ byte smb_res2 /* reserved (pad to word) */ word smb_off2 /* offset (from SMB header) to next cmd (@smb_wct) */ word smb_action /* request mode: bit0 = logged on successfully - but as guest */ word smb_bcc /* min value = 0 */ * byte smb_nativeos[] /* server's native operating system */ * byte smb_nativelm[] /* server's native LM type */

4. Tree Connect and X SMB 4.1 TreeConnX Response The response to the TreeConnX SMB returns 2 new fields for the LM2.1 dialect. With the addition of some new features in various operating systems it has become necessary to differentiate which of these features can be taken advantage of by the consumers on a connection basis. The exclusive search feature of OS/2 1.3 is an example of such features. The smb_optsupp field now returned by the server can be used to determine what if any of these features are available. In addition to this field the smb_nativefs field has been added to help the consumer determine the type of file system this connection is to. The smb_optsupp field is a word of bit masks and the smb_nativefs field is a null terminated string. There orientation is the smb is indicated below (* indicates new field). byte smb_wct /* value = 3 */ byte smb_res2 /* reserved (pad to 0) */ word smb_off2 /* offset (from SMB header) to next cmd (@smb_wct) */ * word smb_optsupp /* bit mask indicating advanced OS features available */ /* bit0 = 1, exclusive search bits supported */ word smb_bcc /* minimum value = 3 */ byte smb_nativefs[] /* native file system for this connection */ Server's that can support the new search bits defined below will identify themselves by setting bit0 of smb_oppsupp to 1. Note that this allows the server to optionally support these features on a per connection basis. For servers that negotiate support of the exclusive search bits, the new search bits will be passed along in the smb_attr field of the Find, FindUnique, Search, Trans2 and FindFirst SMBs. This change will not be further documented individually later in this spec. All these SMBs will interpret the new bits of the smb_attr field as follows. New bits are 8-13. Bit Meaning 13 If set, only files marked as archive are included 12 If set, only directories are included 11 Meaningless 10 If set, only files marked as system are included 9 If set, only files marked as hidden are include 8 If set, only files marked as read only are included

5. Locking and X SMB 5.1 LockingX SMB Request The LockingX request SMB has modified the meaning of the previous smb_locktype field to take advantage of new locking features provided in various operating systems. The new LockingX request SMB is detailed below (* indicates changes from earlier protocols). byte smb_wct /* value = 8 */ byte smb_reh2 /* reserved (must be zero) */ word smb_off2 /* offset (from SMB hdr start) to next cmd (@smb_wct) */ word smb_fid /* file handle */ * word smb_lockflags /* locking mode: */ /* bit0 = 0, Lock out all access; bit0 = 1, Read ok while locked */ /* bit1 = 1, Single user total file unlock (OpLock Break) */ /* bit2 = 1, Requesting change lock type on supplied smb_lockrng[] */ /* bit3 = 1, Requesting cancel of lock specified in smb_unlkrng[] */ dword smb_timeout; /* number of milliseconds to attempt each lock */ word smb_unlocknum; /* number of unlock range structures following */ word smb_locknum; /* number of lock range structures following */ word smb_bcc; /* total bytes following */ struct smb_unlkrng[*]; /* unlock range structures (* = smb_unlocknum) */ struct smb_lockrng[*]; /* lock range structures (* = smb_locknum) */ The consumer may take advantage of the feature supplied in OS/2 2.0 of being able to convert the type of lock held on a region without first unlocking the range by using Bit2 of smb_lockflags in the following manner. The consumer should specify the new lock type by setting Bit0 appropriately for the lock range specified in the smb_lockrng field. The range specified should already be locked or the Server will return an error. As normal the consumer should expect to wait smb_timeout milliseconds in the case of a lock conflict. By using Bit3 of smb_lockflags the consumer may take advantage of the ability to cancel a lock request in OS/2 2.0. The consumer specifies the range to apply the cancel to in the smb_unlkrng field and sets Bit3 to 1.

6. Unlock SMB correction It has been determined that previous versions of the SMB spec have incorrectly stated that an Unlock SMB sent on a range that was not previously locked would result in a No-Op. This is incorrect. This will result in a Locking Violation error returned by the server. 7. T2FindFirst SMB In the SMB specification for LM 2.1 (SMB File Sharing Protocol Extensions Version 3.0) it was specified that a consumer using the T2FindFirst SMB could only identify non-8.3 filenames. This limitation has been partially removed in this version of the SMB protocol. Consumers may now request 8.3 only file names with a T2FindFirst SMB as long as the search level is 1. 8. Extension for Open Modes on the OpenX and T2Open SMBs For the OpenX and T2Open request SMBs the open mode (smb_mode) has been extended in the following way. Bit 12 and Bits 8-10 are now interpreted as follows. Bit12 Cache Usage Bit 0 This open is treated as any other opened file 1 The consumer is advising not to cache the data in this file. Bits8-10 Locality of Reference Bits 000 Locality of reference is not known 001 Mainly Sequential Access 010 Mainly Random Access 011 Random with some Locality 1XX Currently Undefined These Bits have no mandated functionality and are passed to assist the server in optimizing memory usage. They should originate form the consumer performing the open and should provide "hints" on the consumers intended usage of the file.