Файл: Руссинович М., Маргозис А. Утилиты Sysinternals. Справочник администратора 2012.pdf
Добавлен: 29.10.2018
Просмотров: 33102
Скачиваний: 742

Autoruns
Глава 5 167
Autoruns и вредоносное ПО
Большинство вредоносных программ стремиться бесконечно оставаться на
пораженной системе. Поэтому такое ПО всегда использовало точки ASEP.
Сначала это были простые места, такие как раздел Run в ветви HKLM. Со
временем вредоносные программы усложнялись, их становилось все труд-
нее отследить, и способы использования ASEP тоже становились все более
изощренными. Эти программы маскировались под поставщиков Winsock и
мониторы печати. Такие точки ASEP не только сложно найти, но и програм-
мы, использующие их, не появляются в списке процессов, поскольку загру-
жаются как DLL в существующие «нормальные» процессы. С ростом числа
пользователей, имеющих ограниченный набор стандартных привилегий,
вредоносное ПО приобретало все больше способностей к инфицированию
и запуску без администраторских привилегий.
Кроме того, вредоносные программы часто используют руткиты, разру-
шая целостность операционной системы. Руткиты перехватывают и изменя-
ют системные вызовы, сообщая неверную информацию о состоянии системы
приложениям, использующим документированные системные интерфейсы.
Руткиты могут скрывать наличие разделов и значений реестра, файлов и па-
пок, процессов, сокетов, учетных записей пользователей и других элементов
системы, и наоборот, могут заставить приложения верить, что существуют
элементы, которых нет. Проще говоря, если в системе есть вредоносная про-
грамма с администраторскими привилегиями, отчетам этой системы о ее со-
стоянии нельзя доверять. Поэтому Autoruns не всегда может идентифици-
ровать вредоносные элементы автозапуска.
Однако не все вредоносные программы настолько сложны, и все равно
остаются некоторые признаки, выдающие его присутствие:
• элементы, для которых указан известный издатель, такой как Microsoft,
не проходят проверку подписей (к сожалению, не все ПО от Microsoft
подписано);
• элементы, путь которых указывает на DLL- или EXE-файл без описания
или информации об издателе (кроме случаев, когда целевой файл не най-
ден);
• обычные компоненты Windows запускаются из необычных мест; напри-
мер, если svchost.exe запускается из C:\Windows или C:\System Volume
Information, а не из System32;
• элементы, для которых временная отметка файла запущенной програм-
мы совпадают с временем первого проявления проблем или обнаружения
атаки;
• элементы, которые после отключения или удаления и обновления экрана
восстанавливаются и включаются. Вредоносное ПО часто отслеживает
свои точки ASEP и восстанавливает их в случае удаления.
SIN_ch_05.indd 167
27.12.2011 14:17:58

168 Часть
II
Работа с утилитами
Вредоносные программы и средства для борьбы с ними все время эволю-
ционируют. Сегодняшние рекомендации завтра могут показаться наивными
и неэффективными.
Есть и элементы, которые могут показаться подозрительными, но на са-
мом деле они безвредны. Вот они:
• в стандартной установке Windows XP или Windows Server 2003 будет по-
казано несколько элементов File not found (Файл не найден), в частно-
сти, на вкладке Drivers (Драйверы). Это устаревшие элементы, файлы
которых были удалены из дистрибутива, но элементы реестра по невни-
мательности не очищены;
• в стандартной установке Windows XP на вкладке Image Hijacks в разделе
Image File Execution Options (IFEO) будет показан элемент Your Image
File Name Here without a path (Имя файла образа без пути), указываю-
щий на файл Ntsd.exe из папки System32. Этот элемент служит примером
использования раздела IFEO;
• в стандартной установке Windows Vista на вкладке Drivers (Драйверы)
может отображаться несколько элементов File not found для драйверов
NetWareIPX и для драйвера «IP in IP Tunnel Driver»;
• в стандартной установке Windows 7 на вкладке Scheduled Tasks (Запла-
нированные задания) в разделе \Microsoft\Windows может иметься не-
сколько элементов, содержащих только имя элемента и ничего больше.
SIN_ch_05.indd 168
27.12.2011 14:17:58

Глава 6
PsTools
PsTools от Sysinternals — набор из 12 утилит для управления Windows с об-
щими характеристиками:
• все они являются консольными, т.е. предназначены для запуска из ко-
мандной строки или пакетного файла и выводят информацию в стандарт-
ные потоки вывода и сообщений об ошибках (которые могут отображать-
ся в окне консоли или перенаправляться в файлы);
• работают на локальном или удаленном компьютере. В отличие от боль-
шинства программ для удаленного управления, утилиты PsTools не тре-
буют предварительной установки клиентского ПО на удаленных систе-
мах (разумеется, как и все утилиты Sysinternals, установки на локальном
компьютере они тоже не требуют);
• они поддерживают стандартный синтаксис для указания альтернативных
учетных данных, так что все задачи можно выполнять от имени другого
пользователя.
1
В пакет PsTools входят следующие утилиты:
• PsExec — выполняет процессы удаленно и (или) от имени локальной си-
стемы, перенаправляя выходные данные;
• PsFile — отображает список файлов, открытых удаленно, или закрывает
их;
• PsGetSid — отображает идентификатор защиты (SID) компьютера, поль-
зователя или группы;
• PsInfo — отображает информацию о системе;
• PsKill — завершает процессы, заданные по имени или по идентификато-
ру процесса (PID);
• PsList — отображает информацию о процессах;
• PsLoggedOn — перечисляет учетные записи, под которыми пользовате-
ли вошли в систему локально и удаленно;
1
Есть два исключения: альтернативные учетные данные не принимает PsLoggedOn, а также
PsPasswd при изменении пароля для доменной учетной записи.
SIN_ch_06.indd 169
27.12.2011 14:19:47

