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$.