SMBRelay

SMBRelay (также SMBRelay2) — это компьютерные программы, предназначенные для осуществления атак типа «человек посередине» (англ. man-in-the-middle, MITM) на протокол SMB в операционных системах Windows. Они были написаны программистом под псевдонимом Sir Dystic из группы Культ мёртвой коровы (cDc) и впервые представлены 21 марта 2001 года на конференции @lantacon в Атланте (штат Джорджия). Более чем через семь лет после выхода SMBRelay компания Microsoft выпустила патч, устраняющий уязвимость, которую эксплуатировали эти программы[1][2]. Однако это обновление закрывает уязвимость только в случае, если SMB отражается обратно на клиент. Если трафик пересылается другому хосту, уязвимость всё ещё может быть использована[3][4].

SMBRelay

SMBRelay принимает соединения по UDP на порт 139 и ретранслирует пакеты между клиентом и сервером Windows-машины к исходному компьютеру также через порт 139. При необходимости программа модифицирует эти пакеты.

После установки соединения и аутентификации клиент цели отключается, а SMBRelay привязывается к порту 139 по новому IP-адресу. На этот адрес можно затем подключиться напрямую с помощью команды «net use \\192.1.1.1», используя все сетевые возможности, встроенные в Windows. Программа ретранслирует всё SMB-соединение, за исключением этапов согласования протокола и аутентификации. Пока целевая машина остаётся подключённой, пользователь может разъединяться и заново присоединяться к такому виртуальному IP.

SMBRelay собирает NTLM-хэши паролей и сохраняет их в файл hashes.txt в формате, подходящем для взлома с помощью программы L0phtCrack.

Поскольку порт 139 является привилегированным и требует прав администратора, SMBRelay должна запускаться с соответствующими полномочиями. Однако этот порт необходим для работы NetBIOS, поэтому его сложно заблокировать.

По словам Sir Dystic: «Проблема в том, что с точки зрения маркетинга Microsoft хочет максимально поддерживать обратную совместимость своих продуктов; однако, продолжая использовать протоколы с известными проблемами, они подвергают своих клиентов риску эксплуатации… Это, в очередной раз, проблемы, существовавшие с первого дня появления этого протокола. Это не ошибка, а фундаментальный изъян в архитектуре. Полагать, что никто не использовал этот метод для атак — наивно; у меня ушло менее двух недель на написание SMBRelay.»[5]

SMBRelay2

SMBRelay2 работает на уровне NetBIOS поверх любого протокола, к которому он привязан (например, NBF или NBT). В отличие от SMBRelay, эта версия использует имена NetBIOS, а не IP-адреса.

SMBRelay2 также поддерживает атаку типа «человек посередине» на третий хост, однако может слушать только одно имя за раз.

Примечания

Ссылки