170 Часть
II
Работа с утилитами
• PsLogList — выгружает записи из журнала событий;
• PsPasswd — изменяет пароли учетных записей пользователей;
• PsService — отображает список служб Windows и управляет ими;
• PsShutdown — выключает компьютер, выходит из системы или изменяет
состояние питания локальной или удаленной системы;
• PsSuspend — приостанавливает и возобновляет работу процессов.
Кстати, этот набор называется PsTools, а все утилиты имеют префикс Ps
в названии, потому что первую из этих утилит, PsList, отображающую спи-
сок запущенных процессов, я назвал в честь ps, UNIX-утилиты со сходной
функциональностью.
Прежде чем мы начнем разбираться с утилитами, хочу прояснить одну
вещь. Бывает, что антивирусы сообщают о том, что некоторые из утилит
PsTools являются троянскими программами или вредоносным ПО другого
типа. Уверяю вас, что никакие из утилит PsTools и Sysinternals вообще не
являются вредоносными. Однако злоумышленники встраивают различные
утилиты PsTools, в частности, PsExec, в свои вредоносные программы. Так
как в PsTools указано мое имя и веб-сайт, а авторы вредоносных программ
обычно не указывают свои контакты, все письма от рассерженных пользо-
вателей, обвиняющих меня в написании вирусов и заражении их систем,
приходят мне. Как я уже много раз объяснял, утилиты PsTools созданы с
благими намерениями, а с тем, что их используют во вред, я ничего не могу
поделать. Более того, эти утилиты не используют никаких уязвимостей и
не получают несанкционированного доступа. Они должны запускаться под
учетной записью, уже имеющей необходимые права доступа, или им необхо-
димо предоставлять имя и пароль соответствующей учетной записи.
Общие функции
Все утилиты PsTools работают во всех поддерживаемых клиентских и сер-
верных версиях Windows, к которым относятся 32- и 64-разрядные редак-
ции Windows XP, Windows Vista и Windows 7, а также редакции x86, x64 и
IA-64 Windows Server 2003, 2008 и 2008 R2. Для поддержки 64-разрядных
версий требуется установить компоненты WOW64, обеспечивающие под-
держку 32-разрядных приложений в 64-разрядных версиях Windows (в ре-
дакции Server Core WOW64 можно удалить).
Все утилиты PsTools поддерживают удаленное выполнение операций с
использованием синтаксиса, общего для всего пакета. Чтобы посмотреть
синтаксис вызова утилиты, запустите ее из командной строки с параметром
-?
. Синтаксис командной строки всех утилит PsTools приведен в разделе
«Синтаксис командной строки PsTools» ближе к концу этой главы.
Удаленные операции
Утилиты PsTools могут выполнять операции на локальном или удаленном
компьютере. Каждая из этих утилит принимает необязательный параметр
SIN_ch_06.indd 170
27.12.2011 14:19:49

PsTools
Глава 6 171
командной строки вида \\имя_компьютера либо \\IP-адрес_компьютера,
на котором должны выполняться операции. Например:
psinfo \\srv2008r2
psinfo \\192.168.0.10
Некоторые из утилит для выполнения удаленных операций просто ис-
пользуют интерфейсы Windows API, позволяющие указывать удаленный
компьютер. Другие извлекают для этого EXE-файл, внедренный в их ис-
полняемый образ, копируют этот файл в общую папку Admin$ удаленного
компьютера, регистрируют его на той системе как службу и запускают эту
службу при помощи интерфейсов API Windows Service Control Manager,
после чего взаимодействуют с ней по именованным каналам. Для создания
удаленной службы требуется, чтобы на целевом компьютере был включен
общий доступ к файлам и открыт доступ к папке Admin$. В конце главы
приведена таблица со списком утилит PsTools, требующих включения этих
функций для удаленной работы.
Удаленные операции на нескольких компьютерах
Некоторые утилиты можно запускать на нескольких удаленных компьюте-
рах одной командой (в таблице в конце главы указано, какие утилиты под-
держивают такую возможность). Для этих утилит можно указать удаленные
компьютеры непосредственно в командной строке или во входном файле.
Синтаксис командной строки следующий: два обратных слеша, за которыми
идут имена или IP-адреса компьютеров, разделенные запятыми без пробе-
лов. Например:
psinfo \\server1, server2,192.168.0.3,server4
Эта команда выводит информацию о системе server1, затем о систе-
ме server2, затем о системе с IP-адресом 192.168.0.3 и, наконец, о системе
server4.
Другой способ указать удаленные компьютеры — использовать тексто-
вый файл, содержащий имя или IP-адрес каждого компьютера в отдельной
строке. Имя файла указывается в командной строке с префиксом @. Если
предыдущий пример выполнять с использованием файла computers.txt, то
этот файл должен содержать следующие строки:
server1
server2
192.168.0.3
server4
А команда будет выглядеть так:
psinfo @computers.txt
Если утилите, которую можно выполнять на нескольких удаленных
компьютерах одновременно, передать параметр командной строки \\*,
SIN_ch_06.indd 171
27.12.2011 14:19:49