SMB

SMB

SMB

SMB (сокр. от англ. Server Message Block) — сетевой протокол прикладного уровня для удалённого доступа к файлам, принтерам и другим сетевым ресурсам, а также для межпроцессного взаимодействия. Первая версия протокола была разработана компаниями IBM, Microsoft, Intel и 3Com в 1980-х годах; вторая (SMB 2.0) была создана Microsoft и появилась в Windows Vista. В настоящее время, SMB связан главным образом с операционными системами Microsoft Windows где используется для реализации «Сети Microsoft Windows» (англ. Microsoft Windows Network) и «Совместного использования файлов и принтеров» (англ. File and Printer Sharing).

Содержание

История

Первая версия протокола была разработана сотрудником IBM Бэрри Файгенбаумом (англ. Barry Feigenbaum) в 1983 году[1][2]. Изначально SMB был реализован через NetBIOS (поверх NBF, IPX/SPX или NetBIOS over TCP/IP) и использовался в сетях MS-NET и LAN Manager для DOS, а также в Windows for Workgroups. Microsoft регулярно дополняла протокол новыми возможностями; так, вторая версия Microsoft Networks SMB File Sharing Protocol Extensions появилась в 1988 году, 3-я версия в 1989 году, версия 3.4 в 1992[3].

В 1992 году появилась Samba — свободная реализация протокола SMB для UNIX-подобных операционных систем (изначально для SunOS). Поскольку Microsoft не опубликовала документацию значительной части своих дополнений к SMB, разработчикам Samba пришлось провести обратную разработку протокола.

В 1996 году Microsoft стала использовать новое название для дополненной версии протокола которая использовалась в Windows NT 4.0 — CIFS (англ. Common Internet File System); новое имя прижилось, и SMB и CIFS фактически стали синонимами[2]. Microsoft некоторое время пыталась превратить CIFS в международный стандарт через IETF, но после 2000 года прекратила работу по стандартизации.

В Windows 2000 впервые появился SMB непосредственно поверх TCP (без NetBIOS); для этого используется порт 445 (SMB поверх NetBIOS over TCP/IP использовал порт 139).

В Windows Vista появилась новая версия протокола — SMB 2.0. Протокол был значительно упрощен (в SMB было более 100 команд, а в SMB 2 всего 19); при этом была повышена производительность (благодаря механизму кэширования, возможности совмещать несколько команд SMB 2 в одном сетевом запросе и увеличенным буферам чтения и записи), особенно в сетях с высокой латентностью, улучшена масштабируемость и добавлена возможность автоматического продолжения сеанса в случае временного отсоединения от сервера[4]. SMB 2 использует те же порты (445 и 139) как и SMB, но другой заголовок пакетов (0xFF 'S' 'M' 'B' в SMB, 0xFE 'S' 'M' 'B' в SMB 2)[5].

В 2008 году, под давлением Еврокомиссии, Microsoft опубликовала описание своих проприетарных протоколов, в том числе и SMB, на сайте MSDN[6].

Принцип работы

SMB — это протокол, основанный на технологии клиент-сервер, который предоставляет клиентским приложениям простой способ для чтения и записи файлов, а также запроса служб у серверных программ в различных типах сетевого окружения. Единственное отличие от модели клиент-сервер это, когда клиент посылает в качестве запроса оппортунистические блокировки, а сервер вынужден отпустить уже предоставленную блокировку, так как другой клиент запросил открытие файла в режиме, несовместимом с предоставленной блокировкой. В этом случае, сервер посылает клиенту уведомительное сообщение о том, что блокировка была снята. Серверы предоставляют файловые системы и другие ресурсы (принтеры, почтовые сегменты, именованные каналы и т. д.) для общего доступа в сети. Клиентские компьютеры могут иметь у себя свои носители информации, но они так же хотят иметь доступ к ресурсам, предоставленным сервером для общего пользования.

Клиенты соединяются с сервером, используя протоколы TCP/IP (а точнее NetBIOS через TCP/IP), NetBEUI или IPX/SPX. После того, как соединение установлено, клиенты могут посылать команды серверу (эти команды называются SMB-команды или SMBs), который дает им доступ к ресурсам, позволяет открывать, читать файлы, писать в файлы и, вообще, выполнять весь перечень действий, которые можно выполнять с файловой системой. Однако, в случае SMB, эти действия совершаются через сеть. Как было сказано выше, SMB работает, используя различные протоколы.

