PsExec и что он может делать

Большая часть инструментов, применяемых нами для администрирования сетей, представляют две стороны одной медали. Эти инструменты предоставляют значительную степень гибкости и упрощают управление устройствами, службами и программками. Если эти инструменты находятся в подходящих руках, то нам не о чем волноваться, но если инструменты удалённого управления сетями попадут не в те руки, они становятся массивным орудием, которое может употребляться для выполнения атак широкого диапазона. В этой статье мы разглядим инструмент, попадающий под это описание. Это инструмент Microsoft Sysinternals PsExec. В этой статье я предоставлю обзор того, что собой представляет инструмент PsExec и какие способности он дает исходя из убеждений администрирования. После этого я встану на сторону злодея и продемонстрирую некие ужасные вещи, которые можно выполнить при помощи этого инструмента в сети.

Эта статья предназначается для 2-ух мотивированных аудиторий. 1-ая аудитория включает системных админов, которые несут ответственность за защиту собственных сетей от использования таких инструментов, как PsExec, в нелегальных целях. Другая мотивированная аудитория включает этичных взломщиков и проф испытателей возможных угроз, которые могут пользоваться информацией из этой статьи, узнав незначительно больше о способностях PsExec утилиты. Независимо от того, к какой аудитории вы относитесь, принципиально то, что я делаю заявление об отказе от ответственности в отношении того, что некие приведенные в этой статье команды и методики могут употребляться в нелегальных целях, зависимо от событий, в каких они употребляются, потому я рекомендую быть очень усмотрительным, если у вас появляются сомнения на счет всех выполняемых действий.

Что такое PsExec?

Утилита PsExec была разработана как часть пакета инструментов PsTools, вначале разработанного Марком Руссиновичем (Mark Russinovich) из компании Sysinternals, которая сейчас принадлежит компании Microsoft. Инструмент выполнен как инструмент управления на базе командной строчки и позволяет удаленно делать процессы в другой системе. Этот инструмент очень гибкий в том отношении, что он позволяет использовать разные учетные данные, а не те, которые употребляет юзер, выполняющий программку, а это значит, что вы сможете управлять устройствами, разбитыми границами домена и веб-сайта. PsExec не только лишь делает программки на удаленной системе, она может перенаправлять входные и выходные данные меж системами так, что вы сможете использовать интерактивные инструменты удаленно.

В отличие от большинства программных товаров, связанных с Microsoft, внутренний механизм работы PsExec не представляет собой секрета и достаточно прост. PsExec позволяет перенаправлять входные и выходные данные удаленно запущенной исполняемой программки средством использования SMB и укрытого ресурса общего доступа $ADMIN на удаленной системе. При помощи этого ресурса PsExec употребляет интерфейс программирования диспетчера управления Windows Service control Manager API для пуска службы PsExecsvc на удаленной системе, которая делает именованный канал (named pipe), по которому работает PsExec. Конкретно этот именованный канал позволяет перенаправление ввода/вывода назад в систему, на которой работает PsExec.

Положительная сторона PsExec

Как и предполагалось при исходном разработке программки PsExec, она может употребляться для выполнения огромного количества нужных задач, которые могут посодействовать админу системы. Одной из таких ситуаций, в какой мне пришлось оказаться, была ситуация, когда я знал DNS имя компьютера, но не знал четких характеристик IP конфигурации (DNS сервер, основной шлюз и т.д.). При обычных обстоятельствах я бы использовал ipconfig на локальной системе для определения этой инфы. Но почти всегда это значит, что мне пришлось бы ехать в другое место и одалживать компьютер юзера, соответственно снижая уровень его продуктивности на сей день. Так как команда ipconfig не имеет способности выполнения на удалённых машинах, я могу использовать PsExec для ее удачного выполнения, как показано на рисунке 1.

PsExec и что он может делать

Набросок 1: Внедрение PsExec для выполнения ipconfig на удаленной системе

После вызова PsExec, удаленный компьютер вводится прямо за 2-мя наклонными (\), после этого вводиться команда ipconfig. Когда вы выполняете PsExec, она по дефлоту заходит в %SYSTEM% каталог удаленной системы, на которой вы пытаетесь ее выполнить, и по этой причине мне не пришлось указывать полный путь. В конце концов, ключ /all для команды ipconfig указывается, чтоб показать всю доступную информацию ipconfig.

