Системные средства с открытым программным кодом: основы
net use. Теперь, когда нам известны имена общих ресурсов, попытаемся соединиться с ними, используя команду net use.
C:\>net use * \\badman\mp3 Drive E: is now connected to \\badman\mp3s The command completed successfully C:\>net use * \\badman\d The password is invalid for \\badman\d. Type the password for \\badman\d: System error 86 has occurred. The specified network password is not correct. C:\>net view \\badman Shared resources at \\BADMAN The bad machine Sharename Type Used as Comment --------------------------------------------------------------- CDRW Disk D Disk HALF-LIFE Disk INSTALL Disk MP3S Disk E: The command was completed successfully. C:\>echo "hi" > e:\test-write-permission.txt Network access is denied.
Мы смогли получить доступ к общему ресурсу MP3S и назначили ему следующее свободное имя устройства E:, о чем говорит символ * в командной строке net use. Однако у нас нет возможности создавать файлы на диске E:, поэтому мы имеем доступ только для чтения. Для доступа к ресурсу на запись нам необходимо ввести пароль или имя пользователя и пароль. В этом случае командная строка будет выглядеть так: net use /u:<username> <password>. Так что на самом деле мы не слишком далеко продвинулись. Мы можем сделать еще кое-что.
Доступ к ресурсу IPC$ с использованием net use. Как оказалось, машины под управлением Windows NT и 2000 имеют "административный общий ресурс". Это не обычный общий ресурс, который отображается в Сетевом окружении. Его невозможно посмотреть с помощью net view (поскольку этот файл скрытый, о чем говорит символ $ на конце имени ресурса), но он существует. Если вы знаете пароль администратора для доступа к машине, то можете использовать команду net use для соединения с одним из таких административных ресурсов.
Дополнительный административный ресурс общего доступа сделан таким образом, что администратор домена может посылать команды взад-вперед между серверами. Этот ресурс называется IPC$, что означает межпроцессное взаимодействие (InterProcess Communications)
Вы догадываетесь, что ресурс IPC$ должен быть хорошо защищен с помощью административных полномочий. Но некоторые приложения в действительности требуют доступа к IPC$ без аутентификации. Поздравляю, вы не сможете получить полное управление системой, если у вас нет полномочий Администратора, но, подключившись даже без административных полномочий, вы можете получить больше сведений, чем это было до настоящего момента.
Следующий скрипт устойчиво создает достаточно привилегированный и с достаточно высокими полномочиями конвейер между вашей машиной и машиной с адресом 192.168.1.150:
C:\Windows\Desktop>net use 192.168.1.150\IPC$ "" /user: "" The command completed successfully
Теперь мы можем запускать некоторые другие утилиты на 192.169.1.150 из тех, которые были раньше недоступны, чтобы получить дополнительную информацию о системе. К такой информации относятся сведения об именах пользователей, групп, политик, системных идентификаторах ( SIDs ), и другой подобной информации. (См. лекцию ""Средства ревизии Windows"" с примерами утилит, которые вы можете использовать для получения информации после создания "нулевого" соединения с IPC$.)
Samba: взгляд со стороны Unix
Как и Windows, имеющая средства доступа к разделяемым ресурсам из командной строки посредством SMB, у Unix есть собственные средства доступа к общим ресурсам на основе протокола NetBIOS. Samba включает в себя возможности и сервера и клиента для того, чтобы предоставить вам возможность определить общие сетевые ресурсы таким образом, чтобы Windows-клиенты могли видеть их в своем сетевом окружении и получить к ним доступ. В этом разделе мы сосредоточимся только на клиентской части этой программы, которая дает возможность получить доступ к общим ресурсам на основе протокола Server Message Block Protocol (SMB).
Smbclient
Smbclient можно представить себе, как аналог FTP-клиента для доступа к общим ресурсам на основе протокола SMB. Smbclient это практически тоже самое, что и net use под Windows. Рассмотрим несколько команд, которые вы можете попробовать.
Реализация. Во-первых, нам необходимо получить список доступных сетевых ресурсов. Мы можем использовать опцию -L <hostname> для просмотра доступных общих ресурсов для конкретного хоста, но если наш smbclient не может установить соответствие между именем NetBIOS и IP-адресом, нам необходимо использовать флаг -I. Можно также воспользоваться опцией -N, чтобы пропустить запрос на ввод паролей (так как нам хотелось бы получить информацию без них).
[jdoe@originix ~]$ smbclient -N -L badman -I 192.168.1.101 Added interface ip=192.168.1.101 bcast 192.168.1.255 nmask=255.255.255.0 Sharename Type Comment --------- ---- -------- MP3S Disk HALF-LIFE Disk CDRW Disk INSTALL Disk D Disk IPS$ IPC Remote Inter Process Communications Server Comment --------- --------- BADMAN The bad machine Workgroup Master --------- --------- MYWORKGROUP BADMAN
Не правда ли, вывод этой команды выглядит практически так же, как и вывод команды net view в предыдущем разделе. Исключая тот факт, что smbclient проинформировал нас о наличии общего ресурса IPC$! Скрытые ресурсы невозможно спрятать от smbclient. Заметьте, что для этой команды нам действительно необходимо знать NetBIOS-имя машины. Без этого мы не смогли бы получить никакой информации.
Теперь посмотрим, что произойдет, если мы попробуем соединиться с общим ресурсом.
[jdoe@originix ~]$ smbclient //badman/mp3s -I 192.168.1.101 Added interface ip=192.168.1.100 bcast=192.168.1.255 nmask=255.255.255.0 Password: smb: \> ls Innocent.mp3 A 5269507 Set Feb 3 02:04:14 2001 Awake.mp3 A 7302760 Mon Feb 12 18:16:44 2001 River.mp3 A 5324800 Web Jan 3 19:04:12 2001 39060 blocks of size 524288. 18784 blocks available
Мы применили пустой пароль и попали внутрь. Теперь мы можем использовать стандартные FTP-команды ( get, put, ls ), чтобы определить, можем ли мы читать или писать файлы в этот ресурс. Если мы хотим подключиться к ресурсу под именем пользователя, то можно использовать опцию -U <username>.
Можем ли мы использовать smbclient для открытия нулевой сессии с ресурсом IPC$? Уверены, что да. Однако сделать это несколько сложнее. Дело в том, что IPC$ - это конвейер, а не брандмауэр, поэтому smbclient не в состоянии установить такое соединение. Вам следует использовать rpcclient, включенный в состав дистрибутива Samba, чтобы соединиться с ресурсом IPC$.