none
Безопасность PSEXEC с контроллера домена

    Вопрос

  • Вопрос по безопасности. На контроллере домена я под учетной записью администратора запускаю строку "psexec -s \\some_pc cmd" и далее запускаю некие исполняемые файлы (например, установку заплаток). Безопасна ли такая схема? Что произойдет, если я, например, подключусь к зараженной машине, где файл службы psexec или cmd.exe заражены? Запустится ли в таком случае вирус от имени администратора домена? 
    14 ноября 2017 г. 9:23

Ответы

  • Вопрос по безопасности. На контроллере домена я под учетной записью администратора запускаю строку "psexec -s \\some_pc cmd" и далее запускаю некие исполняемые файлы (например, установку заплаток). Безопасна ли такая схема? Что произойдет, если я, например, подключусь к зараженной машине, где файл службы psexec или cmd.exe заражены? Запустится ли в таком случае вирус от имени администратора домена? 

    Прежде всего, чтобы получить ответ, нужно понимать, как работает psexec на удалённом компьютере.

    А работает она таким образом, что создаёт на удалённом компьютере специальную службу (копируя исполнимый файл для этой службы), которая запускает указанный в комаде psexec файл. Ключ -s указывает, что служба должна запускаться с учётными данными локальной системы - т.е. учётные данные администратора домена в вашем варианте на удалённую машину для запуска программ на ней передаваться не будут (они используются только для подключения по сети).

    Если файл cmd или любой другой, запускаемый вами на удалённой машине, окажется заражённым, то код заразы будет иметь повышенные привилегии только на этой машине, а доступ по сети для него будет возможен только с учётными данными удалённой машины.

    Так что ваша схема вполне безопасна.


    Слава России!

    • Предложено в качестве ответа Ivan.Basov 14 ноября 2017 г. 11:10
    • Помечено в качестве ответа yurybx 14 ноября 2017 г. 13:00
    14 ноября 2017 г. 11:01

Все ответы

  • На контроллере домена я под учетной записью администратора

    по-поводу psexec я вам не смогу ничего сказать, но могу предложить альтернативу:
    - создайте обычную доменную учётную запись, к примеру, remoteuser
    - через групповые политики добавьте пользователя remoteuser в локальную группу "Администраторы" на всех доменных компьютерах
    - выполняйте задачи на удалённых компьютерах от имени remoteuser.

    если вирус и запустится, то учётные данные доменного администратора не пострадают\не утекут.

    ну и самое главное - используйте антивирусы, для проверки cmd.exe и psexec на удалённых компьютерах.

    14 ноября 2017 г. 9:36
  • Спасибо за ответ!
    Но странное решение Вы предлагаете. Если я сделаю такую учетную запись, то вирус, запущенный от её имени, сможет похерить все компьютеры, кроме серверов! Так что вопрос остается в силе.
    14 ноября 2017 г. 10:05
  • Спасибо за ответ!
    Но странное решение Вы предлагаете. Если я сделаю такую учетную запись, то вирус, запущенный от её имени, сможет похерить все компьютеры, кроме серверов! Так что вопрос остается в силе.
    вот видите, сервера уже будут в безопасности, а так же AD. А так, имхо, это стандартное решение, как и использование WSUS для установки обнолений.
    14 ноября 2017 г. 10:35
  • А всё-таки, как можно узнать, запускается ли какой-либо процесс на рабочей станции от имени доменного админа в моём случае? По поводу cmd всё понятно: ключ -s запускает ексешник от имени локальной системы. А как насчет промежуточных процессов, которые запускаются для установки службы psexec, например?
    14 ноября 2017 г. 10:43
  • лапс с админской учеткой на каждом компе с уникальным паролем, не?
    14 ноября 2017 г. 10:51
  • Вопрос по безопасности. На контроллере домена я под учетной записью администратора запускаю строку "psexec -s \\some_pc cmd" и далее запускаю некие исполняемые файлы (например, установку заплаток). Безопасна ли такая схема? Что произойдет, если я, например, подключусь к зараженной машине, где файл службы psexec или cmd.exe заражены? Запустится ли в таком случае вирус от имени администратора домена? 

    Прежде всего, чтобы получить ответ, нужно понимать, как работает psexec на удалённом компьютере.

    А работает она таким образом, что создаёт на удалённом компьютере специальную службу (копируя исполнимый файл для этой службы), которая запускает указанный в комаде psexec файл. Ключ -s указывает, что служба должна запускаться с учётными данными локальной системы - т.е. учётные данные администратора домена в вашем варианте на удалённую машину для запуска программ на ней передаваться не будут (они используются только для подключения по сети).

    Если файл cmd или любой другой, запускаемый вами на удалённой машине, окажется заражённым, то код заразы будет иметь повышенные привилегии только на этой машине, а доступ по сети для него будет возможен только с учётными данными удалённой машины.

    Так что ваша схема вполне безопасна.


    Слава России!

    • Предложено в качестве ответа Ivan.Basov 14 ноября 2017 г. 11:10
    • Помечено в качестве ответа yurybx 14 ноября 2017 г. 13:00
    14 ноября 2017 г. 11:01
  • А всё-таки, как можно узнать, запускается ли какой-либо процесс на рабочей станции от имени доменного админа в моём случае?
    get-process -IncludeUserName
    14 ноября 2017 г. 11:10
  • С запуском службы вроде всё понятно. А вот с её созданием - не совсем. Для того чтобы создать службу, не достаточно просто скопировать файлик, нужно ещё прописать её в системе. А для этого можно, например, запустить "sc create". И не получится ли так, что psexec для регистрации службы запустит зараженный sc.exe на удаленном компьютере с правами доменного администратора? Или psexec регистрирует службу прямо в реестре?
    14 ноября 2017 г. 11:56
  • Короче, я взял утилиту Process Monitor и поигрался с подключением через psexec. Если верить procmon-у, то никаких процессов от имени доменного администратора не запускается (с ключем -s). Так что, схема выглядит вполне безопасной. Спасибо ответившим!
    14 ноября 2017 г. 12:45
  • С запуском службы вроде всё понятно. А вот с её созданием - не совсем. Для того чтобы создать службу, не достаточно просто скопировать файлик, нужно ещё прописать её в системе. А для этого можно, например, запустить "sc create". И не получится ли так, что psexec для регистрации службы запустит зараженный sc.exe на удаленном компьютере с правами доменного администратора? Или psexec регистрирует службу прямо в реестре?
    Службу можно создать и запустить удалённо, через вызов соотвествующих фукций Service Control Manager по протоколу RPC. Именно так psexec и делает. Команда sc, кстати, тоже умеет это делать: в ней можно первым параметром указать имя компьютера - оно должно начинаться с двух обратных косых черт, как и при подключении к общим папкам.

    Слава России!

    14 ноября 2017 г. 15:43
  • добавил бы именно исключение по имперсонейт вызову, по керберовскому токену

    т.е. вызов psexec по неявным креденшелам(без указания логин\пароля) для случая если не используется нтлм.

    15 ноября 2017 г. 10:52