Очередной распространённой ситуацией внедрения PsExec является ее внедрение для установки обновлений, заплаток и исправлений. Хотя предпочитаемым методом выполнения этой задачки является внедрение групповой политики, могут быть ситуации, когда этот метод очень неспешный. Я сталкивался со многими ситуациями, где необходимо было устанавливать высокоприоритетное исправление безопасности, которое не могло ожидать стандартного времени обновления групповой политики, потому я использовал PsExec для более резвой установки файла. Этот пример показан на рисунке 2.

PsExec и что он может делать

Набросок 2: Удаленное выполнение исполняемого исправления

На рисунке выше в команде употребляются дополнительные составляющие. Во-1-х, направьте внимание, что там указаны имена 2-ух других компов, разделённых запятыми после двойной наклонной (\). PsExec позволяет указывать несколько мотивированных устройств, либо файл, содержащий перечень имен либо адресов устройств. Эта команда также включает /c ключ, который употребляется, когда необходимо указать файл на локальной системе, который необходимо выполнить на удаленной системе. В этом примере я указал файл patch.exe. Этот файл размещен в моей локальной системе в корне диска C, потому я указал полный путь к файлу. Ключ /c просматривает %SYSTEM% каталог локальной системы по дефлоту. Как вы видите, файл удачно выполнен, и выходная информация перенаправлена назад в локальную консоль системы, на которой производится PsExec.

И очередной, последней ситуацией легитимного использования PsExec является ситуация удаленного администрирования систем с высочайшим уровнем приемуществ, при использовании системы от имени учетной записи с более низким уровнем льгот. Не могу вспомнить четкое количество раз, когда мне приходилось работать с компьютерами юзеров и получать звонки, требовавшие от меня выполнения административных задач, таких как смена пароля. Естественно, в среде Active Directory я мог просто использовать протокол RDP для входа в контроллер домена и выполнения этой задачки, но у меня было несколько клиентов, которые не использовали active directory либо RDP по ряду обстоятельств. В этой ситуации очень комфортно просто воткнуть USB накопитель и пользоваться установленной на него утилитой PsExec. В случае, показанном на рисунке 3, я использовал PsExec для сброса пользовательского пароля на системе, методом подъема уровня льгот сетевого инструмента, выполняемого под PsExec.

PsExec и что он может делать

Набросок 3: Смена пользовательского пароля методом увеличения льгот PsExec

Выполнение нелегальных операций при помощи PsExec

Сейчас давайте разглядим черную сторону инструмента и поглядим на те вещи, которые можно выполнить при помощи PsExec в недобрых намерениях. Сначала, давайте разглядим ситуацию, в какой злодей получил учетные данные системы, но не имеет конкретного доступа к ней. В данном случае, злодей намеревается получить контроль над GUI либо командной строчкой системы, но способности использования этих учетных данных могут быть ограничены. Одним из методов, который возможно окажется полезным в таковой ситуации, является внедрение PsExec для выполнения исполняемых файлов лазеек (backdoor executable) на системе, как показано на рисунке 4.

PsExec и что он может делать

Набросок 4: Вредная программка запущена на системе удаленно

В этой ситуации удаленный злодей употребляет PsExec с ключом /c для выполнения файла nc.exe на удаленной системе. Вместе с этим употребляются ‘u и ‘p ключи, которые указывают имя и пароль взломанной системы, чтоб файл мог производиться с преимуществами корневого уровня. Без ведома жертвы, файл, исполняемый на его системе, представляет собой лазейку, которая позволит взломщику подключаться к системе и получать доступ к административному интерпретатору команд.

Увлекательным нюансом в только-только рассмотренной ситуации будет то, что вам даже не нужен пароль юзера для выполнения таковой атаки. В реальности вам только необходимо имя юзера и хэш-значение пароля юзера. В Windows математические расчёты используются к вводимым юзерами паролям, чтоб конвертировать эти пароли в зашифрованные строчки определенной длины, именуемые хэшем (hash). Эти хэши представляют собой компонент безопасности, созданный для предотвращения передачи паролей по сети открытым текстом. При выполнении проверки подлинности эти хэш-значения паролей передаются с 1-го узла на другой. Используя PsExec, можно этим пользоваться методом обычного предоставления хэш-значения пароля, а не самого пароля, как показано на рисунке 5.