В сетевой модели OSI, протокол SMB используется как протокол Application/Presentation уровня и зависит от низкоуровневых транспортных протоколов. SMB может использоваться через TCP/IP, NetBEUI и IPX/SPX. Если TCP/IP или NetBEUI будут заняты, то будет использоваться NetBIOS API. SMB также может посылаться через DECnet протокол. Digital (ныне Compaq) сделала это специально для своего продукта PATHWORKS. NetBIOS, в случае использования через TCP/IP, имеет различные названия. Microsoft называет его в некоторых случаях NBT, а в некоторых NetBT. Так же встречается название RFCNB.

С начала существования SMB, было разработано множество различных вариантов протокола для обработки всевозрастающей сложности компьютерной среды, в которой он использовался. Договорились, что реальный вариант протокола, который будет использоваться клиентом и сервером, будет определяться командой negprot (negotiate protocol). Этот SMB обязан посылаться первым до установления соединения. Первым вариантом протокола был Core Protocol, известный как SMB имплементация PC NETWORK PROGRAM 1.0. Он должным образом поддерживает весь набор основных операций, который включает в себя:
   • коннект и дисконнект к файловым и принтерным ресурсам
   • открытие и закрытие файлов
   • открытие и закрытие принтерных файлов
   • чтение и запись файлов
   • создание и удаление файлов и директорий
   • поиск директорий
   • получение и установление атрибутов файла
   • блокировка и разблокировка файлов

Формат заголовка SMB

8 16 24 32 bits
Command RCLS Reserved ERR
ERR (cont) REB/FLG Reserved
Reserved
Reserved
Reserved
Tree ID Process ID
User ID Multiplex ID
WCT VWV
BCC BUF
SMB header structure

Основные элементы структуры заголовка SMB:
   • Command – команда протокола.
   • RCLS – код класса ошибки.
   • ERR – код ошибки.
   • Tree ID (TID) – идентификатор соединения с сетевым ресурсом.
   • Process ID (PID) – идентификатор клиентского процесса фактического соединения.
   • User ID (UID) – идентификатор пользователя; используется сервером для проверки прав доступа пользователя.
   • Multiplex ID (MID) - идентификатор группы пользователя; используется сервером для проверки прав доступа группы пользователя.
   • WCT – количество параметров, следующих за заголовком.
   • BCC – количество байт данных, следующих за параметрами.

Аутентификация Microsoft SMB Protocol

Модель механизма защиты, которая используется в Microsoft SMB Protocol, в основном идентична модели любого другого варианта SMB протокола. Она состоит из двух уровней защиты: user-level (пользовательский уровень) и share-level (уровень совместно используемого ресурса). Под share (выложенный в сеть ресурс) понимается файл, директория, принтер, любая услуга, которая может быть доступна клиентам по сети.

Аутентификация на уровне user-level означает, что клиент, который пытается получить доступ к ресурсу на сервере, должен иметь username (имя пользователя) и password (пароль). Если аутентификация прошла успешно, клиент имеет доступ ко всем доступным ресурсам сервера, кроме тех, что с share-level защитой. Этот уровень защиты дает возможность системным администраторам конкретно указывать, какие пользователи и группы пользователей имею доступ к определенным данным. Он используется в Windows NT, Windows 2000, Windows XP.

Аутентификация на уровне share-level означает, что доступ к ресурсу контролируется паролем, установленным конкретно на этот ресурс. В отличие от user-level, этот уровень защиты не требует имя пользователя для аутентификации и не устанавливается никакая уникальность текущего пользователя. Этот уровень используется в Windows NT, Windows 2000 и Windows XP для обеспечения дополнительного уровня контроля защиты сверх user-level. Операционные системы Windows 95, Windows 98 и Windows ME реализуют защиту только этого уровня.

В обоих этих уровнях защиты используется шифрование. Пароль зашифровывается, прежде чем отправляется на сервер. Типы шифрования NTLM и старые версии LAN Manager (LM) поддерживаются протоколом. Оба метода шифрования используют аутентификацию типа отклик-отзыв, в которой сервер посылает клиенту случайную сгенерированную строку, а клиент возвращает в качестве отзыва обработанную строку, которая доказывает, что клиент имеет достаточный мандат для доступа к данным.

Методы взлома SMB

Большинство методов взлома основано на том, что злоумышленник получает доступ к базе данных, в которой операционная система хранит хеши паролей пользователей, т.е в SAM. Если SAM уже получена, то далее остается только воспользоваться одной из многих утилит, которые помогают дешифровать пароли пользователей, полученные из SAM.

