Добавление SMB в Windows, насколько это безопасно?
Вопрос
Я наткнулся на небольшой хак, который утверждает, что включает smb:// в Windows.
Жалоба заключалась в том, что такие вещи, как <a href="\\computername\path\file.ext">text</a>
не работали.
Хотя это правда, что вы можете использовать file:///// в своем URL-адресе, пользователь хотел использовать smb://, чтобы он был кроссплатформенным.
Взлом происходит следующим образом:
1) Создайте этот Reg-файл, сохраните и выполните его:
REGEDIT4
[HKEY_CLASSES_ROOT\smb]
@="URL:smb Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\smb\shell]
[HKEY_CLASSES_ROOT\smb\shell\open]
[HKEY_CLASSES_ROOT\smb\shell\open\command]
@="\"C:\\smb.bat\" \"%1\""
А затем создайте файл smb.bat в папке C, содержащий следующее:
@echo off
cd C:\
set url=%~dpnx1
explorer \%url:~7%
exit
Мой вопрос:насколько это безопасно, и какие еще мысли по этому поводу?Помимо файла://///, я имею в виду.
Решение
Для меня это выглядит проклятие опасен, потому что позволяет любой веб-сайт для размещения URL-адресов "\
ESOURCENAME", которые будут работать независимо от контекста, и smb.bat
будет вызван, если вы нажмете на такую ссылку.Я не совсем понимаю синтаксис пакетной обработки (особенно часть ~), но мне кажется, что можно передать любой аргумент explorer.exe
.
Вероятно, непосредственной опасности нет, поскольку маловероятно, что внешний злоумышленник догадается, что вы установили эту настройку.Тем не менее, это не безопасно.
Другие советы
Я бы предпочел, чтобы сервер обнаружил Windows Clients Output ServerName Path схема для них и SMB: // для всего остального.
Не говоря уже о том, что SMB не единственный протокол, который использует этот синтаксис, так и любая другая файловая система, такая как WebDAV. Несколько умная идея, и я хотел бы, чтобы SMB: // тоже работал.