PsExec и что он может делать

Набросок 5: Внедрение хэш-значения пароля для удаленного выполнения файла

Этот пример похож на тот, что показан на рисунке 4, с той только различием, что тут употребляется хэш-значение, а не сам пароль. Принимающая система не испытывает заморочек с принятием этого хэша для выполнения проверки подлинности. Есть ряд методов получения хэш-значения пароля, которые не входят в тему этой статьи. Я писал другую статью об этом, которую можно поглядеть тут.

Еще одним трюком, который вероятен благодаря PsExec, является возможность получения доступа к файлам и процессам, выполняемым интегрированной учетной записью SYSTEM. Учетная запись SYSTEM в машине Windows является учетной записью с наивысшими возможностями, обеспечивающими доступ фактически ко всему, включая некие элементы, которые недосягаемы для учетной записи админа и создаваемых юзером учетных записей. На рисунке 6 показан пример доступа к приложению regedit.

PsExec и что он может делать

Набросок 6: Доступ к реестру компьютера жертвы

Вышеуказанная команда производится конкретно на локальной системе, но показывает ключ ‘s, чтоб использовать локальную учетную запись SYSTEM. Этот ключ употребляется в купе с опцией ‘I (интерактивный), которая делает regedit в интерактивном режиме. Выполнение этой команды запустит regedit с доступом SYSTEM, что обеспечит дополнительный доступ к неким интересующим файлам. Одним из примеров такового является SAM файл, содержащий хэш-значения паролей юзера. Беря во внимание определенные мотивы, взломщик с таким доступом к системе и PsExec с легкостью может извлечь все хэши паролей из системы, используя данную методику, обеспечив себя информацией, которая может позволить скомпрометировать другие системы либо учетные записи.

Несколько предупреждений

Учетные данные в открытом виде – если вас тревожит то, кто может прослушивать активность в вашей сети, то внедрение инструмента PsExec является не самым удачным выбором. PsExec передает все учетные данные юзера в чистом (незашифрованном) виде, а это значит, что если вы передаете имя юзера либо пароль для удаленного доступа к системе, хоть какой юзер в сети может перехватить эти учетные данные при помощи инструмента Wireshark либо Tcpdump.

Антивирусное определение – ранее это не представляло огромных заморочек, но на данный момент большая часть приложений сканирования на вирусы делают определенный уровень мониторинга системы и памяти, и потому они способны найти внедрение PsExec в той системе, которую они инспектируют. Если вы выполняете проверку системы на возможность проникания и PsExec не работает подабающим образом, высока возможность того, что вас перекрывает антивирусная программка, либо и того ужаснее, ваши юзеры знают о том, что вы влезли к ним в систему.

PsExec и Metasploit – по способности я никогда не использую PsExec раздельно. Изменённая версия PsExec сейчас включена в Metasploit Framework. Metasploit представляет собой среду для тестирования систем на возможность проникания, которая предоставляет солидный набор функций. Если вы желаете использовать PsExec для определенного рода оценки безопасности, то следует пользоваться дополнительными функциями, предлагаемыми Metasploit. Я использовал эту версию PsExec в собственной предшествующей статье о технике передачи хэша Passing the Hash.

Заключение

Инструмент PsExec имеет огромное количество областей внедрения для разных целей. Надеюсь, данная статья поможет вам выяснить о компонентах и функциях и о том, как они могут употребляться в нелегальных целях. PsExec представляет собой тот тип инструментов, который позволяет взломщику подходить к делу творчески. Хотя тут мы разглядели только некие ситуации внедрения этого инструмента, осмелюсь представить, что есть 10-ки либо даже сотки направлений, в каких взломщик может использовать эту утилиту. Я планирую написать статью, содержащую более сложные и достойные внимания области внедрения PsExec.

Аналогичный товар: Комментирование на данный момент запрещено, но Вы можете оставить ссылку на Ваш сайт.

Комментарии закрыты.