Опубликован: 20.02.2007 | Уровень: специалист | Доступ: платный
Лекция 2:

Системные средства с открытым программным кодом: основы

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$ без аутентификации. Поздравляю, вы не сможете получить полное управление системой, если у вас нет полномочий Администратора, но, подключившись даже без административных полномочий, вы можете получить больше сведений, чем это было до настоящего момента.

Совет. Эти команды несколько различаются в разных версиях операционных систем семейства Windows. Воспользуйтесь флагом /?, чтобы получить полную информацию о синтаксисе команды и ее возможностях.

Следующий скрипт устойчиво создает достаточно привилегированный и с достаточно высокими полномочиями конвейер между вашей машиной и машиной с адресом 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$.)

Совет. Убедитесь, что вы подчистили все за собой после соединения с этим системным ресурсом. Используйте net use \\192.168.1.150\IPC$ /delete для завершения соединения. Если этого не сделать, кто-нибудь обратит внимание на установленное соединение и вычислит ваш IP-адрес, используя команды net session или nbstat -s, которые уже коротко обсуждались.
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$.

Сергей Хлюкин
Сергей Хлюкин
Россия, Москва, Московский Государственный Открытый Университет, 2007
Игорь Касаткин
Игорь Касаткин
Россия, Москва