Одной из самых известных подобного рода программ является L0phtCrack. Принцип ее действия очень прост. Похищенная база данных сначала импортируется в программу. Далее выбирается нужная учетная запись и запускается процесс дешифровки, который может занять много времени. Среди способов расшифровки имеется возможность проведения “атаки по словарю”, т.е попытка угадать пароль по уже заложенному в программу списку распространенных паролей, на тот случай если пароль короткий и незамысловатый. Также злоумышленник может задумать использовать L0phtCrack в режиме "SMB Packet Capture" в локальной сети, если он обладает необходимыми правами для установки и запуска программ на компьютере. В этом случае хеши паролей пользователей также можно будет перехватить с помощью утилиты. Запустив программу сразу же можно, перехватывая пакеты, получить хеши паролей пользователей, которые аутентифицируются на сервере в данный момент, так как довольно часто при работе в локальной сети пользователи с разных компьютеров повторно аутентифицируются на главном сервере. Затем злоумышленнику остается только сохранить все перехваченные хэши паролей и начать дешифрацию аналогично тому, как это происходило с дешифровкой SAM файла. Как правило, у большинства пользователей простые пароли, поэтому программа способна взломать их всего за несколько минут своей работы, с помощью встроенного списка паролей. Остальные утилиты основаны на таком же принципе.

См. также

Примечания

  1. Christopher R. Hertel SMB Filesharing URL Scheme (англ.) (8 января 2003). Проверено 21 октября 2009.
  2. 1 2 Andrew Tridgell Myths About Samba (англ.). Проверено 21 октября 2009.
  3. Dan Shearer History of SMB (англ.) (16 ноября 1996). Проверено 21 октября 2009.
  4. Joseph Barreto SMB2, a complete redesign of the main remote file protocol for Windows (англ.) (9 декабря 2008). Проверено 22 октября 2009.
  5. SMB2. Wireshark. Проверено 22 октября 2009.
  6. Microsoft Makes Strategic Changes in Technology and Business Practices to Expand Interoperability (англ.). Проверено 22 октября 2009.

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "SMB" в других словарях:

  • SMB — may refer to:* Super Mario Bros. , a video game made by Nintendo * San Miguel Beer, a local beer in the Philippines. * San Miguel Beermen, a professional basketball team in the Philippines. * Screaming Mechanical Brain, a metal/synthpunk band… …   Wikipedia

  • SMB — steht für: Server Message Block (auch CIFS), ein Computernetzwerkprotokoll Small and Medium sized businesses, englisch für Kleine und mittlere Unternehmen (KMU) System Management Bus, ein PC Kommunikations Bussystem Societas Missionaria de… …   Deutsch Wikipedia

  • SMB —   [Abk. für System Management Bus], 1995 von Intel definierter Zusatzbus, der aus zwei Leitungen besteht. Er dient v. a. dazu, die Temperaturen des Prozessors und der Festplatte sowie den Energieverbrauch zu überwachen und Konfigurationsdaten… …   Universal-Lexikon

  • SMB — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom.   Sigles d’une seule lettre   Sigles de deux lettres > Sigles de trois lettres   Sigles de quatre lettres …   Wikipédia en Français

  • SMB Residency — (Индаур,Индия) Категория отеля: 1 звездочный отель Адрес: 910, Khatiwala Tank,Tower Sq …   Каталог отелей

  • SMB connector — SMB ( SubMiniature version B ) connectors are coaxial RF connectors developed in the 1960s. This version is smaller than SMA connectors.They feature a snap on coupling and are available either in 50 Ω or 75 Ω impedances. They offer excellent… …   Wikipedia

  • SMB Adventure — is an inshore Survey Motor Boat of the Royal New Zealand Navy and part of the Navy s Deployable Hydrographic Unit. She however is not a commissioned ship, and is usually transported on and operated as a tender from HMNZS Resolution. Adventure is… …   Wikipedia

  • SMB-Chromatographie — SMB Chro|ma|to|gra|phie [SMB: Abk. für engl. simulated moving bed = simuliertes Wanderbett, Wanderbettmodell]: apparatives Verfahren der sog. kontinuierlichen Chromatographie, das auch zur Enantiomerentrennung geeignet ist …   Universal-Lexikon

  • SMB-Protokoll —   [Abk. für Server Message Block, dt. »Nachrichtenblock für Diensteinheiten«], ein unter verschiedenen Bezeichnungen (Microsoft Networking, LAN Manager) verbreitetes, von Microsoft entwickeltes Netzwerkprotokoll. Das SMB Protokoll stellt den… …   Universal-Lexikon

  • smb.\ up\ there\ hates\ me — • smb. up there loves me • smb. up there hates me slang An expression intimating that an unseen power in heaven, such as God, has been favorable or unfavorable to the one making the exclamation. Look at all the money I won! I say somebody up… …   Словарь американских идиом


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»